Re: [PATCH 05/12] jbd2: open code jbd2_verify_csum_type() helper

Jan Kara
2023-08-03T14:20:00Z

On Tue 04-07-23 21:42:26, Zhang Yi wrote:
> From: Zhang Yi <yi.zhang@huawei.com>
>
> jbd2_verify_csum_type() helper check checksum type in the superblock for
> v2 or v3 checksum feature, it always return true if these features are
> not enabled, and it has only one user, so open code it is more clear.
>
> Signed-off-by: Zhang Yi <yi.zhang@huawei.com>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

Honza

> ---
> fs/jbd2/journal.c | 18 +++++-------------
> 1 file changed, 5 insertions(+), 13 deletions(-)
>
> diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
> index d84f26b08315..46ab47b4439e 100644
> --- a/fs/jbd2/journal.c
> +++ b/fs/jbd2/journal.c
> @@ -115,14 +115,6 @@ void __jbd2_debug(int level, const char *file, const char *func,
> #endif
>
> /* Checksumming functions */
> -static int jbd2_verify_csum_type(journal_t *j, journal_superblock_t *sb)
> -{
> - if (!jbd2_journal_has_csum_v2or3_feature(j))
> - return 1;
> -
> - return sb->s_checksum_type == JBD2_CRC32C_CHKSUM;
> -}
> -
> static __be32 jbd2_superblock_csum(journal_t *j, journal_superblock_t *sb)
> {
> __u32 csum;
> @@ -1429,13 +1421,13 @@ static int journal_get_superblock(journal_t *journal)
> goto out;
> }
>
> - if (!jbd2_verify_csum_type(journal, sb)) {
> - printk(KERN_ERR "JBD2: Unknown checksum type\n");
> - goto out;
> - }
> -
> /* Load the checksum driver */
> if (jbd2_journal_has_csum_v2or3_feature(journal)) {
> + if (sb->s_checksum_type != JBD2_CRC32C_CHKSUM) {
> + printk(KERN_ERR "JBD2: Unknown checksum type\n");
> + goto out;
> + }
> +
> journal->j_chksum_driver = crypto_alloc_shash("crc32c", 0, 0);
> if (IS_ERR(journal->j_chksum_driver)) {
> printk(KERN_ERR "JBD2: Cannot load crc32c driver.\n");
> --
> 2.39.2
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR