From: Karel Zak Date: Tue, 6 Sep 2005 10:26:45 +0000 (-0400) Subject: Fix blkid library so that the cache validation notices ext2 to ext3 conversion X-Git-Tag: E2FSPROGS-1.39-WIP-1210~35 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=05a6edf4fdf3beb93d22116cf4ec39d161ab2790;p=thirdparty%2Fe2fsprogs.git Fix blkid library so that the cache validation notices ext2 to ext3 conversion There's mistake in blkid ext2 detection code. The libblkid doesn't check for journal when revalidate the cache information about an ext2 device. # rm -f /etc/blkid.tab # mkfs.ext2 /dev/loop0 &> /dev/null # blkid -s TYPE /dev/loop0 /dev/loop0: TYPE="ext2" # mkfs.ext3 /dev/loop0 &> /dev/null # blkid -s TYPE /dev/loop0 /dev/loop0: TYPE="ext2" That bug doesn't appear when libblkid creates new cache and checks for all possible filesystems, because it tries ext3 before ext2. BUT when the library only revalidate the cache it first probes for old cached filesystem (e.g. ext2). Signed-off-by: Karel Zak Signed-off-by: "Theodore Ts'o" --- diff --git a/lib/blkid/ChangeLog b/lib/blkid/ChangeLog index 1bb8cd311..0d0607b50 100644 --- a/lib/blkid/ChangeLog +++ b/lib/blkid/ChangeLog @@ -1,3 +1,9 @@ +2005-09-05 Karel Zak + + * probe.c (probe_ext2): Check to see if a journal has been added + to an ext2 filesystem when revalidating cached information + about an ext2 device. + 2005-07-25 Theodore Ts'o * cache.c (safe_getenv): Pass in zero to the unusued arguments of diff --git a/lib/blkid/probe.c b/lib/blkid/probe.c index 6756e9771..116a0ca65 100644 --- a/lib/blkid/probe.c +++ b/lib/blkid/probe.c @@ -136,6 +136,11 @@ static int probe_ext2(int fd __BLKID_ATTR((unused)), if (blkid_le32(es->s_feature_incompat) & EXT3_FEATURE_INCOMPAT_JOURNAL_DEV) return -BLKID_ERR_PARAM; + + /* Distinguish between ext3 and ext2 */ + if ((blkid_le32(es->s_feature_compat) & + EXT3_FEATURE_COMPAT_HAS_JOURNAL)) + return -BLKID_ERR_PARAM; get_ext2_info(dev, buf);