diff options
author | Steve French <sfrench@us.ibm.com> | 2007-02-16 23:30:54 -0500 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-02-16 23:30:54 -0500 |
commit | 1b2b212603ceb47d60aff571dcfffc846fcfa336 (patch) | |
tree | a46aa9356cf8142b5f78520bdfc8efba8ecdbe1b /fs/cifs/readdir.c | |
parent | c14e894bd40868d6d1f2379705b68acf5288ba27 (diff) |
[CIFS] mtime bounces from local to remote when cifs nocmtime i_flags overwritten
atime flag was also overwritten. Noticed by Shirish when he was debugging
an atime problem. Should help performance a bit too.
cifs should be getting time stamps from the server (that was the original
intent too)
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/readdir.c')
-rw-r--r-- | fs/cifs/readdir.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c index c6220bd27165..c444798f0740 100644 --- a/fs/cifs/readdir.c +++ b/fs/cifs/readdir.c | |||
@@ -83,6 +83,8 @@ static int construct_dentry(struct qstr *qstring, struct file *file, | |||
83 | return rc; | 83 | return rc; |
84 | rc = 1; | 84 | rc = 1; |
85 | } | 85 | } |
86 | if(file->f_path.dentry->d_sb->s_flags & MS_NOATIME) | ||
87 | (*ptmp_inode)->i_flags |= S_NOATIME | S_NOCMTIME; | ||
86 | } else { | 88 | } else { |
87 | tmp_dentry = d_alloc(file->f_path.dentry, qstring); | 89 | tmp_dentry = d_alloc(file->f_path.dentry, qstring); |
88 | if(tmp_dentry == NULL) { | 90 | if(tmp_dentry == NULL) { |
@@ -98,6 +100,8 @@ static int construct_dentry(struct qstr *qstring, struct file *file, | |||
98 | tmp_dentry->d_op = &cifs_dentry_ops; | 100 | tmp_dentry->d_op = &cifs_dentry_ops; |
99 | if(*ptmp_inode == NULL) | 101 | if(*ptmp_inode == NULL) |
100 | return rc; | 102 | return rc; |
103 | if(file->f_path.dentry->d_sb->s_flags & MS_NOATIME) | ||
104 | (*ptmp_inode)->i_flags |= S_NOATIME | S_NOCMTIME; | ||
101 | rc = 2; | 105 | rc = 2; |
102 | } | 106 | } |
103 | 107 | ||