Re: [RFC PATCH] nfs: Add NFS3PROC_UMOUNT procedure.

From: Fields James
Date: Mon Jun 25 2012 - 07:30:24 EST


On Sun, Jun 24, 2012 at 02:12:49PM +0900, Namjae Jeon wrote:
> 2012/6/24, Fields James <bfields@xxxxxxxxxxxx>:
> > On Sat, Jun 23, 2012 at 11:57:10AM -0400, Fields James wrote:
> >> On Sat, Jun 23, 2012 at 03:52:20PM +0000, Myklebust, Trond wrote:
> >> > The other objection is that NFSv3 already has a way to do this via the
> >> > MOUNT protocol. We already call MOUNTPROC3_UMNT/MOUNTPROC_UMNT on
> >> > unmount of a filesystem.
> >> >
> >> > The problem with this approach is that if the NFS client crashes before
> >> > it can call this function, then the server never gets notified. That is
> >> > a problem that your patch has too...
> >>
> >> Yes. Could you instead work on describing *exactly* what the original
> >> problem was that prompted this?
> >
> > ("You" here meaning Namjae Jeon, of course).
> >
> > And note here we've all read the changelog, that's not what I'm asking
> > for.
> >
> > I want to know the details of *your* specific case. "I have X clients
> > that I use for Y, periodically I want to unmount the exported filesystem
> > to do Z, I tried doing W but it didn't work...".
> As you remember, We discussed this
> issue(http://www.spinics.net/lists/linux-nfs/msg29997.html) with you
> before. you guided me to use exportfs -f call on nfs server.
> It is hard to use this method on our system

Why is it hard?

Could you hack umount to do the equivalent of "exportfs -f" before
calling the umount?

> and nomally the user is
> thinking it is problem device busy happen after umounting.
>
> The details of specific case.
> 1. There are two target or two PC. and Client want to access files of
> usb device on server.
> 2. the client try to mount usb mount point using nfs on sever after
> plugging usb device.
> 3. we try to umount mount point directory on client.
> 4. and when we try to umount usb device mount directory server, device
> busy message occured like this (umount: can't umount /mnt: Device or
> resource busy)

Right, so I don't think you want protocol modifications. They take a
few years to get hammered out and then make it into implementations, and
they won't help a great deal with your problem anyway. (Because of
problems like the possibility of lost "unmount" calls that Trond
mentions.)

Either modify umount itself to flush the export cache before attempting
the unmount, or if that doesn't work perhaps you could patch the kernel
to notify nfsd on unmount and let it attemt to clear its caches before
deciding whether the filesystem is busy.

--b.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/