NFS: Reduce time spent holding the i_mutex during fallocate()
At the very least, we should not be taking the i_mutex until after checking if the server even supports ALLOCATE or DEALLOCATE, allowing v4.0 or v4.1 to exit without potentially waiting on a lock. Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:

committed by
Trond Myklebust

parent
9a51940bf6
commit
f830f7ddd9
@@ -158,14 +158,9 @@ static long nfs42_fallocate(struct file *filep, int mode, loff_t offset, loff_t
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
mutex_lock(&inode->i_mutex);
|
||||
if (mode & FALLOC_FL_PUNCH_HOLE)
|
||||
ret = nfs42_proc_deallocate(filep, offset, len);
|
||||
else
|
||||
ret = nfs42_proc_allocate(filep, offset, len);
|
||||
mutex_unlock(&inode->i_mutex);
|
||||
|
||||
return ret;
|
||||
return nfs42_proc_deallocate(filep, offset, len);
|
||||
return nfs42_proc_allocate(filep, offset, len);
|
||||
}
|
||||
#endif /* CONFIG_NFS_V4_2 */
|
||||
|
||||
|
Reference in New Issue
Block a user