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