xfs: embed dfops in the transaction
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest15 patches 40 repliesIn review
- v114 patches 26 repliesSuperseded
Changes in v2 from the cover letter
- Rebase on djwong xfs_defer_finish() final tx roll patch.
- Added patch to skip extra roll on dfops finish via tx commit.
- Split up assert in xfs_reflink_cancel_cow_blocks().
- Use memset()/memcpy() rather than open-coded reset/copy.
- Relocated struct xfs_defer_ops and xfs_defer_cancel() defs to avoid header file include mess.
v1: https://marc.info/?l=linux-xfs&m=153200816200883&w=2
Patches in v2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/15 | xfs: pull up dfops from xfs_itruncate_extents()fs/ fs/ fs/ +2 more | +14 | 2 replies | |
| 2/15 | xfs: use ->t_dfops in log recovery intent processingfs/ | +2 | 2 replies | |
| 3/15 | xfs: fix transaction leak on remote attr set/remove failurefs/ | +0 | 2 replies | |
| 4/15 | xfs: make deferred processing safe for embedded dfopsfs/ | +14 | 2 replies | |
| 5/15 | xfs: remove unused deferred ops committed fieldfs/ fs/ fs/ | +2 | 2 replies | |
| 6/15 | xfs: reset dfops to initial state after finishfs/ | +18 | 2 replies | |
| 7/15 | xfs: pack holes in xfs_defer_ops and xfs_transfs/ fs/ | +3 | 2 replies | |
| 8/15 | xfs: support embedded dfops in transactionfs/ fs/ fs/ +1 more | +66 | 3 replies | |
| 9/15 | xfs: use internal dfops in cow blocks cancelfs/ | +2 | 3 replies | |
| 10/15 | xfs: use internal dfops in attr codefs/ | +5 | 3 replies | |
| 11/15 | xfs: use internal dfops during [b|c]ui recoveryfs/ fs/ fs/ | +30 | 3 replies | |
| 12/15 | xfs: remove all boilerplate defer init/finish codefs/ fs/ fs/ +10 more | +44 | 3 replies | |
| 13/15 | xfs: remove unnecessary dfops init calls in xattr codefs/ fs/ | +0 | 3 replies | |
| 14/15 | xfs: drop unnecessary xfs_defer_finish() dfops parameterfs/ fs/ fs/ +8 more | +46 | 5 replies | |
| 15/15 | xfs: bypass final dfops roll in trans commit pathfs/ fs/ fs/ | +24 | 4 replies |
Reviews trailers per patch
All 15 patches have a Reviewed-by or Acked-by.
| Patch | Christoph Hellwig | Bill O'Donnell | Darrick J. Wong |
|---|---|---|---|
| 1/15 | R-b | R-b | R-b |
| 2/15 | R-b | R-b | R-b |
| 3/15 | R-b | R-b | R-b |
| 4/15 | R-b | R-b | R-b |
| 5/15 | R-b | R-b | R-b |
| 6/15 | R-b | R-b | R-b |
| 7/15 | R-b | R-b | R-b |
| 8/15 | R-b | R-b | R-b |
| 9/15 | R-b | R-b | R-b |
| 10/15 | R-b | R-b | R-b |
| 11/15 | R-b | R-b | R-b |
| 12/15 | R-b | R-b | R-b |
| 13/15 | R-b | R-b | R-b |
| 14/15 | R-b | R-b | R-b |
| 15/15 | R-b R-b | R-b R-b | R-b R-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.
Cover letter [PATCH v2 00/15] xfs: embed dfops in the transaction
Hi all,
Here is v2 of the series to embed dfops in the transaction. This is rebased onto Darrick's recently posted[1] xfs_defer_finish() patch to ensure the associated function returns with a clean transaction. A new patch is appended to the series to avoid that extra roll when xfs_defer_finish() is called via the transaction commit path. Otherwise this has minor updates based on feedback to v1.
Note that, as discussed, I'm working on some changes to further condense xfs_defer_ops with the transaction structure (such as automatic dfops relogging). Those changes will be part of a separate series.
Thoughts, reviews, flames appreciated.
Brian
[1] https://marc.info/?l=linux-xfs&m=153192905211637&w=2
v2:
- Rebase on djwong xfs_defer_finish() final tx roll patch.
- Added patch to skip extra roll on dfops finish via tx commit.
- Split up assert in xfs_reflink_cancel_cow_blocks().
- Use memset()/memcpy() rather than open-coded reset/copy.
- Relocated struct xfs_defer_ops and xfs_defer_cancel() defs to avoid header file include mess.
v1: https://marc.info/?l=linux-xfs&m=153200816200883&w=2
Brian Foster (15):
xfs: pull up dfops from xfs_itruncate_extents()
xfs: use ->t_dfops in log recovery intent processing
xfs: fix transaction leak on remote attr set/remove failure
xfs: make deferred processing safe for embedded dfops
xfs: remove unused deferred ops committed field
xfs: reset dfops to initial state after finish
xfs: pack holes in xfs_defer_ops and xfs_trans
xfs: support embedded dfops in transaction
xfs: use internal dfops in cow blocks cancel
xfs: use internal dfops in attr code
xfs: use internal dfops during [b|c]ui recovery
xfs: remove all boilerplate defer init/finish code
xfs: remove unnecessary dfops init calls in xattr code
xfs: drop unnecessary xfs_defer_finish() dfops parameter
xfs: bypass final dfops roll in trans commit path
fs/xfs/libxfs/xfs_attr.c | 49 ++++++----------- fs/xfs/libxfs/xfs_attr_remote.c | 13 ++--- fs/xfs/libxfs/xfs_bmap.c | 16 +----- fs/xfs/libxfs/xfs_defer.c | 97 +++++++++++++++++++++++---------- fs/xfs/libxfs/xfs_defer.h | 21 ++----- fs/xfs/libxfs/xfs_refcount.c | 10 +--- fs/xfs/xfs_attr_inactive.c | 1 + fs/xfs/xfs_bmap_item.c | 21 +++---- fs/xfs/xfs_bmap_util.c | 45 +++------------ fs/xfs/xfs_dquot.c | 8 +-- fs/xfs/xfs_inode.c | 87 ++++++----------------------- fs/xfs/xfs_iomap.c | 26 +-------- fs/xfs/xfs_iops.c | 1 + fs/xfs/xfs_log_recover.c | 12 +--- fs/xfs/xfs_qm_syscalls.c | 1 + fs/xfs/xfs_refcount_item.c | 30 +++++----- fs/xfs/xfs_reflink.c | 51 ++++++----------- fs/xfs/xfs_rtalloc.c | 9 +-- fs/xfs/xfs_symlink.c | 38 +++---------- fs/xfs/xfs_trace.h | 8 +-- fs/xfs/xfs_trans.c | 37 +++++++++++-- fs/xfs/xfs_trans.h | 22 +++++++- 22 files changed, 240 insertions(+), 363 deletions(-)
Signature · 1 line
2.17.1