From patchwork Tue Mar 26 03:57:23 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 13603552 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF1E821353 for ; Tue, 26 Mar 2024 03:57:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711425445; cv=none; b=I9Eu8glAFEhalfqkxcRQGN+gCucw9R0Ueewp5hsmpGBqgmGHZAwDPYFBfQb5ilvlbtVCU1L8Qw8Vj5+Xat4X+i1PMC31d1fY9fnBC1Z+lSvipqVyB0kFwn08rSE+b3gIKE8cgvVQvRu9fE0Gq+5AzvsuKbchUiSq30ShqcQEdpA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711425445; c=relaxed/simple; bh=6hgVt7TFM44YnZUK1+fesc/J36KabdORCmGxTFm5Rew=; h=Date:Subject:From:To:Cc:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=K4aRHYXXSiCV4HqfZUbLqte3Q/tlZ7TDIehBJwyC+omdSaW3fsSBBbzdXD7vQqqqYu1/GmSVTKNqEZXJZq3DupColFQHD8MH1VA3v32hZnP5uww02HuUlrbrX3p4/XojQX+vT/lzqELAX+1rK+utm296VVbaFVzoYfavxJwLhx4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hHd1FPtJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hHd1FPtJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5CE02C433F1; Tue, 26 Mar 2024 03:57:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711425444; bh=6hgVt7TFM44YnZUK1+fesc/J36KabdORCmGxTFm5Rew=; h=Date:Subject:From:To:Cc:In-Reply-To:References:From; b=hHd1FPtJN90rReOsTrhhiqV0l//9MDcOLmLzdiepEYHIjKLcFekRqQE2S4/SiAL7Y ndpK97+Gy8ZUfOQB6IEjj/HmlGuF/G0Km+agakQncluVdqcw2mFuq4Y3occh8iH8Xy yKcr3NIcbFol0APkFI0zEp3iHCsUG8rMQBdo1gJ1TlAJlFh7A6PepMFzrePcUQfOm/ yYr7cLUfJuKyak0PD6TVwJ8WvCh/3YmXQXzESAR/1E/scBUJtZIFApiO6rtSvIhkSQ AqW89palpmBbH24bt0YYCHqpreDOUzq4XwPxdlaP8rF/HAYuFrrfe7+SYl8qn4uKXc DESE5D20J6Krg== Date: Mon, 25 Mar 2024 20:57:23 -0700 Subject: [PATCH 1/4] libxfs: remove kmem_alloc, kmem_zalloc, and kmem_free From: "Darrick J. Wong" To: cem@kernel.org, djwong@kernel.org Cc: linux-xfs@vger.kernel.org Message-ID: <171142133305.2217863.6981063627842514508.stgit@frogsfrogsfrogs> In-Reply-To: <171142133286.2217863.14915428649465069188.stgit@frogsfrogsfrogs> References: <171142133286.2217863.14915428649465069188.stgit@frogsfrogsfrogs> User-Agent: StGit/0.19 Precedence: bulk X-Mailing-List: linux-xfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Darrick J. Wong Remove all three of these helpers now that the kernel has dropped them. Signed-off-by: Darrick J. Wong --- db/bmap_inflate.c | 2 +- include/kmem.h | 10 +--------- libxfs/defer_item.c | 2 +- libxfs/init.c | 2 +- libxfs/kmem.c | 32 ++++++++++---------------------- libxlog/xfs_log_recover.c | 19 +++++++++---------- repair/bmap_repair.c | 4 ++-- 7 files changed, 25 insertions(+), 46 deletions(-) diff --git a/db/bmap_inflate.c b/db/bmap_inflate.c index c85d5dc0d64a..00e1aff66567 100644 --- a/db/bmap_inflate.c +++ b/db/bmap_inflate.c @@ -327,7 +327,7 @@ populate_btree( /* Leak any unused blocks */ list_for_each_entry_safe(resv, n, &bd.resv_list, list) { list_del(&resv->list); - kmem_free(resv); + kfree(resv); } return error; } diff --git a/include/kmem.h b/include/kmem.h index 6818a404728f..386b4a6be783 100644 --- a/include/kmem.h +++ b/include/kmem.h @@ -50,15 +50,7 @@ kmem_cache_free(struct kmem_cache *cache, void *ptr) free(ptr); } -extern void *kmem_alloc(size_t, int); extern void *kvmalloc(size_t, gfp_t); -extern void *kmem_zalloc(size_t, int); - -static inline void -kmem_free(const void *ptr) { - free((void *)ptr); -} - extern void *krealloc(void *, size_t, int); static inline void *kmalloc(size_t size, gfp_t flags) @@ -70,7 +62,7 @@ static inline void *kmalloc(size_t size, gfp_t flags) static inline void kfree(const void *ptr) { - return kmem_free(ptr); + free((void *)ptr); } #endif diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index d67032c26200..680a72664746 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -606,7 +606,7 @@ xfs_attr_free_item( if (attr->xattri_da_state) xfs_da_state_free(attr->xattri_da_state); if (attr->xattri_da_args->op_flags & XFS_DA_OP_RECOVERY) - kmem_free(attr); + kfree(attr); else kmem_cache_free(xfs_attr_intent_cache, attr); } diff --git a/libxfs/init.c b/libxfs/init.c index f5cd85655cf0..d0478960278a 100644 --- a/libxfs/init.c +++ b/libxfs/init.c @@ -893,7 +893,7 @@ libxfs_buftarg_free( struct xfs_buftarg *btp) { cache_destroy(btp->bcache); - kmem_free(btp); + kfree(btp); } /* diff --git a/libxfs/kmem.c b/libxfs/kmem.c index c264be018bdc..a2a3935d00e8 100644 --- a/libxfs/kmem.c +++ b/libxfs/kmem.c @@ -65,33 +65,21 @@ kmem_cache_zalloc(struct kmem_cache *cache, gfp_t flags) return ptr; } -void * -kmem_alloc(size_t size, int flags) -{ - void *ptr = malloc(size); - - if (ptr == NULL) { - fprintf(stderr, _("%s: malloc failed (%d bytes): %s\n"), - progname, (int)size, strerror(errno)); - exit(1); - } - return ptr; -} - void * kvmalloc(size_t size, gfp_t flags) { + void *ptr; + if (flags & __GFP_ZERO) - return kmem_zalloc(size, 0); - return kmem_alloc(size, 0); -} + ptr = calloc(1, size); + else + ptr = malloc(size); -void * -kmem_zalloc(size_t size, int flags) -{ - void *ptr = kmem_alloc(size, flags); - - memset(ptr, 0, size); + if (ptr == NULL) { + fprintf(stderr, _("%s: malloc failed (%d bytes): %s\n"), + progname, (int)size, strerror(errno)); + exit(1); + } return ptr; } diff --git a/libxlog/xfs_log_recover.c b/libxlog/xfs_log_recover.c index 99f759d5cb03..31b11fee9e47 100644 --- a/libxlog/xfs_log_recover.c +++ b/libxlog/xfs_log_recover.c @@ -991,7 +991,7 @@ xlog_recover_new_tid( { struct xlog_recover *trans; - trans = kmem_zalloc(sizeof(struct xlog_recover), 0); + trans = kzalloc(sizeof(struct xlog_recover), 0); trans->r_log_tid = tid; trans->r_lsn = lsn; INIT_LIST_HEAD(&trans->r_itemq); @@ -1006,7 +1006,7 @@ xlog_recover_add_item( { struct xlog_recover_item *item; - item = kmem_zalloc(sizeof(struct xlog_recover_item), 0); + item = kzalloc(sizeof(struct xlog_recover_item), 0); INIT_LIST_HEAD(&item->ri_list); list_add_tail(&item->ri_list, head); } @@ -1085,7 +1085,7 @@ xlog_recover_add_to_trans( return 0; } - ptr = kmem_alloc(len, 0); + ptr = kmalloc(len, 0); memcpy(ptr, dp, len); in_f = (struct xfs_inode_log_format *)ptr; @@ -1107,13 +1107,12 @@ xlog_recover_add_to_trans( "bad number of regions (%d) in inode log format", in_f->ilf_size); ASSERT(0); - kmem_free(ptr); + kfree(ptr); return XFS_ERROR(EIO); } item->ri_total = in_f->ilf_size; - item->ri_buf = - kmem_zalloc(item->ri_total * sizeof(xfs_log_iovec_t), + item->ri_buf = kzalloc(item->ri_total * sizeof(xfs_log_iovec_t), 0); } ASSERT(item->ri_total > item->ri_cnt); @@ -1141,13 +1140,13 @@ xlog_recover_free_trans( /* Free the regions in the item. */ list_del(&item->ri_list); for (i = 0; i < item->ri_cnt; i++) - kmem_free(item->ri_buf[i].i_addr); + kfree(item->ri_buf[i].i_addr); /* Free the item itself */ - kmem_free(item->ri_buf); - kmem_free(item); + kfree(item->ri_buf); + kfree(item); } /* Free the transaction recover structure */ - kmem_free(trans); + kfree(trans); } /* diff --git a/repair/bmap_repair.c b/repair/bmap_repair.c index 845584f18450..317061aa564f 100644 --- a/repair/bmap_repair.c +++ b/repair/bmap_repair.c @@ -595,7 +595,7 @@ xrep_bmap( if (error) return error; - rb = kmem_zalloc(sizeof(struct xrep_bmap), KM_NOFS | KM_MAYFAIL); + rb = kzalloc(sizeof(struct xrep_bmap), 0); if (!rb) return ENOMEM; rb->sc = sc; @@ -622,7 +622,7 @@ xrep_bmap( out_bitmap: free_slab(&rb->bmap_records); out_rb: - kmem_free(rb); + kfree(rb); return error; } From patchwork Tue Mar 26 03:57:39 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 13603553 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 316C221353 for ; Tue, 26 Mar 2024 03:57:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711425460; cv=none; b=fquCpls9pyDyu9YSHMFXdHGml3tOlFdUNk8FoPS1pQ3pw1Di1ZsXkCICRH7CsM8w88nxzFq5NBRvu3qaSVEhnoLsc8U2kOUF2PNekTbMm3rYxyiaCdgqBgX11Bb7MJl0RWADHQ16KRvCIMSbyikUbxTYJ4dhxZjEv/QgvtPmY6A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711425460; c=relaxed/simple; bh=m3iG23jPfN+2jGmxV3hvXNApBsJ6jMco+r+2IfAZuQQ=; h=Date:Subject:From:To:Cc:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=oMdc6CxlaUPCqcJjPPFuwMH61umEYq5AvUycEOnZXwtOnu6gh6HifpMbOplrIWuOWvT2n6JkBct/SobaxQ5tJzcF0r1gfZDoU3qQskrb4RQUHmgWP9fLat9aFUuigEteG58dipJapQTWU2B+IOiO9KO3hIJES9ssJwdFrITl8S0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UFO8e6SP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UFO8e6SP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0364CC433C7; Tue, 26 Mar 2024 03:57:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711425460; bh=m3iG23jPfN+2jGmxV3hvXNApBsJ6jMco+r+2IfAZuQQ=; h=Date:Subject:From:To:Cc:In-Reply-To:References:From; b=UFO8e6SPngvzW31rMuo5ZE6r9syWAL9ba4XPIcoKlbXP67B1p7zNTkGI7YAFU2MbL 7pZjL/Ay1qIj/3ImGuUHJNT8vt+Jnp70eXHW80b6381UPxmFANbYfMNNdDBz8snJTu EZv3qk511WYNavdsuPHwmd5i/mT0LCHDhx1BxhgAWW/8hcEnktWngSbL8Bh54u1rM7 vUvHKUnUMOMmpinIiHOZGhvOfrADiCgBaK9sWUV2B7jUpS3GsF0MmbwUyzNTxgMcoY zSqLhj2FE8oTSQgHYj1M8a47ZV1NiG2IVrwzMWpkLF/BSBIKaY/lLmwJdb0ZFogimx CfLjVSu4FYMYA== Date: Mon, 25 Mar 2024 20:57:39 -0700 Subject: [PATCH 2/4] libxfs: add a bi_entry helper From: "Darrick J. Wong" To: cem@kernel.org, djwong@kernel.org Cc: linux-xfs@vger.kernel.org Message-ID: <171142133320.2217863.10523483539378615179.stgit@frogsfrogsfrogs> In-Reply-To: <171142133286.2217863.14915428649465069188.stgit@frogsfrogsfrogs> References: <171142133286.2217863.14915428649465069188.stgit@frogsfrogsfrogs> User-Agent: StGit/0.19 Precedence: bulk X-Mailing-List: linux-xfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Darrick J. Wong Add a helper to translate from the item list head to the bmap_intent structure and use it so shorten assignments and avoid the need for extra local variables. Inspired-by: Christoph Hellwig Signed-off-by: Darrick J. Wong --- libxfs/defer_item.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index 680a72664746..d19322a0b255 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -439,6 +439,11 @@ const struct xfs_defer_op_type xfs_refcount_update_defer_type = { /* Inode Block Mapping */ +static inline struct xfs_bmap_intent *bi_entry(const struct list_head *e) +{ + return list_entry(e, struct xfs_bmap_intent, bi_list); +} + /* Sort bmap intents by inode. */ static int xfs_bmap_update_diff_items( @@ -446,11 +451,9 @@ xfs_bmap_update_diff_items( const struct list_head *a, const struct list_head *b) { - const struct xfs_bmap_intent *ba; - const struct xfs_bmap_intent *bb; + struct xfs_bmap_intent *ba = bi_entry(a); + struct xfs_bmap_intent *bb = bi_entry(b); - ba = container_of(a, struct xfs_bmap_intent, bi_list); - bb = container_of(b, struct xfs_bmap_intent, bi_list); return ba->bi_owner->i_ino - bb->bi_owner->i_ino; } @@ -527,10 +530,9 @@ xfs_bmap_update_finish_item( struct list_head *item, struct xfs_btree_cur **state) { - struct xfs_bmap_intent *bi; + struct xfs_bmap_intent *bi = bi_entry(item); int error; - bi = container_of(item, struct xfs_bmap_intent, bi_list); error = xfs_bmap_finish_one(tp, bi); if (!error && bi->bi_bmap.br_blockcount > 0) { ASSERT(bi->bi_type == XFS_BMAP_UNMAP); @@ -554,9 +556,7 @@ STATIC void xfs_bmap_update_cancel_item( struct list_head *item) { - struct xfs_bmap_intent *bi; - - bi = container_of(item, struct xfs_bmap_intent, bi_list); + struct xfs_bmap_intent *bi = bi_entry(item); xfs_bmap_update_put_group(bi); kmem_cache_free(xfs_bmap_intent_cache, bi); From patchwork Tue Mar 26 03:57:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 13603554 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 276DC1292E6 for ; Tue, 26 Mar 2024 03:57:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711425476; cv=none; b=TOhAOyBIR6P91YM22Hyp1lAExv54kCvx/4Vr3hYT9MWHjFzxKEslG5x3pgzYfj8kZsTiFSFUYxU9mPbLIr/t6/xpHiqDX84ZlRG0Ve8ZDeoPiYXu/7zli3HapSvWtYlirm6zMkoCcO+/ah0vUgiX4cgIdSGFIG9lWTpF0w6Kcw0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711425476; c=relaxed/simple; bh=UEljtf9sIK7el4HmgNludF4tt3Ia9Xw2RVigQ9TeNPE=; h=Date:Subject:From:To:Cc:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=lQf1WbxlSV2eG4fS4WGWQbBI76Lk/VmpJlrtd8O8KuyH1iNpsyCZgYYsxmColAZ7Xu1t6ttTI/vk98Wo8RigmV4jwz9lnW1OosqOlC+g/ewNzr/LYZUGwSkZURX3WeZng/NKBvDyTj7eZbh6IIyw43Px1BLY0gHJFtKn6a72mqo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=vOXK9aDp; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="vOXK9aDp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AAE6BC433F1; Tue, 26 Mar 2024 03:57:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711425475; bh=UEljtf9sIK7el4HmgNludF4tt3Ia9Xw2RVigQ9TeNPE=; h=Date:Subject:From:To:Cc:In-Reply-To:References:From; b=vOXK9aDpjSv91lICpn7M+brVIWdfkFfakSYxWaXI/Z188DvA9G9RhGpnVXRxLI/jy hTPUdWVl0PHpn7FiNX+SkzFK17R2IsMss1CTwAl189OHZWFQ0WEfvQQaPxHXWyXzJ6 nHX0+wYLSEQx2IaDcg1+Lu3ziIpMpu2JGjU8cLlXVJAi+IcoaiuLuJMrxGZ6dPTJdr nnBWTcVnJinnkAdZw0bzTw9b5abnpveiOQIURtV9zqoP3VJtMSiERU/Hf9WLOQ4+QE nWmLdCmn6gkpcJshH57VJKz+8qqZD/G2re2dF5BNcBiW1pOrab/tYmRAJAR6gzzW3A tgCX7ECySisvw== Date: Mon, 25 Mar 2024 20:57:55 -0700 Subject: [PATCH 3/4] xfs: reuse xfs_bmap_update_cancel_item From: "Darrick J. Wong" To: cem@kernel.org, djwong@kernel.org Cc: linux-xfs@vger.kernel.org Message-ID: <171142133334.2217863.924055077881029544.stgit@frogsfrogsfrogs> In-Reply-To: <171142133286.2217863.14915428649465069188.stgit@frogsfrogsfrogs> References: <171142133286.2217863.14915428649465069188.stgit@frogsfrogsfrogs> User-Agent: StGit/0.19 Precedence: bulk X-Mailing-List: linux-xfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Darrick J. Wong Reuse xfs_bmap_update_cancel_item to put the AG/RTG and free the item in a few places that currently open code the logic. Inspired-by: Christoph Hellwig Signed-off-by: Darrick J. Wong --- libxfs/defer_item.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index d19322a0b255..36811c7fece1 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -522,6 +522,17 @@ xfs_bmap_update_put_group( xfs_perag_intent_put(bi->bi_pag); } +/* Cancel a deferred rmap update. */ +STATIC void +xfs_bmap_update_cancel_item( + struct list_head *item) +{ + struct xfs_bmap_intent *bi = bi_entry(item); + + xfs_bmap_update_put_group(bi); + kmem_cache_free(xfs_bmap_intent_cache, bi); +} + /* Process a deferred rmap update. */ STATIC int xfs_bmap_update_finish_item( @@ -539,8 +550,7 @@ xfs_bmap_update_finish_item( return -EAGAIN; } - xfs_bmap_update_put_group(bi); - kmem_cache_free(xfs_bmap_intent_cache, bi); + xfs_bmap_update_cancel_item(item); return error; } @@ -551,17 +561,6 @@ xfs_bmap_update_abort_intent( { } -/* Cancel a deferred rmap update. */ -STATIC void -xfs_bmap_update_cancel_item( - struct list_head *item) -{ - struct xfs_bmap_intent *bi = bi_entry(item); - - xfs_bmap_update_put_group(bi); - kmem_cache_free(xfs_bmap_intent_cache, bi); -} - const struct xfs_defer_op_type xfs_bmap_update_defer_type = { .name = "bmap", .create_intent = xfs_bmap_update_create_intent, From patchwork Tue Mar 26 03:58:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 13603555 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B63FE12838F for ; Tue, 26 Mar 2024 03:58:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711425491; cv=none; b=cMYjHqJAYFEFYIX5y8BFCyo1Kh2fYmAgkmQ1ewuGS8MTDgQcFK1RLt/urRwPvOXiMO2azeIoUzkyzv/Y1pVF8Lk9IrJu316GpHyonATTyq7jsAMVs3jympxSQP4yUNNlEI6GaW46fVDd7cMG3RGl52gJvXiy18YkIfcL5Ax7a+Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711425491; c=relaxed/simple; bh=zou1A9NV7RwEqQlnZek6n9QFWNshxUr8pw9xIe13FRs=; h=Date:Subject:From:To:Cc:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Ceb73f9qGcA8ufK8ItRXAGA4MwGQ+kgEwHmwq5b8w23nLpcOUv8gCDBCNdjFzSyVIC9iHgKKthMIm0Bfh9BILu4st+dSO6hHlirOhw571YRcjUtIm06HPMm+eEmY308H7tAN911/8Ef4yZ+sK7wDtBO6hdNc5g8OYzLH3k1rx9Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=u0KQGqiW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="u0KQGqiW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 53813C433F1; Tue, 26 Mar 2024 03:58:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711425491; bh=zou1A9NV7RwEqQlnZek6n9QFWNshxUr8pw9xIe13FRs=; h=Date:Subject:From:To:Cc:In-Reply-To:References:From; b=u0KQGqiWEQVkhJ9r2tCnAT3ygiktjx5+8Z8hC9BmU/reaFDrS8k2M31IJB0tQtWYg OgxYT7Cgc3wuaQN5q02VWqExbzW8nVYEpzeY6sBRD5FX2oO9a5oT6JDRju06ZQ0kj6 ASguGpGiuYjg0aQ4yA0jJRtHalVVAFknTad4DoQmiOlpIOYqkBOikMMOixB1fp917E RHA+IUlzG4gZAUvArbQfev0k7vmiAQwq0KKmDDNwR9SN4Cx/23gOtBT6sjKzGZpE/y eAMfn6m3cJBYv7NtzF6I+zX+NdPERvCKqLWuegE/BLEMwa4g8tNxgncFzfGGHVQWDi VP/k1VqAt8akg== Date: Mon, 25 Mar 2024 20:58:10 -0700 Subject: [PATCH 4/4] xfs: add a xattr_entry helper From: "Darrick J. Wong" To: cem@kernel.org, djwong@kernel.org Cc: linux-xfs@vger.kernel.org Message-ID: <171142133348.2217863.7124619996249333792.stgit@frogsfrogsfrogs> In-Reply-To: <171142133286.2217863.14915428649465069188.stgit@frogsfrogsfrogs> References: <171142133286.2217863.14915428649465069188.stgit@frogsfrogsfrogs> User-Agent: StGit/0.19 Precedence: bulk X-Mailing-List: linux-xfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Darrick J. Wong Add a helper to translate from the item list head to the attr_intent item structure and use it so shorten assignments and avoid the need for extra local variables. Inspired-by: Christoph Hellwig Signed-off-by: Darrick J. Wong --- libxfs/defer_item.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index 36811c7fece1..fdb922f08c39 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -570,6 +570,13 @@ const struct xfs_defer_op_type xfs_bmap_update_defer_type = { .cancel_item = xfs_bmap_update_cancel_item, }; +/* Logged extended attributes */ + +static inline struct xfs_attr_intent *attri_entry(const struct list_head *e) +{ + return list_entry(e, struct xfs_attr_intent, xattri_list); +} + /* Get an ATTRI. */ static struct xfs_log_item * xfs_attr_create_intent( @@ -618,11 +625,10 @@ xfs_attr_finish_item( struct list_head *item, struct xfs_btree_cur **state) { - struct xfs_attr_intent *attr; - int error; + struct xfs_attr_intent *attr = attri_entry(item); struct xfs_da_args *args; + int error; - attr = container_of(item, struct xfs_attr_intent, xattri_list); args = attr->xattri_da_args; /* @@ -651,9 +657,8 @@ static void xfs_attr_cancel_item( struct list_head *item) { - struct xfs_attr_intent *attr; + struct xfs_attr_intent *attr = attri_entry(item); - attr = container_of(item, struct xfs_attr_intent, xattri_list); xfs_attr_free_item(attr); }