mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 16:30:52 +07:00
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>
This commit is contained in:
parent
bb713d6d38
commit
5ba7cc4801
@ -1287,6 +1287,7 @@ dentry->d_parent->d_name.name, dentry->d_name.name);
|
||||
nfs_begin_data_update(dentry->d_inode);
|
||||
error = NFS_PROTO(dir)->rename(dir, &dentry->d_name,
|
||||
dir, &qsilly);
|
||||
nfs_mark_for_revalidate(dentry->d_inode);
|
||||
nfs_end_data_update(dentry->d_inode);
|
||||
} else
|
||||
error = NFS_PROTO(dir)->rename(dir, &dentry->d_name,
|
||||
@ -1334,6 +1335,7 @@ static int nfs_safe_remove(struct dentry *dentry)
|
||||
/* The VFS may want to delete this inode */
|
||||
if (error == 0)
|
||||
inode->i_nlink--;
|
||||
nfs_mark_for_revalidate(inode);
|
||||
nfs_end_data_update(inode);
|
||||
} else
|
||||
error = NFS_PROTO(dir)->remove(dir, &dentry->d_name);
|
||||
@ -1556,6 +1558,7 @@ static int nfs_rename(struct inode *old_dir, struct dentry *old_dentry,
|
||||
nfs_begin_data_update(old_inode);
|
||||
error = NFS_PROTO(old_dir)->rename(old_dir, &old_dentry->d_name,
|
||||
new_dir, &new_dentry->d_name);
|
||||
nfs_mark_for_revalidate(old_inode);
|
||||
nfs_end_data_update(old_inode);
|
||||
nfs_end_data_update(new_dir);
|
||||
nfs_end_data_update(old_dir);
|
||||
|
@ -375,6 +375,7 @@ nfs_proc_link(struct inode *inode, struct inode *dir, struct qstr *name)
|
||||
|
||||
dprintk("NFS call link %s\n", name->name);
|
||||
status = rpc_call(NFS_CLIENT(inode), NFSPROC_LINK, &arg, NULL, 0);
|
||||
nfs_mark_for_revalidate(inode);
|
||||
nfs_mark_for_revalidate(dir);
|
||||
dprintk("NFS reply link: %d\n", status);
|
||||
return status;
|
||||
|
Loading…
Reference in New Issue
Block a user