Re: [PATCH 1/3] cifs: always revalidate hardlinked inodes

Steve French <[email protected]> Mon, 17 May 2010 10:34:03 -0500
Newsgroups gmane.linux.file-systems.cifs
Message-ID <[email protected]>
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 <[email protected]> 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 <[email protected]>
> ---
>  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