linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Theodore Ts'o" <tytso@mit.edu>
To: Kemeng Shi <shikemeng@huaweicloud.com>
Cc: adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 11/13] ext4: correct gdblock calculation in add_new_gdb_meta_bg to support non first group
Date: Fri, 18 Aug 2023 00:07:51 -0400	[thread overview]
Message-ID: <20230818040751.GF3464136@mit.edu> (raw)
In-Reply-To: <e9215048-8a10-bb3e-93f7-0bf840997027@huaweicloud.com>

On Fri, Aug 18, 2023 at 10:29:52AM +0800, Kemeng Shi wrote:
> Actually, there seems a functional change to add_new_gdb_meta_bg.
> Assume 'group' is the new added group, 'first_group' is the first group
> of meta_bg which contains 'group',
> Original way to calculate gdbblock:
> gdbblock = group_first_block('first_group') + bg_has_super(*'group'*)
> New ay to calculate gdbblock
> gdbblock = group_first_block('first_group') + bg_has_super(*'first_group'*)
> If new added group is not the first group of meta_bg, add_new_gdb_meta_bg
> get a wrong gdbblock.

If you look at the ext4_add_new_descs() function,
add_new_gdb_meta_bg() is only called when the group is a multiple of
EXT4_DESC_PER_BLOCK --- that is, when group % EXT4_DESC_PER_BLOCK == 0.

As such, it is only called when with group is the first group in the
meta_bg.  So there is no bug here.  The code is bit confusing, I agree
--- I myself got confused because it's been years since I last looked
at the code, and it's not particularly commented well, which is my fault.

This also makes the commit description "... to support non-first
group" incorrect, since it never gets called as with a "non-first
group".

The patch makes things a little simpler, but the commit description
would confuse anyone who looked at it while doing code archeology.
The change is fine, although at this point, given how we both
misunderstood how the code worked without doing some deep mind-melds
with the C code in question, it's clear that we need some better
comments in the code.

For example, the comment "add_new_gdb_meta_bg is the sister of
add_new_gdb" is clearly insufficient.

						- Ted

  reply	other threads:[~2023-08-18  4:09 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-29 12:00 [PATCH 00/13] fixes and cleanups to ext4 resize Kemeng Shi
2023-06-29 12:00 ` [PATCH 01/13] ext4: correct offset of gdb backup in non meta_bg group to update_backups Kemeng Shi
2023-08-16  3:03   ` Theodore Ts'o
2023-06-29 12:00 ` [PATCH 02/13] ext4: add missed brelse in update_backups Kemeng Shi
2023-08-16  3:03   ` Theodore Ts'o
2023-06-29 12:00 ` [PATCH 03/13] ext4: correct return value of ext4_convert_meta_bg Kemeng Shi
2023-08-16  3:00   ` Theodore Ts'o
2023-08-17  2:48     ` Kemeng Shi
2023-08-17 13:58       ` Theodore Ts'o
2023-06-29 12:00 ` [PATCH 04/13] ext4: remove gdb backup copy for meta bg in setup_new_flex_group_blocks Kemeng Shi
2023-08-16  3:10   ` Theodore Ts'o
2023-06-29 12:00 ` [PATCH 05/13] ext4: fix typo " Kemeng Shi
2023-08-16  3:10   ` Theodore Ts'o
2023-06-29 12:00 ` [PATCH 06/13] ext4: remove redundant check of count Kemeng Shi
2023-08-16  3:14   ` Theodore Ts'o
2023-06-29 12:00 ` [PATCH 07/13] ext4: remove commented code in reserve_backup_gdb Kemeng Shi
2023-08-16  3:14   ` Theodore Ts'o
2023-06-29 12:00 ` [PATCH 08/13] ext4: calculate free_clusters_count in cluster unit in verify_group_input Kemeng Shi
2023-08-16  3:22   ` Theodore Ts'o
2023-08-17  2:57     ` Kemeng Shi
2023-06-29 12:00 ` [PATCH 09/13] ext4: remove EXT4FS_DEBUG defination in resize.c Kemeng Shi
2023-08-16  3:23   ` Theodore Ts'o
2023-06-29 12:00 ` [PATCH 10/13] ext4: use saved local variable sbi instead of EXT4_SB(sb) Kemeng Shi
2023-08-16  3:24   ` Theodore Ts'o
2023-06-29 12:00 ` [PATCH 11/13] ext4: correct gdblock calculation in add_new_gdb_meta_bg to support non first group Kemeng Shi
2023-08-16  3:45   ` Theodore Ts'o
2023-08-17  3:38     ` Kemeng Shi
2023-08-17 14:03       ` Theodore Ts'o
2023-08-18  2:29         ` Kemeng Shi
2023-08-18  4:07           ` Theodore Ts'o [this message]
2023-08-18  7:09             ` Kemeng Shi
2023-08-18 16:54               ` Theodore Ts'o
2023-08-22  2:48                 ` Kemeng Shi
2023-06-29 12:00 ` [PATCH 12/13] ext4: remove unnecessary check for avoiding multiple update_backups in ext4_flex_group_add Kemeng Shi
2023-08-16  3:47   ` Theodore Ts'o
2023-08-17  3:53     ` Kemeng Shi
2023-08-17 14:11       ` Theodore Ts'o
2023-08-18  3:16         ` Kemeng Shi
2023-08-18  5:00           ` Theodore Ts'o
2023-08-18  8:42             ` Kemeng Shi
2023-08-18 16:00               ` Theodore Ts'o
2023-08-22  2:21                 ` Kemeng Shi
2023-06-29 12:00 ` [PATCH 13/13] ext4: remove unnecessary initialization of count2 in set_flexbg_block_bitmap Kemeng Shi
2023-08-16  3:48   ` Theodore Ts'o

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230818040751.GF3464136@mit.edu \
    --to=tytso@mit.edu \
    --cc=adilger.kernel@dilger.ca \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=shikemeng@huaweicloud.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).