summaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_trans_extfree.c
diff options
context:
space:
mode:
authorDarrick J. Wong <darrick.wong@oracle.com>2016-09-19 02:26:25 +0200
committerDave Chinner <david@fromorbit.com>2016-09-19 02:26:25 +0200
commit385d655861d221bb43ae69a9cfa9adbefe31ad00 (patch)
treedfca3c3c000bed9dcabddc6fea374aa8611f27f2 /fs/xfs/xfs_trans_extfree.c
parentxfs: count the blocks in a btree (diff)
downloadlinux-385d655861d221bb43ae69a9cfa9adbefe31ad00.tar.xz
linux-385d655861d221bb43ae69a9cfa9adbefe31ad00.zip
xfs: defer should allow ->finish_item to request a new transaction
When xfs_defer_finish calls ->finish_item, it's possible that (refcount) won't be able to finish all the work in a single transaction. When this happens, the ->finish_item handler should shorten the log done item's list count, update the work item to reflect where work should continue, and return -EAGAIN so that defer_finish knows to retain the pending item on the pending list, roll the transaction, and restart processing where we left off. Plumb in the code and document how this mechanism is supposed to work. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'fs/xfs/xfs_trans_extfree.c')
0 files changed, 0 insertions, 0 deletions