diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-10 07:16:44 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-10 07:16:44 -0800 |
commit | 5551638acb3dbfa1c92335464158fccfa46f5a00 (patch) | |
tree | dad8376667025cfcb6ac9a277cb0f5aaf1fa868f /fs/cifs/inode.c | |
parent | 0ea457839d050370e0f7c75c81f9abd573e1f420 (diff) | |
parent | 05507fa2ac8d5e503bcf33ee43329449027d9060 (diff) | |
download | op-kernel-dev-5551638acb3dbfa1c92335464158fccfa46f5a00.zip op-kernel-dev-5551638acb3dbfa1c92335464158fccfa46f5a00.tar.gz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
cifs: fix dentry hash calculation for case-insensitive mounts
[CIFS] Don't cache timestamps on utimes due to coarse granularity
[CIFS] Maximum username length check in session setup does not match
cifs: fix length calculation for converted unicode readdir names
[CIFS] Add support for TCP_NODELAY
Diffstat (limited to 'fs/cifs/inode.c')
-rw-r--r-- | fs/cifs/inode.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index cf18ee7..e3fda97 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); |