Re: [PATCH] e2fsck: delay quotas loading in release_orphan_inodes()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Aug 23, 2023, at 8:27 PM, Baokun Li <libaokun1@xxxxxxxxxx> wrote:
> 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@xxxxxxxxxx>
>> 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()?
> 
> 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.

I recall that Ted prefers e2fsck to fix everything in a single pass, or at
worst if a fatal problem hit during the run it should restart itself so
that it will fix all of the problems before exiting.

Cheers, Andreas





Attachment: signature.asc
Description: Message signed with OpenPGP


[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux