tag name | reflink-cleanups_2020-06-24 (54a1ccb1c9bf0e44b5c6710457bd713fa930437e) |
tag date | 2020-06-24 18:13:55 -0700 |
tagged by | Darrick J. Wong <darrick.wong@oracle.com> |
tagged object | commit e812e6bd89... |
xfs: reflink cleanups
Here are a few patches cleaning up some problems with reflink. The
first patch is the largest -- it reorganizes the remapping loop so that
instead of running one transaction for each extent in the source file
regardless of what's in the destination file, we look at both files to
find the longest extent we can swap in one go, and run a transaction for
just that piece. This fixes a problem of running out of block
reservation when the filesystem is very fragmented.
The second patch fixes some goofiness in the reflink prep function, and
the third patch moves the "lock two inodes" code into xfs_inode.c since
none of that is related to reflink.
Mr. Torok: Could you try applying these patches to a recent kernel to
see if they fix the fs crash problems you were seeing with duperemove,
please?
v2: various cleanups suggested by Brian Foster