xfs: account for null transactions in bunmapi
In e1a4e37cc7
("xfs: try to avoid blowing out the transaction
reservation when bunmaping a shared extent"), we try to constrain the
amount of real extents we unmap from the data fork in a given call so
that we don't blow out transaction reservations.
However, not all bunmapi operations require a transaction -- if we're
only removing a delalloc extent, no transaction is needed, so we have to
code against that.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
6e643cd094
commit
8c57b88637
|
@ -5136,7 +5136,7 @@ __xfs_bunmapi(
|
||||||
* blowing out the transaction with a mix of EFIs and reflink
|
* blowing out the transaction with a mix of EFIs and reflink
|
||||||
* adjustments.
|
* adjustments.
|
||||||
*/
|
*/
|
||||||
if (xfs_is_reflink_inode(ip) && whichfork == XFS_DATA_FORK)
|
if (tp && xfs_is_reflink_inode(ip) && whichfork == XFS_DATA_FORK)
|
||||||
max_len = min(len, xfs_refcount_max_unmap(tp->t_log_res));
|
max_len = min(len, xfs_refcount_max_unmap(tp->t_log_res));
|
||||||
else
|
else
|
||||||
max_len = len;
|
max_len = len;
|
||||||
|
|
Loading…
Reference in New Issue