diff options
author | Kaixu Xia <kaixuxia@tencent.com> | 2020-09-23 09:13:28 -0700 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2020-09-25 11:34:07 -0700 |
commit | d6b8fc6c7afa0acebaef3e17e112227237e75745 (patch) | |
tree | 702502f5274808eba3934fa80b65bbb157cf869e /fs/xfs/xfs_trans.h | |
parent | 74af4c1770f952a34e52e1eb6f1d97636d754d2c (diff) | |
download | lwn-d6b8fc6c7afa0acebaef3e17e112227237e75745.tar.gz lwn-d6b8fc6c7afa0acebaef3e17e112227237e75745.zip |
xfs: do the assert for all the log done items in xfs_trans_cancel
We should do the assert for all the log intent-done items if they appear
here. This patch detect intent-done items by the fact that their item ops
don't have iop_unpin and iop_push methods and also move the helper
xlog_item_is_intent to xfs_trans.h.
Signed-off-by: Kaixu Xia <kaixuxia@tencent.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'fs/xfs/xfs_trans.h')
-rw-r--r-- | fs/xfs/xfs_trans.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h index f46534b75236..a71b4f443e39 100644 --- a/fs/xfs/xfs_trans.h +++ b/fs/xfs/xfs_trans.h @@ -78,6 +78,22 @@ struct xfs_item_ops { bool (*iop_match)(struct xfs_log_item *item, uint64_t id); }; +/* Is this log item a deferred action intent? */ +static inline bool +xlog_item_is_intent(struct xfs_log_item *lip) +{ + return lip->li_ops->iop_recover != NULL && + lip->li_ops->iop_match != NULL; +} + +/* Is this a log intent-done item? */ +static inline bool +xlog_item_is_intent_done(struct xfs_log_item *lip) +{ + return lip->li_ops->iop_unpin == NULL && + lip->li_ops->iop_push == NULL; +} + /* * Release the log item as soon as committed. This is for items just logging * intents that never need to be written back in place. |