[linux-cifs-client] [PATCH] cifs: disable serverino if server doesn't support it

Steve French smfrench at gmail.com
Wed Jul 22 13:15:53 MDT 2009


Makes sense - not a new problem, but important to get in before 2.6.31
(as you say with the new default)

On Wed, Jul 22, 2009 at 2:08 PM, Jeff Layton<jlayton at redhat.com> wrote:
> A recent regression when dealing with older servers. This bug was
> introduced when we made serverino the default...
>
> When the server can't provide inode numbers, disable it for the mount.
>
> Signed-off-by: Jeff Layton <jlayton at redhat.com>
> ---
>  fs/cifs/inode.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
> index 2680a5b..b93bf00 100644
> --- a/fs/cifs/inode.c
> +++ b/fs/cifs/inode.c
> @@ -513,9 +513,12 @@ int cifs_get_inode_info(struct inode **pinode,
>                                        cifs_sb->mnt_cifs_flags &
>                                                CIFS_MOUNT_MAP_SPECIAL_CHR);
>                        if (rc1) {
> -                               /* BB EOPNOSUPP disable SERVER_INUM? */
>                                cFYI(1, ("GetSrvInodeNum rc %d", rc1));
>                                fattr.cf_uniqueid = iunique(sb, ROOT_I);
> +                               /* disable serverino if call not supported */
> +                               if (rc1 == -EINVAL)
> +                                       cifs_sb->mnt_cifs_flags &=
> +                                                       ~CIFS_MOUNT_SERVER_INUM;
>                        }
>                } else {
>                        fattr.cf_uniqueid = iunique(sb, ROOT_I);
> --
> 1.6.2.5
>
>



-- 
Thanks,

Steve


More information about the linux-cifs-client mailing list