lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c03c97b6-1a04-737f-c17b-8e35564f32df@huawei.com>
Date:   Thu, 24 Aug 2023 10:27:46 +0800
From:   Baokun Li <libaokun1@...wei.com>
To:     Jan Kara <jack@...e.cz>
CC:     <linux-ext4@...r.kernel.org>, <tytso@....edu>,
        <adilger.kernel@...ger.ca>, <darrick.wong@...cle.com>,
        <yi.zhang@...wei.com>, <yangerkun@...wei.com>,
        <yukuai3@...wei.com>, Baokun Li <libaokun1@...wei.com>
Subject: Re: [PATCH] e2fsck: delay quotas loading in release_orphan_inodes()

Hello, Jan!

On 2023/8/24 1:05, Jan Kara wrote:
> On Thu 17-08-23 16:18:28, Baokun Li wrote:
>> After 7d79b40b ("e2fsck: adjust quota counters when clearing orphaned
>> inodes"), we load all the quotas before we process the orphaned inodes,
>> and when we load the quotas, we check the checsum of the bbitmap for each
>> group. If one of the bbitmap checksums is wrong, the following error will
>> be reported:
>>
>> “Error initializing quota context in support library:
>>   Block bitmap checksum does not match bitmap”
>>
>> But loading quotas comes before checking the current superblock for the
>> EXT2_ERROR_FS flag, which makes it impossible to use e2fsck to repair any
>> image that contains orphan inodes and has the wrong bbitmap checksum.
>> So delaying quota loading until after the EXT2_ERROR_FS judgment avoids
>> the above problem.
>>
>> Signed-off-by: Baokun Li <libaokun1@...wei.com>
> This certainly looks better but I wonder if there still isn't a problem if
> the bitmap checksums are wrong but EXT2_ERROR_FS is not set. Shouldn't we
> rather move the initialization of the quota files after the call to
> e2fsck_read_bitmaps()?
>
> 								Honza
When the bitmap checksums are wrong but EXT2_ERROR_FS is not set, we must
have lost some data (error flag or group descriptor or bitmap), so there is
something wrong with the kernel at this time, so I don't think we should 
fix the
image directly, but rather let the user realize that something is wrong 
with the
filesystem logic.

Moreover, if we don't care how this happened, but just want to fix the 
image,
we only need to run "e2fsck -a" twice. After merging in the current 
patch, we
always empty the orphan list before loading the quotas, and EXT2_ERROR_FS
is set when loading the quotas fails, so this will be fixed the second 
time you
run e2fsck. It will not happen that every e2fsck will fail like it did 
before.

Thanks!
-- 
With Best Regards,
Baokun Li
.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ