diff mbox

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

Message ID 4a4634331001131318w37748abbx47291060d09e2709@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Shirish Pargaonkar Jan. 13, 2010, 9:18 p.m. UTC
None
diff mbox

Patch

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)))
+		cifsInode->time = 0;
+
 out:
 	kfree(args);