Goswin von Brederlow wrote:
> Nathanael Nerode <[EMAIL PROTECTED]> writes:
>
>
>>Package: defrag
>>Version: 0.73pjm1-7
>>Severity: important
>>
>>So, e2defrag thinks I have an ext3 filesystem when it's ext2.
>>
>>doctormoo:/home/neroden# e2defrag /dev/hda7
>>
>>e2defrag (/dev/hda7): ext3 filesystems not (yet) supported
>>doctormoo:/home/neroden# dumpe2fs /dev/hda7
>>Filesystem volume name: <none>
>>Last mounted on: <not available>
>>Filesystem UUID: effbe1b8-36fc-4c3d-b8d0-710ff1fb95d6
>>Filesystem magic number: 0xEF53
>>Filesystem revision #: 1 (dynamic)
>>Filesystem features: dir_index filetype sparse_super
>>Default mount options: (none)
>>Filesystem state: clean
>>....
>>
>>This renders it kind of unusable.
>>
>>What's going on here?
>
>
> I haven't checked the code but my guess is the dir_index flag causes
> this. If I'm right the error message should be rephrased but the
> failure is valid.
I think you're right about the source of the error. After turning off
dir_index, it works. Looking at the code, there's supposed to be a
separate error message for that sort of thing; it's supposed to die with
"filesystem has unsupported features".
*However*, it's also indicated that it shouldn't actually have any
trouble with dir_index, or any other ext2 "compat" feature; these are
the features which the kernel will happily read *and write* if it
doesn't understand them, so it's probably fine for defrag (a program
with massive warnings attached) to do the same.
In addition, the failure is caused by an accidentally defective
Debian-specific patch, and is not present upstream!
debian/patches/ext3-notwork.dpatch contains a completely wrong patch.
+ /*
+ * Added by Timshel Knoll <[EMAIL PROTECTED]>, 27/10/02
+ * e2defrag doesn't support ext3 journals (yet)
+ */
+ if(Super.s_feature_compat & ~EXT3_FEATURE_COMPAT_HAS_JOURNAL)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ die("ext3 filesystems not (yet) supported");
+
The logic here is exactly backwards. It bails out on any feature in the
"compat" list *except* has_journal. With has_journal, it happily
continues (even though that's the broken case).
You want the patch to say:
+ if(Super.s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL)
+ die("ext3 filesystems not (yet) supported");
> e2defrag needs some major source changes (variable type but not code)
> to compile on !i386 archs that I have pending for after sarge and I'm
> realy busy with work and amd64 currently. I hope you can wait a while
> for this.
Sure. It might go much much quicker now that I've identified the bug
and demonstrated the appropriate change, though. :-)
>
> MfG
> Goswin
>
> PS: can you reproduce this with a freshly amde fs?
> mke2fs [--some-options] /dev/ram0; e2defrag /dev/ram0?
Yes, but only because dir_index is set by default. :-/
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]