On Thu, Dec 08, 2022 at 11:34:25AM +0800, Ye Bin wrote: > From: Ye Bin <yebin10@xxxxxxxxxx> > > If 'i_reserved_data_blocks' is not cleared which mean something wrong with > code, free space accounting is likely wrong, according to Jan Kara's advice > use ext4_error() to record this abnormal let fsck to repair and also we can > capture this issue. If i_reserved_data_block, it means that there is something wrong with our delayed allocation accounting. However, this accounting is usually only an in-memory error. The one exception is if quota is enabled, in which case the space is decremented from the user/group/project quota. However, if quota is not in use, which is the overwhelmingly common case, there will be nothing for fsck to repair. (It does mean that df will show a slightly smaller free space value due to the messed up delayed allocation accounting, but that disappears after a reboot.) Marking the file system as in need of repair when nothing is actually wrong with the on-disk file system can backfire, in that it confuses users when they see the ext4 error but then when they run fsck, fsck reports nothing wrong --- at which point they file a bug. We could use ext4_error if quotas are enabled, and ext4_msg if not, but it might not worth the extra complexity. Cheers, - Ted