[linux-cifs-client] [PATCH 1/3] cifs: always revalidate hardlinked inodes

Steve French smfrench at gmail.com
Mon May 17 09:34:03 MDT 2010


Seems odd to turn off metadata caching completely for hardlinked
files.  Wouldn't it be easier, and less invasive, to simply set
cifs_i->time to zero on source and destination inodes when the client
does the hardlink (so we revalidate the first time after the link is
done, but otherwise treat hardlinked files the same, and continue to
allow limited metadata caching on them)?

On Mon, May 17, 2010 at 6:18 AM, Jeff Layton <jlayton at redhat.com> wrote:
> The old cifs_revalidate logic always revalidated hardlinked inodes.
> This hack allowed CIFS to pass some connectathon tests when server inode
> numbers aren't used (basic test7, in particular).
>
> Signed-off-by: Jeff Layton <jlayton at redhat.com>
> ---
>  fs/cifs/inode.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
> index b35cb03..f52161a 100644
> --- a/fs/cifs/inode.c
> +++ b/fs/cifs/inode.c
> @@ -1511,6 +1511,10 @@ cifs_inode_needs_reval(struct inode *inode)
>        if (time_after_eq(jiffies, cifs_i->time + HZ))
>                return true;
>
> +       /* hardlinked files get "special" treatment */
> +       if (S_ISREG(inode->i_mode) && inode->i_nlink != 1)
> +               return true;
> +
>        return false;
>  }
>
> --
> 1.6.6.1
>
>



-- 
Thanks,

Steve


More information about the linux-cifs-client mailing list