On Wed, Jun 1, 2011 at 2:37 AM, Amir Goldstein <span dir="ltr"><<a href="mailto:amir73il@gmail.com">amir73il@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class="h5">On Wed, Jun 1, 2011 at 8:34 AM, Eric Sandeen <<a href="mailto:sandeen@redhat.com">sandeen@redhat.com</a>> wrote:<br>
> On 6/1/11 12:22 AM, Eric Sandeen wrote:<br>
>> On 5/31/11 11:56 PM, Amir Goldstein wrote:<br>
>>> On Wed, Jun 1, 2011 at 7:37 AM, Eric Sandeen <<a href="mailto:sandeen@redhat.com">sandeen@redhat.com</a>> wrote:<br>
>>>> On 5/31/11 10:13 PM, Amir Goldstein wrote:<br>
>>>>> From: Amir Goldstein <<a href="mailto:amir73il@users.sf.net">amir73il@users.sf.net</a>><br>
>>>>><br>
>>>>> blkid knows to identify the ext4dev FSTYP of a partition that was<br>
>>>>> formatted with mkfs.ext4dev.<br>
>>>>> quota tools and various util-linux utils are also aware of ext4dev,<br>
>>>>> so ext4dev shares the same capabilities as ext4.<br>
>>>>><br>
>>>>> While testing on Fedora 15, we encoutered a buggy fsck utility, which<br>
>>>>> invokes fsck.ext4, even though it was called with -t ext4dev argument.<br>
>>>>> In our setup fsck.ext4dev knows about new fs features that fsck.ext4<br>
>>>>> doesn't know, so the generic_fs_check fails.<br>
>>>>> Since we have no real use of the extra capabilities provided by fsck util,<br>
>>>>> we decided to invoke fsck.$FSTYP directly to avoid this issue.<br>
>>>><br>
>>>> Adding ext4dev to every case seems harmless enough. TBH I thought I had<br>
>>>> it there already but I guess not.<br>
>>>><br>
>>>> I'm less certain of the change from fsck -t $FSTYP to fsck.$FSTYP<br>
>>>><br>
>>>> What issue are you avoiding? wouldn't fsck -t ext4dev invoke fsck.ext4dev anyway?<br>
>>>><br>
>>>> It seems like it should be harmless, but I don't understand how it helps you.<br>
>>>><br>
>>><br>
>>> As I wrote in the patch description, the fsck utility in Fedora 15 invokes<br>
>>> fsck.ext4 for some reason when calling fsck -t ext4dev.<br>
>><br>
>> Oh, right.<br>
>><br>
>>> this fails because fsck.ext4 doesn't know the snapshot feature.<br>
>>> I didn't debug fsck utility for that. it seemed pointless.<br>
>><br>
>> Did you file a bug with Fedora? I'd rather fix the root cause than work around it...<br>
>> Feel free to cc: me on the bug.<br>
<br>
</div></div>No, I didn't file a bug.<br>
In any case, it was Sergey, who tested and reported the problem on F15.<br>
<br>
Would you agree to fix the problem in xfstests now, so that F15 users can<br>
test ext4dev and fix the bug in fsck regardless?<br>
<div class="im"><br>
><br>
> RHEL6 does the same; mkfs.ext4dev then fsck -t ext4dev invokes fsck.ext4; but this<br>
> is because blkid identifies it as ext4, not ext4dev, despite the test_fs flag being set.<br>
><br>
> ISTR this is due to some tortured logic about when ext4dev isn't ext4dev, but<br>
> I don't remember the details... I don't know if this is the same situation<br>
> you're seeing; just to double check - does blkid correctly identify it as ext4dev<br>
> on F15?<br>
<br>
<br>
</div>For me (on Ubuntu) blkid identifies ext4dev, but maybe the tortured logic<br>
finds unknown features a justification for declaring ext4dev?<br>
Segrey, can you answer the question for F15?<br>
Did you set FSTYP to ext4dev manually or did blkid identified it for you?<br></blockquote><div><br></div><div>Amir, Fedora's fsck behaves differently on ext4dev and next4. When I made next4 partition on Fedora-15 by </div>
<div>{{{</div><div>mkfs -t next4 /dev/sdd9</div><div>}}}</div><div>it requires "export FSTYP=next4" to be defined and exported in local.conf. It mounts partition with</div><div>{{{</div><div>mount -t next4 /dev/sdd9 /mnt/sdd9</div>
<div>}}}</div><div>But on attempt to fsck it calls wrong fsck, as you reported:</div><div>{{{</div><div><div>[seriv@pimbra xfstests]$ sudo fsck -t next4 /dev/sdd9</div><div>fsck from util-linux 2.19.1</div><div>e2fsck 1.41.14 (22-Dec-2010)</div>
<div>/dev/sdd9 has unsupported feature(s): FEATURE_C7 FEATURE_C8 FEATURE_R7</div><div>e2fsck: Get a newer version of e2fsck!</div></div><div>}}}</div><div><br></div><div>And the problem can be easily traced to this wrong call:</div>
<div>{{{</div><div><div>[seriv@pimbra xfstests]$ sudo strace -o /var/log/fsck.strace fsck -t next4 /dev/sdd9 </div><div>fsck from util-linux 2.19.1</div><div>e2fsck 1.41.14 (22-Dec-2010)</div><div>/dev/sdd9 has unsupported feature(s): FEATURE_C7 FEATURE_C8 FEATURE_R7</div>
<div>e2fsck: Get a newer version of e2fsck!</div><div>[seriv@pimbra xfstests]$ grep sbin /var/log/fsck.strace </div><div>execve("/sbin/fsck", ["fsck", "-t", "next4", "/dev/sdd9"], [/* 17 vars */]) = 0</div>
<div>stat("/sbin/fsck.ext4", {st_mode=S_IFREG|0755, st_size=194280, ...}) = 0</div></div><div>}}}</div><div><br></div><div>But it's not the case for ext4dev, with it I even don't need "-t ext4dev", it is recognized by blkid:</div>
<div>{{{</div><div><div>[seriv@pimbra xfstests]$ sudo mkfs -t ext4dev /dev/sdd9</div><div>mke2fs 1.41.14-next3-1.0.13-7 (24-May-2011)</div><div>[skip]</div><div>This filesystem will be automatically checked every 27 mounts or</div>
<div>180 days, whichever comes first. Use tune2fs -c or -i to override.</div><div>[seriv@pimbra xfstests]$ sudo mount /dev/sdd9 /mnt/sdd9</div><div>[seriv@pimbra xfstests]$ mount | grep sdd9</div><div>/dev/sdd9 on /mnt/sdd9 type ext4dev (rw)</div>
<div>[seriv@pimbra xfstests]$ sudo umount /dev/sdd9</div><div>[seriv@pimbra xfstests]$ sudo fsck /dev/sdd9</div><div>fsck from util-linux 2.19.1</div><div>e2fsck 1.41.14-next3-1.0.13-7 (24-May-2011)</div><div>The test_fs flag is set (and ext4 is available). Clear<y>? </div>
</div><div>}}}</div><div>and at this point in another session</div><div>{{{</div><div><div>[seriv@pimbra xfstests]$ pgrep -f -l fsck</div><div>4365 sudo fsck /dev/sdd9</div><div>4366 fsck /dev/sdd9</div><div>4367 fsck.ext4dev /dev/sdd9</div>
</div><div>}}}</div><div><br></div><div>So I'd like this patch to be applied to xfstests to be able to use it on the different filesystems, - if not, then why have this FSTYP and not rely upon blkid</div><div>-- </div>
<div> Regards,</div><div> Sergey Ivanov.</div></div><br>