Eric Sandeen <sand...@redhat.com> wrote:
> Jim Meyering wrote:
>> In http://bugzilla.redhat.com/485507
>>
>> Eric Sandeen proposed to add ext4 to the list of names
>> currently reported for that type of file system ("ext2/ext3").
>>
>> I'm reluctant to change that string, because doing so might
>> well break scripts that rely on them:
>>
>>     case $(stat -f --format %T .) in
>>       ext2/ext3) ;;
>>       *) destroy_partition ;;
>>     esac
>>
>> Sure, script writers might well anticipate this and
>> prefer to use the %t directive to get the type in hexadecimal,
>> but that's far less readable.
>>
>> How much code (and how ugly) would be required to distinguish ext4
>> from ext[23]?
>
> it'd need to be able to do some parsing of the ext2/3/4 feature flags,
> so it'd need to know some ext2/3/4 details.
>
> lib/blkid/probe.c in e2fsprogs is an example, see probe_ext2,
> probe_ext3, etc.  It reads in the superblock and then checks some of the
> feature fields, for example:
>
>         /* Ext4 has at least one feature which ext3 doesn't understand */
>         if (!(blkid_le32(es->s_feature_ro_compat) &
>               EXT3_FEATURE_RO_COMPAT_UNSUPPORTED) &&
>             !(blkid_le32(es->s_feature_incompat) &
>               EXT3_FEATURE_INCOMPAT_UNSUPPORTED))
>                 return -BLKID_ERR_PARAM;
>
> so it'd not be rocket science but it might be a lot more fs details than
> you'd really want in coreutils, I'm not sure...

Would you mind writing some proof-of-concept code for that?
If it's not too big or ugly, I'd like to teach stat -f
to distinguish ext4 from ext2/3.


_______________________________________________
Bug-coreutils mailing list
Bug-coreutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-coreutils

Reply via email to