]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: pass the defer ops instead of type to xfs_defer_start_recovery
authorChristoph Hellwig <hch@lst.de>
Mon, 15 Apr 2024 23:07:36 +0000 (16:07 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 17 Apr 2024 21:06:24 +0000 (14:06 -0700)
Source kernel commit: dc22af64368291a86fb6b7eb2adab21c815836b7

xfs_defer_start_recovery is only called from xlog_recover_intent_item,
and the callers of that all have the actual xfs_defer_ops_type operation
vector at hand.  Pass that directly instead of looking it up from the
defer_op_types table.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
Reviewed-by: Bill O'Donnell <bodonnel@redhat.com>
libxfs/xfs_defer.c
libxfs/xfs_defer.h

index bb5411b84545434589eb8f13917e54bc6dd5dd31..033283017faec86d8f5fd96535e2476f75cf08ae 100644 (file)
@@ -888,14 +888,14 @@ xfs_defer_add_barrier(
 void
 xfs_defer_start_recovery(
        struct xfs_log_item             *lip,
-       enum xfs_defer_ops_type         dfp_type,
-       struct list_head                *r_dfops)
+       struct list_head                *r_dfops,
+       const struct xfs_defer_op_type  *ops)
 {
        struct xfs_defer_pending        *dfp;
 
        dfp = kmem_cache_zalloc(xfs_defer_pending_cache,
                        GFP_NOFS | __GFP_NOFAIL);
-       dfp->dfp_ops = defer_op_types[dfp_type];
+       dfp->dfp_ops = ops;
        dfp->dfp_intent = lip;
        INIT_LIST_HEAD(&dfp->dfp_work);
        list_add_tail(&dfp->dfp_list, r_dfops);
index 957a06278e880d94fb620c602f0a250b69552797..60de91b66392256b4a79702777a0df6e2abbf63e 100644 (file)
@@ -147,7 +147,7 @@ void xfs_defer_ops_capture_abort(struct xfs_mount *mp,
 void xfs_defer_resources_rele(struct xfs_defer_resources *dres);
 
 void xfs_defer_start_recovery(struct xfs_log_item *lip,
-               enum xfs_defer_ops_type dfp_type, struct list_head *r_dfops);
+               struct list_head *r_dfops, const struct xfs_defer_op_type *ops);
 void xfs_defer_cancel_recovery(struct xfs_mount *mp,
                struct xfs_defer_pending *dfp);
 int xfs_defer_finish_recovery(struct xfs_mount *mp,