summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarrick J. Wong <darrick.wong@oracle.com>2020-11-02 17:14:07 -0800
committerDarrick J. Wong <darrick.wong@oracle.com>2020-11-04 17:41:56 -0800
commit46afb0628b86347933b16ac966655f74eab65c8c (patch)
tree58a6da5d685d1b5978fc35971066b16ca173cf22
parentc1f6b1ac00756a7108e5fcb849a2f8230c0b62a5 (diff)
downloadlinux-46afb0628b86347933b16ac966655f74eab65c8c.tar.gz
linux-46afb0628b86347933b16ac966655f74eab65c8c.tar.bz2
linux-46afb0628b86347933b16ac966655f74eab65c8c.zip
xfs: only flush the unshared range in xfs_reflink_unshare
There's no reason to flush an entire file when we're unsharing part of a file. Therefore, only initiate writeback on the selected range. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
-rw-r--r--fs/xfs/xfs_reflink.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/xfs/xfs_reflink.c b/fs/xfs/xfs_reflink.c
index 16098dc42add..6fa05fb78189 100644
--- a/fs/xfs/xfs_reflink.c
+++ b/fs/xfs/xfs_reflink.c
@@ -1502,7 +1502,8 @@ xfs_reflink_unshare(
&xfs_buffered_write_iomap_ops);
if (error)
goto out;
- error = filemap_write_and_wait(inode->i_mapping);
+
+ error = filemap_write_and_wait_range(inode->i_mapping, offset, len);
if (error)
goto out;