diff options
author | Steve French <sfrench@us.ibm.com> | 2007-02-17 04:30:54 +0000 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-02-17 04:30:54 +0000 |
commit | 1b2b212603ceb47d60aff571dcfffc846fcfa336 (patch) | |
tree | a46aa9356cf8142b5f78520bdfc8efba8ecdbe1b /fs/cifs/readdir.c | |
parent | c14e894bd40868d6d1f2379705b68acf5288ba27 (diff) | |
download | linux-1b2b212603ceb47d60aff571dcfffc846fcfa336.tar.gz linux-1b2b212603ceb47d60aff571dcfffc846fcfa336.tar.bz2 linux-1b2b212603ceb47d60aff571dcfffc846fcfa336.zip |
[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, return rc; rc = 1; } + if(file->f_path.dentry->d_sb->s_flags & MS_NOATIME) + (*ptmp_inode)->i_flags |= S_NOATIME | S_NOCMTIME; } else { tmp_dentry = d_alloc(file->f_path.dentry, qstring); if(tmp_dentry == NULL) { @@ -98,6 +100,8 @@ static int construct_dentry(struct qstr *qstring, struct file *file, tmp_dentry->d_op = &cifs_dentry_ops; if(*ptmp_inode == NULL) return rc; + if(file->f_path.dentry->d_sb->s_flags & MS_NOATIME) + (*ptmp_inode)->i_flags |= S_NOATIME | S_NOCMTIME; rc = 2; } |