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/cifsfs.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/cifsfs.c')
-rw-r--r-- | fs/cifs/cifsfs.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index e8287c4c6eb3..887c89b43bd8 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
@@ -91,8 +91,9 @@ cifs_read_super(struct super_block *sb, void *data, | |||
91 | struct inode *inode; | 91 | struct inode *inode; |
92 | struct cifs_sb_info *cifs_sb; | 92 | struct cifs_sb_info *cifs_sb; |
93 | int rc = 0; | 93 | int rc = 0; |
94 | 94 | ||
95 | sb->s_flags |= MS_NODIRATIME; /* and probably even noatime */ | 95 | /* BB should we make this contingent on mount parm? */ |
96 | sb->s_flags |= MS_NODIRATIME | MS_NOATIME; | ||
96 | sb->s_fs_info = kzalloc(sizeof(struct cifs_sb_info),GFP_KERNEL); | 97 | sb->s_fs_info = kzalloc(sizeof(struct cifs_sb_info),GFP_KERNEL); |
97 | cifs_sb = CIFS_SB(sb); | 98 | cifs_sb = CIFS_SB(sb); |
98 | if(cifs_sb == NULL) | 99 | if(cifs_sb == NULL) |
@@ -258,7 +259,10 @@ cifs_alloc_inode(struct super_block *sb) | |||
258 | cifs_inode->clientCanCacheRead = FALSE; | 259 | cifs_inode->clientCanCacheRead = FALSE; |
259 | cifs_inode->clientCanCacheAll = FALSE; | 260 | cifs_inode->clientCanCacheAll = FALSE; |
260 | cifs_inode->vfs_inode.i_blkbits = 14; /* 2**14 = CIFS_MAX_MSGSIZE */ | 261 | cifs_inode->vfs_inode.i_blkbits = 14; /* 2**14 = CIFS_MAX_MSGSIZE */ |
261 | cifs_inode->vfs_inode.i_flags = S_NOATIME | S_NOCMTIME; | 262 | |
263 | /* Can not set i_flags here - they get immediately overwritten | ||
264 | to zero by the VFS */ | ||
265 | /* cifs_inode->vfs_inode.i_flags = S_NOATIME | S_NOCMTIME;*/ | ||
262 | INIT_LIST_HEAD(&cifs_inode->openFileList); | 266 | INIT_LIST_HEAD(&cifs_inode->openFileList); |
263 | return &cifs_inode->vfs_inode; | 267 | return &cifs_inode->vfs_inode; |
264 | } | 268 | } |