mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-03-07 04:14:09 +07:00
NFS: Don't hold the inode lock across fsync()
Commits are no longer required to be serialised. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
parent
811ed92ecc
commit
93761d9863
@ -277,11 +277,9 @@ nfs_file_fsync(struct file *file, loff_t start, loff_t end, int datasync)
|
|||||||
ret = filemap_write_and_wait_range(inode->i_mapping, start, end);
|
ret = filemap_write_and_wait_range(inode->i_mapping, start, end);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
break;
|
break;
|
||||||
inode_lock(inode);
|
|
||||||
ret = nfs_file_fsync_commit(file, start, end, datasync);
|
ret = nfs_file_fsync_commit(file, start, end, datasync);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
ret = pnfs_sync_inode(inode, !!datasync);
|
ret = pnfs_sync_inode(inode, !!datasync);
|
||||||
inode_unlock(inode);
|
|
||||||
/*
|
/*
|
||||||
* If nfs_file_fsync_commit detected a server reboot, then
|
* If nfs_file_fsync_commit detected a server reboot, then
|
||||||
* resend all dirty pages that might have been covered by
|
* resend all dirty pages that might have been covered by
|
||||||
|
Loading…
Reference in New Issue
Block a user