[linux-cifs-client] [patch] handle fs types with coarser granularity

Jeff Layton jlayton at redhat.com
Wed Jan 13 16:18:53 MST 2010


On Wed, 13 Jan 2010 15:18:45 -0600
Shirish Pargaonkar <shirishpargaonkar at gmail.com> wrote:

> force revalidate of the file when any of the timestamps are set for
> filesytem type does not have finer granularity timestamps.
> samba bugzilla 3775
> 
> 
> From 77d285ad59ebf163c2c3be2d0b4f6df1e4d19917 Mon Sep 17 00:00:00 2001
> From: Shirish Pargaonkar <shirishpargaonkar at gmail.com>
> Date: Wed, 13 Jan 2010 15:06:34 -0600
> Subject: [PATCH] force revalidate to accomodate coarser granularity timestamps
> 
> Signed-off-by: Shirish Pargaonkar <shirishpargaonkar at gmail.com>
> ---
>  fs/cifs/inode.c |   14 ++++++++++++--
>  1 files changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
> index cf18ee7..7db26a5 100644
> --- a/fs/cifs/inode.c
> +++ b/fs/cifs/inode.c
> @@ -1762,8 +1762,18 @@ cifs_setattr_unix(struct dentry *direntry,
> struct iattr *attrs)
>  					CIFS_MOUNT_MAP_SPECIAL_CHR);
>  	}
> 
> -	if (!rc)
> -		rc = inode_setattr(inode, attrs);
> +	if (rc)
> +		goto out;
> +
> +	rc = inode_setattr(inode, attrs);
> +
> +	/*
> +	 * force revalidate when any of the times are set since some
> +	 * of the fs types do not have finer granularity timestamps
> +	 */
> +	if ((!rc) && (attrs->ia_valid & (ATTR_ATIME | ATTR_MTIME | ATTR_CTIME)))
	    ^^^^^
	The extra parens around !rc aren't needed here. It'll be more readable without them.

> +		cifsInode->time = 0;
> +
>  out:
>  	kfree(args);
>  	kfree(full_path);

Other than the minor nit above...

Acked-by: Jeff Layton <jlayton at redhat.com>


More information about the linux-cifs-client mailing list