When CIFS Unix Extensions are negotiated we get the Unix uid and gid
owners of the file from the server (on the Unix Query Path Info
levels), but if the server's uids don't match the client uid's users
were having to disable the Unix Extensions (which turned off features
they still wanted). The attached patch allows users to override uid
and/or gid for file/directory owner with a default uid and/or gid
specified at mount (as is often done when mounting from Linux cifs
client to Windows server). The attached patch also displays the uid
and gid used by default in /proc/mounts (if applicable).
I also would like suggestions on what we should call a proposed mount
option (not coded yet) which would disable the CIFS Unix Extensions on
a per-mount basis (or more likely actually would require it on the
first mount to the server, subsequent mounts would probably inherit
the capabilities). Current cifs code can disable mount options before
a mount by specifying
"echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled")
but it might be easier to specify it on mount (e.g.
"nolinuxextensions" or "linuxextensions=no" ?). Slightly harder
would be disabling Unix Extensions after the user has already mounted
(with Unix Extensions) to the same server (perhaps to a different
share). How important would it be to have two mounts to the same
server one with unix extensions and one without?