[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 samba-technical
mailing list