diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-12-03 15:20:17 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-12-03 15:20:17 -0500 |
commit | 5ba7cc4801ae0fe74b6e0160f008521ae71d9f5d (patch) | |
tree | 8e7c236d2adeee1c23d99a2e7d20203cdc37a4e6 /fs/nfs | |
parent | bb713d6d38f7be4f4e7d790cddb1b076e7da6699 (diff) |
NFS: Fix post-op attribute revalidation...
- Missing nfs_mark_for_revalidate in nfs_proc_link()
- Missing nfs_mark_for_revalidate in nfs_rename()
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/dir.c | 3 | ||||
-rw-r--r-- | fs/nfs/proc.c | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 7370583b61e5..c0d1a214572c 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
@@ -1287,6 +1287,7 @@ dentry->d_parent->d_name.name, dentry->d_name.name); | |||
1287 | nfs_begin_data_update(dentry->d_inode); | 1287 | nfs_begin_data_update(dentry->d_inode); |
1288 | error = NFS_PROTO(dir)->rename(dir, &dentry->d_name, | 1288 | error = NFS_PROTO(dir)->rename(dir, &dentry->d_name, |
1289 | dir, &qsilly); | 1289 | dir, &qsilly); |
1290 | nfs_mark_for_revalidate(dentry->d_inode); | ||
1290 | nfs_end_data_update(dentry->d_inode); | 1291 | nfs_end_data_update(dentry->d_inode); |
1291 | } else | 1292 | } else |
1292 | error = NFS_PROTO(dir)->rename(dir, &dentry->d_name, | 1293 | error = NFS_PROTO(dir)->rename(dir, &dentry->d_name, |
@@ -1334,6 +1335,7 @@ static int nfs_safe_remove(struct dentry *dentry) | |||
1334 | /* The VFS may want to delete this inode */ | 1335 | /* The VFS may want to delete this inode */ |
1335 | if (error == 0) | 1336 | if (error == 0) |
1336 | inode->i_nlink--; | 1337 | inode->i_nlink--; |
1338 | nfs_mark_for_revalidate(inode); | ||
1337 | nfs_end_data_update(inode); | 1339 | nfs_end_data_update(inode); |
1338 | } else | 1340 | } else |
1339 | error = NFS_PROTO(dir)->remove(dir, &dentry->d_name); | 1341 | error = NFS_PROTO(dir)->remove(dir, &dentry->d_name); |
@@ -1556,6 +1558,7 @@ go_ahead: | |||
1556 | nfs_begin_data_update(old_inode); | 1558 | nfs_begin_data_update(old_inode); |
1557 | error = NFS_PROTO(old_dir)->rename(old_dir, &old_dentry->d_name, | 1559 | error = NFS_PROTO(old_dir)->rename(old_dir, &old_dentry->d_name, |
1558 | new_dir, &new_dentry->d_name); | 1560 | new_dir, &new_dentry->d_name); |
1561 | nfs_mark_for_revalidate(old_inode); | ||
1559 | nfs_end_data_update(old_inode); | 1562 | nfs_end_data_update(old_inode); |
1560 | nfs_end_data_update(new_dir); | 1563 | nfs_end_data_update(new_dir); |
1561 | nfs_end_data_update(old_dir); | 1564 | nfs_end_data_update(old_dir); |
diff --git a/fs/nfs/proc.c b/fs/nfs/proc.c index a48a003242c0..e1e3ca5d746b 100644 --- a/fs/nfs/proc.c +++ b/fs/nfs/proc.c | |||
@@ -375,6 +375,7 @@ nfs_proc_link(struct inode *inode, struct inode *dir, struct qstr *name) | |||
375 | 375 | ||
376 | dprintk("NFS call link %s\n", name->name); | 376 | dprintk("NFS call link %s\n", name->name); |
377 | status = rpc_call(NFS_CLIENT(inode), NFSPROC_LINK, &arg, NULL, 0); | 377 | status = rpc_call(NFS_CLIENT(inode), NFSPROC_LINK, &arg, NULL, 0); |
378 | nfs_mark_for_revalidate(inode); | ||
378 | nfs_mark_for_revalidate(dir); | 379 | nfs_mark_for_revalidate(dir); |
379 | dprintk("NFS reply link: %d\n", status); | 380 | dprintk("NFS reply link: %d\n", status); |
380 | return status; | 381 | return status; |