Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp3723127rwb; Fri, 16 Dec 2022 21:10:18 -0800 (PST) X-Google-Smtp-Source: AMrXdXsNdb0dwQYttHAD1esD/kjB7KKqCji+43hbPp32shC3SJMYQUmpLOC1VqeDo+s7YDmVEyk9 X-Received: by 2002:a17:902:db04:b0:190:e234:d92e with SMTP id m4-20020a170902db0400b00190e234d92emr19885559plx.58.1671253818507; Fri, 16 Dec 2022 21:10:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671253818; cv=none; d=google.com; s=arc-20160816; b=MklWrwIctP+TUT4ckfGrwp6kxGQIQ2MAASU5dh1mtVcS5gJes5Fj1prkdKjHsNlXkC dAyELjftNX0Xs6thXAOVqIBwbkGFgUtKSutc4L6LEFzzm4Yp4QvzeWNDNC/GiRVFzPIB 45R4Sn+RfCpUWI0TLKYv+UiUUt8f1sI2EUqQqi6abOsprpCCThrhh05o6mDFtyZ6fHLz u9LK0k5OP7IQHWNpTMHVMXn6zj+UYvJebx0wkjDn5dSqaJ9dLQW64uCvRsfQjfq8n7mS MvRlkEMMSXXfWYs8Mkig4Hh/k0l9uiAjD1qXZ8Yzzr4kAta4pdIjf6YWuH7vuQjS6tCW tiHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=KYq9Z1IZOMwd4isodqjv9O3UI9JdAjR1WE5moaDMgO8=; b=HqezgeB5uztC5AQk6uGcxzynEoMMA30+t43Czo+zOe0LGijiJIsZrulojCjMyhjljC hoOetnbnW2toSgKtdDAoMQ8wqkA6J9AhFri7ZFdcYZnMNvgwm5j+AWIoCttY1H2QT6r3 iTrc+iyAR5+10cdOCPrZ1yMhGyv5ZGYhSSQ1PziInCzTeXxeL0TUM/rUX5bQnGuBvhvv f07BGalRWaVb1Tg7p186eld5z/uXNeM/ez24VYMXdL2TjkEK21adiIaW5OfFo44MXRl4 IWzLR/UeayDzqnJsQj9EpKLpxNlLwf01LMAbivUEzLhnP3g2TQqLFu1TYVpAtQj55pPU st5g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="p9/qB5K7"; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j5-20020a170903028500b00189957dd208si4418736plr.220.2022.12.16.21.09.58; Fri, 16 Dec 2022 21:10:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="p9/qB5K7"; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229552AbiLQFCy (ORCPT + 99 others); Sat, 17 Dec 2022 00:02:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59496 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229590AbiLQFCv (ORCPT ); Sat, 17 Dec 2022 00:02:51 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 080B3680B8 for ; Fri, 16 Dec 2022 21:02:49 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 84EC760B3B for ; Sat, 17 Dec 2022 05:02:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CD4E6C433EF; Sat, 17 Dec 2022 05:02:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1671253368; bh=lB6AkVTxKbROoUe9AQN+P5dlgWuSDBeXmlid3V8mXps=; h=From:To:Cc:Subject:Date:From; b=p9/qB5K77QPWGaYX5UMnReY7u4KQYH2w87IVUGhlIkmQWG3k8lAWh+kvnQrCXKcFC QNNEXnOOzDbkkmL/YVCE7e8/5wGDkRYNh5oPQV3W0LTn2Z880yrb1fAV50zk+EnnHA cqgPNooc3EbNwJQZwebu8Ben8krg7KgwJSNC5XWCSyKhhV7Srt/rfvD2ghLDT7ITyI qcSZjkqplwbUs/ZeHPgPXkoh2JUcgxZDWmfaPUcmH2GjIOUtoDwOoyvbC4GlSXtS41 AhvYKY7ftWcrrayPFgQOrWUEIGUfKAOgxNEmJ5//d3mv/cv/Zobce13HtHA74xaBj8 O87HmO1N5cYRw== From: Eric Biggers To: linux-ext4@vger.kernel.org Cc: Ye Bin Subject: [PATCH] ext4: use ext4_fc_tl_mem in fast-commit replay path Date: Fri, 16 Dec 2022 21:02:12 -0800 Message-Id: <20221217050212.150665-1-ebiggers@kernel.org> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org From: Eric Biggers To avoid 'sparse' warnings about missing endianness conversions, don't store native endianness values into struct ext4_fc_tl. Instead, use a separate struct type, ext4_fc_tl_mem. Fixes: dcc5827484d6 ("ext4: factor out ext4_fc_get_tl()") Cc: Ye Bin Signed-off-by: Eric Biggers --- fs/ext4/fast_commit.c | 44 +++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/fs/ext4/fast_commit.c b/fs/ext4/fast_commit.c index 4594b62f147b..b06de728b3b6 100644 --- a/fs/ext4/fast_commit.c +++ b/fs/ext4/fast_commit.c @@ -1332,8 +1332,14 @@ struct dentry_info_args { char *dname; }; +/* Same as struct ext4_fc_tl, but uses native endianness fields */ +struct ext4_fc_tl_mem { + u16 fc_tag; + u16 fc_len; +}; + static inline void tl_to_darg(struct dentry_info_args *darg, - struct ext4_fc_tl *tl, u8 *val) + struct ext4_fc_tl_mem *tl, u8 *val) { struct ext4_fc_dentry_info fcd; @@ -1345,16 +1351,18 @@ static inline void tl_to_darg(struct dentry_info_args *darg, darg->dname_len = tl->fc_len - sizeof(struct ext4_fc_dentry_info); } -static inline void ext4_fc_get_tl(struct ext4_fc_tl *tl, u8 *val) +static inline void ext4_fc_get_tl(struct ext4_fc_tl_mem *tl, u8 *val) { - memcpy(tl, val, EXT4_FC_TAG_BASE_LEN); - tl->fc_len = le16_to_cpu(tl->fc_len); - tl->fc_tag = le16_to_cpu(tl->fc_tag); + struct ext4_fc_tl tl_disk; + + memcpy(&tl_disk, val, EXT4_FC_TAG_BASE_LEN); + tl->fc_len = le16_to_cpu(tl_disk.fc_len); + tl->fc_tag = le16_to_cpu(tl_disk.fc_tag); } /* Unlink replay function */ -static int ext4_fc_replay_unlink(struct super_block *sb, struct ext4_fc_tl *tl, - u8 *val) +static int ext4_fc_replay_unlink(struct super_block *sb, + struct ext4_fc_tl_mem *tl, u8 *val) { struct inode *inode, *old_parent; struct qstr entry; @@ -1451,8 +1459,8 @@ static int ext4_fc_replay_link_internal(struct super_block *sb, } /* Link replay function */ -static int ext4_fc_replay_link(struct super_block *sb, struct ext4_fc_tl *tl, - u8 *val) +static int ext4_fc_replay_link(struct super_block *sb, + struct ext4_fc_tl_mem *tl, u8 *val) { struct inode *inode; struct dentry_info_args darg; @@ -1506,8 +1514,8 @@ static int ext4_fc_record_modified_inode(struct super_block *sb, int ino) /* * Inode replay function */ -static int ext4_fc_replay_inode(struct super_block *sb, struct ext4_fc_tl *tl, - u8 *val) +static int ext4_fc_replay_inode(struct super_block *sb, + struct ext4_fc_tl_mem *tl, u8 *val) { struct ext4_fc_inode fc_inode; struct ext4_inode *raw_inode; @@ -1609,8 +1617,8 @@ static int ext4_fc_replay_inode(struct super_block *sb, struct ext4_fc_tl *tl, * inode for which we are trying to create a dentry here, should already have * been replayed before we start here. */ -static int ext4_fc_replay_create(struct super_block *sb, struct ext4_fc_tl *tl, - u8 *val) +static int ext4_fc_replay_create(struct super_block *sb, + struct ext4_fc_tl_mem *tl, u8 *val) { int ret = 0; struct inode *inode = NULL; @@ -1708,7 +1716,7 @@ int ext4_fc_record_regions(struct super_block *sb, int ino, /* Replay add range tag */ static int ext4_fc_replay_add_range(struct super_block *sb, - struct ext4_fc_tl *tl, u8 *val) + struct ext4_fc_tl_mem *tl, u8 *val) { struct ext4_fc_add_range fc_add_ex; struct ext4_extent newex, *ex; @@ -1828,8 +1836,8 @@ static int ext4_fc_replay_add_range(struct super_block *sb, /* Replay DEL_RANGE tag */ static int -ext4_fc_replay_del_range(struct super_block *sb, struct ext4_fc_tl *tl, - u8 *val) +ext4_fc_replay_del_range(struct super_block *sb, + struct ext4_fc_tl_mem *tl, u8 *val) { struct inode *inode; struct ext4_fc_del_range lrange; @@ -2025,7 +2033,7 @@ static int ext4_fc_replay_scan(journal_t *journal, struct ext4_fc_replay_state *state; int ret = JBD2_FC_REPLAY_CONTINUE; struct ext4_fc_add_range ext; - struct ext4_fc_tl tl; + struct ext4_fc_tl_mem tl; struct ext4_fc_tail tail; __u8 *start, *end, *cur, *val; struct ext4_fc_head head; @@ -2144,7 +2152,7 @@ static int ext4_fc_replay(journal_t *journal, struct buffer_head *bh, { struct super_block *sb = journal->j_private; struct ext4_sb_info *sbi = EXT4_SB(sb); - struct ext4_fc_tl tl; + struct ext4_fc_tl_mem tl; __u8 *start, *end, *cur, *val; int ret = JBD2_FC_REPLAY_CONTINUE; struct ext4_fc_replay_state *state = &sbi->s_fc_replay_state; base-commit: 77856d911a8c8724ee8e2b09d55979fc1de8f1c0 -- 2.38.1