aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/readdir.c
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2007-02-16 23:30:54 -0500
committerSteve French <sfrench@us.ibm.com>2007-02-16 23:30:54 -0500
commit1b2b212603ceb47d60aff571dcfffc846fcfa336 (patch)
treea46aa9356cf8142b5f78520bdfc8efba8ecdbe1b /fs/cifs/readdir.c
parentc14e894bd40868d6d1f2379705b68acf5288ba27 (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.c4
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