diff options
author | Chandan Babu R <chandan.babu@oracle.com> | 2022-03-09 08:49:36 +0100 |
---|---|---|
committer | Chandan Babu R <chandan.babu@oracle.com> | 2022-04-13 09:02:44 +0200 |
commit | 4f86bb4b66c999ad9ddcfd49fec93992eeba2715 (patch) | |
tree | 593c82f5b2a0f9f9bdd1c1dcd3fb34dbb5b8b661 /fs/xfs/xfs_reflink.c | |
parent | xfs: Directory's data fork extent counter can never overflow (diff) | |
download | linux-4f86bb4b66c999ad9ddcfd49fec93992eeba2715.tar.xz linux-4f86bb4b66c999ad9ddcfd49fec93992eeba2715.zip |
xfs: Conditionally upgrade existing inodes to use large extent counters
This commit enables upgrading existing inodes to use large extent counters
provided that underlying filesystem's superblock has large extent counter
feature enabled.
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Chandan Babu R <chandan.babu@oracle.com>
Diffstat (limited to 'fs/xfs/xfs_reflink.c')
-rw-r--r-- | fs/xfs/xfs_reflink.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/xfs/xfs_reflink.c b/fs/xfs/xfs_reflink.c index 54e68e5693fd..1ae6d3434ad2 100644 --- a/fs/xfs/xfs_reflink.c +++ b/fs/xfs/xfs_reflink.c @@ -620,6 +620,9 @@ xfs_reflink_end_cow_extent( error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK, XFS_IEXT_REFLINK_END_COW_CNT); + if (error == -EFBIG) + error = xfs_iext_count_upgrade(tp, ip, + XFS_IEXT_REFLINK_END_COW_CNT); if (error) goto out_cancel; @@ -1121,6 +1124,8 @@ xfs_reflink_remap_extent( ++iext_delta; error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK, iext_delta); + if (error == -EFBIG) + error = xfs_iext_count_upgrade(tp, ip, iext_delta); if (error) goto out_cancel; |