Re: [f2fs-dev] [PATCH] resize.f2fs: add option for large_nat_bitmap feature

From: Chao Yu
Date: Sat Jan 11 2020 - 04:43:53 EST


On 2020/1/10 17:58, xiong ping wrote:
> Chao Yu <yuchao0@xxxxxxxxxx> ä2020å1æ9æåå äå3:16åéï
>>
>> On 2020/1/8 19:20, Ping1 Xiong çå wrote:
>>> From d5b8411dbae37180c37d96bf164fab16138fc21a Mon Sep 17 00:00:00 2001
>>>
>>> From: xiongping1 <xiongping1@xxxxxxxxxx>
>>> Date: Wed, 8 Jan 2020 17:20:55 +0800
>>> Subject: [PATCH] resize.f2fs: add option for large_nat_bitmap feature
>>
>> Thanks for your contribution.
>>
>> The patch format is incorrect, I guess it was changed by email client or when
>> you paste patch's content, could you check it?
>>
> I have resend the patch with this email account yesterday, can you check it?
>>>
>>> resize.f2fs has already supported large_nat_bitmap feature, but has no
>>> option to turn on it.
>>>
>>> This change add a new '-i' option to control turning on/off it.
>>
>> We only add a option to turn on this feature, right? rather than turning
>> on or off it?
>>
> yes, the feature is off by default, so we need an option to enable it.

So, I meant it needs to adjust commit message from "turning on/off it" to
"turning on it".

>> Thanks,
>>
>>>
>>> Signed-off-by: xiongping1 <xiongping1@xxxxxxxxxx>
>>> ---
>>> fsck/main.c | 6 +++++-
>>> fsck/resize.c | 5 +++++
>>> 2 files changed, 10 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/fsck/main.c b/fsck/main.c
>>> index 9a7d499..e7e3dfc 100644
>>> --- a/fsck/main.c
>>> +++ b/fsck/main.c
>>> @@ -104,6 +104,7 @@ void resize_usage()
>>> MSG(0, "\nUsage: resize.f2fs [options] device\n");
>>> MSG(0, "[options]:\n");
>>> MSG(0, " -d debug level [default:0]\n");
>>> + MSG(0, " -i extended node bitmap, node ratio is 20%% by default\n");
>>> MSG(0, " -s safe resize (Does not resize metadata)");
>>> MSG(0, " -t target sectors [default: device size]\n");
>>> MSG(0, " -V print the version number and exit\n");
>>> @@ -449,7 +450,7 @@ void f2fs_parse_options(int argc, char *argv[])
>>> break;
>>> }
>>> } else if (!strcmp("resize.f2fs", prog)) {
>>> - const char *option_string = "d:st:V";
>>> + const char *option_string = "d:st:iV";
>>>
>>> c.func = RESIZE;
>>> while ((option = getopt(argc, argv, option_string)) != EOF) {
>>> @@ -476,6 +477,9 @@ void f2fs_parse_options(int argc, char *argv[])
>>> ret = sscanf(optarg, "%"PRIx64"",
>>> &c.target_sectors);
>>> break;
>>> + case 'i':
>>> + c.large_nat_bitmap = 1;
>>> + break;
>>> case 'V':
>>> show_version(prog);
>>> exit(0);
>>> diff --git a/fsck/resize.c b/fsck/resize.c
>>> index fc563f2..88e063e 100644
>>> --- a/fsck/resize.c
>>> +++ b/fsck/resize.c
>>> @@ -519,6 +519,11 @@ static void rebuild_checkpoint(struct f2fs_sb_info *sbi,
>>> else
>>> set_cp(checksum_offset, CP_CHKSUM_OFFSET);
>>>
>>> + if (c.large_nat_bitmap) {
>>> + set_cp(checksum_offset, CP_MIN_CHKSUM_OFFSET);
>>> + flags |= CP_LARGE_NAT_BITMAP_FLAG;
>>> + }

How about relocating above codes to below position:

flags = update_nat_bits_flags(new_sb, cp, get_cp(ckpt_flags));

+ if (c.large_nat_bitmap)
+ flags |= CP_LARGE_NAT_BITMAP_FLAG;

if (flags & CP_COMPACT_SUM_FLAG)
flags &= ~CP_COMPACT_SUM_FLAG;

Thanks,

>>> +
>>> set_cp(ckpt_flags, flags);
>>>
>>> memcpy(new_cp, cp, (unsigned char *)cp->sit_nat_version_bitmap -
>>> --
>>> 2.7.4
>>>
>>>
>>>
>>>
>>> #/******æéäååéäåæåçååçäåäæïäéäåéçäéååäååçääæççãçæääåäääääååäçïåæääéäåéæéååæéãååãææåïæéääçäæãåææéæäæéäïèæçåçèæéäéçåääååéæéäï This e-mail and its attachments contain confidential information from XIAOMI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!******/#
>>
>>
>> _______________________________________________
>> Linux-f2fs-devel mailing list
>> Linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx
>> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
> .
>