[linux-cifs-client] Re: mount options for selectively disabling parts of CIFS Unix Extensions

Jeff Layton jlayton at redhat.com
Tue Jul 17 11:57:14 GMT 2007


On Mon, 16 Jul 2007 18:11:02 -0500
"Steve French" <smfrench at gmail.com> wrote:

> I would like opinions on how to handle a specific use question ...
> 
> if the user has mounted e.g.  \\server1\shareA (e.g. on a Samba
> server) using defaults (and thus gotten support for the Unix
> Extensions, but then does a second mount trying to disable Unix
> Extensions (e.g. "mount -t cifs //server1/shareB /mnt -o nounix" then
> what should the result be:
> 
>
> 1) mount fails?  If so what return code - there is no easy way to pass
> error strings back across mount (get_sb returns an int - a posix
> return code)
> 
> 2) mount succeeds, ignoring the "nounix" option but prints a warning to dmesg
> 
> 3) mount succeeds but turns off the Unix Capability bits so no Unix
> Extension requests are sent on either shareA or shareB (although the
> server behavior will still be a little different than if the client
> had not negotiated Unix Extensions at all, at least it will be
> different unless the session drops and is reconnected at which time
> the server will see the Unix Extensions disabled)
> 
> 4) mount succeeds and no Unix Extension requests are sent on the tree
> id for shareB (the requests to shareA are unaffected)
> 
> etc.
> 
> Ideas?
> 

Following the principle of least suprise, then #4 would be best. If
that's problematic, then I'd suggest just failing the mount outright
with an -EBUSY.

NFS has just gone through a not too dissimilar situation (mounting the
same export twice with different options). It now fails with -EBUSY in
that situation. A new mount option was also introduced (nosharedcache)
that makes it fall back on the previous behavior (not sharing
superblocks between mounts of the same export).

-- 
Jeff Layton <jlayton at redhat.com>


More information about the linux-cifs-client mailing list