[linux-cifs-client] [PATCH] cifs: disable the use of server inode numbers by default

Jeff Layton jlayton at samba.org
Fri May 7 07:13:26 MDT 2010


On Wed,  5 May 2010 18:16:55 +0200
Jeff Layton <jlayton at redhat.com> wrote:

> We have a bit of a problem with server inode numbers...
> 
> The FILE_UNIX_BASIC_INFO struct has a UniqueID field that is supposed to
> be unique across the scope of the share. It turns out that all current
> and past versions of Samba simply stuffed the inode number in this
> field. If you have a share that spans multiple filesystems on the
> server, then it's *likely* that the server will send the same value for
> more than one inode, leading to collisions.
> 
> Given that, it's really pretty dangerous to trust this info from the
> server at this time. This patch simply makes the default "noserverino".
> To reenable it, admins will have to mount with "serverino". We'll
> continue to pursue fixes for this problem in the meantime, so hopefully
> this is just a temporary measure.
> 
> Signed-off-by: Jeff Layton <jlayton at redhat.com>
> ---
>  fs/cifs/connect.c |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
> index 9123c23..a60c977 100644
> --- a/fs/cifs/connect.c
> +++ b/fs/cifs/connect.c
> @@ -839,8 +839,13 @@ cifs_parse_mount_options(char *options, const char *devname,
>  	/* vol->retry default is 0 (i.e. "soft" limited retry not hard retry) */
>  	/* default is always to request posix paths. */
>  	vol->posix_paths = 1;
> -	/* default to using server inode numbers where available */
> -	vol->server_ino = 1;
> +
> +	/*
> +	 * The client cannot default to using server inode numbers until it
> +	 * can reliably guard against misbehaving servers causing inode
> +	 * number collisions.
> +	 */
> +	vol->server_ino = 0;
>  
>  	if (!options)
>  		return 1;

Self-NAK on this patch for now. I think I see a better way to handle
this problem. I'll be sending a new patch in a bit.

-- 
Jeff Layton <jlayton at samba.org>


More information about the linux-cifs-client mailing list