Bug 2823

Summary: quotacheck broken with EXT2_DIRECT set on 4k block fs
Product: [Retired] Red Hat Linux Reporter: mbeattie
Component: quotaAssignee: Preston Brown <pbrown>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 5.2   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 1999-08-30 23:28:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description mbeattie 1999-05-14 16:24:34 UTC
Situation is an ext2 filesystem created with
    mke2fs -b 4096 -Rstride=16 /dev/md0
on a RAID5 block device (using Ingo Molnar's
raid0145-19981215-2.0.36 patch).

Running quotacheck on that filesystem fills in all
"amount used" fields with complete garbage: even
non-existent uids end up with huge random numbers in there.
Recompiling quotacheck from source without -DEXT2_DIRECT
set makes quotacheck work OK.

Presumably the "fast and direct" way using libext2fs fails
for filesystems which don't use the default settings
(either the 4k blocksize or the non-default stride, I would
guess, since the underlying RAID block device shouldn't
affect the fs structure). Either quotacheck has a bug in the
way that it uses libext2fs or libext2fs has a bug with
non-default fs options.

The workaround of turning off -DEXT2_DIRECT is OK for now
(since the number of files hasn't yet grown enough to make
the slow-but-sure file tree walk take too long). However,
there are a couple of 40GB filesystems involved so a proper
solution would be nice before they do fill up.

If the underlying bug can't be stomped easily then a
command line option to choose between direct/non-direct
would be OK (instead of it being a compile-time option).

Comment 1 Preston Brown 2001-02-01 22:55:36 UTC
this works fine in newer versions of the quota and kernel.