summaryrefslogtreecommitdiffstats
path: root/fs/cifs/inode.c
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2010-02-17 14:08:58 -0800
committerTony Lindgren <tony@atomide.com>2010-02-17 14:08:58 -0800
commit80c20d543d142ee54ec85259b77aaf0b83c32db5 (patch)
tree364017b2c001939bbb645dcc20d565c1f71b13a8 /fs/cifs/inode.c
parentd6a2d9b800276140abf352908abbd0c240890692 (diff)
parentb72c7d543589736d43da531566490dd31572f5ca (diff)
Merge branch 'omap-fixes-for-linus' into omap-for-linus
Diffstat (limited to 'fs/cifs/inode.c')
-rw-r--r--fs/cifs/inode.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index cf18ee76559..e3fda978f48 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)
+ if (!rc) {
rc = inode_setattr(inode, attrs);
+
+ /* force revalidate when any of these times are set since some
+ of the fs types (eg ext3, fat) do not have fine enough
+ time granularity to match protocol, and we do not have a
+ a way (yet) to query the server fs's time granularity (and
+ whether it rounds times down).
+ */
+ if (!rc && (attrs->ia_valid & (ATTR_MTIME | ATTR_CTIME)))
+ cifsInode->time = 0;
+ }
out:
kfree(args);
kfree(full_path);