Message ID | 4AA682BE.2030200@redhat.com |
---|---|
State | Accepted, archived |
Headers | show |
Ping on this one? Ravi reported a failure w/o it: > Hi, > > I'm playing with e4defrag from e2frprogs git, and I've run into a bug. > When I try to defragment files on my root filesystem, it refuses to > acknowledge that the filesystem is ext4. I believe the problem is that > it checks the filesystem type by parsing /etc/mtab, but the root > filesystem shows up there like this: > > rootfs on / type rootfs (rw) > /dev/root on / type ext4 (rw,noatime,barrier=1,data=ordered) > > so it gets confused by the bogus first entry. It works just fine on > other ext4 filesystems I have. > > (If this is the wrong mailing list, I apologize; I couldn't find one for > e2fsprogs, so I thought this was the next best thing.) > > --Ravi Thanks, -Eric Eric Sandeen wrote: > Skip "rootfs" entry when checking for ext4 filesystem. > > Signed-off-by: Eric Sandeen <sandeen@redhat.com> > --- > > diff --git a/misc/e4defrag.c b/misc/e4defrag.c > index 82e3868..0d04df9 100644 > --- a/misc/e4defrag.c > +++ b/misc/e4defrag.c > @@ -430,6 +430,8 @@ static int is_ext4(const char *file) > } > > while ((mnt = getmntent(fp)) != NULL) { > + if (mnt->mnt_fsname[0] != '/') > + continue; > len = strlen(mnt->mnt_dir); > ret = memcmp(file_path, mnt->mnt_dir, len); > if (ret != 0) > > -- > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 10/08/2009 03:14 PM, Eric Sandeen wrote: > Ping on this one? Ping++ -Eric > Ravi reported a failure w/o it: > >> Hi, >> >> I'm playing with e4defrag from e2frprogs git, and I've run into a bug. >> When I try to defragment files on my root filesystem, it refuses to >> acknowledge that the filesystem is ext4. I believe the problem is that >> it checks the filesystem type by parsing /etc/mtab, but the root >> filesystem shows up there like this: >> >> rootfs on / type rootfs (rw) >> /dev/root on / type ext4 (rw,noatime,barrier=1,data=ordered) >> >> so it gets confused by the bogus first entry. It works just fine on >> other ext4 filesystems I have. >> >> (If this is the wrong mailing list, I apologize; I couldn't find one for >> e2fsprogs, so I thought this was the next best thing.) >> >> --Ravi > > Thanks, > -Eric > > Eric Sandeen wrote: >> Skip "rootfs" entry when checking for ext4 filesystem. >> >> Signed-off-by: Eric Sandeen <sandeen@redhat.com> >> --- >> >> diff --git a/misc/e4defrag.c b/misc/e4defrag.c >> index 82e3868..0d04df9 100644 >> --- a/misc/e4defrag.c >> +++ b/misc/e4defrag.c >> @@ -430,6 +430,8 @@ static int is_ext4(const char *file) >> } >> >> while ((mnt = getmntent(fp)) != NULL) { >> + if (mnt->mnt_fsname[0] != '/') >> + continue; >> len = strlen(mnt->mnt_dir); >> ret = memcmp(file_path, mnt->mnt_dir, len); >> if (ret != 0) >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 2010-10-07, at 11:04, Eric Sandeen wrote: > On 10/08/2009 03:14 PM, Eric Sandeen wrote: >> Ping on this one? > > Ping++ Looks reasonable. I thought it would skip the second "/" entry as well, but in fact this is looking at the "dev" field and it is skipping the "rootfs" (as well as other virtual filesystems like procfs and devfs). >> Ravi reported a failure w/o it: >> >>> Hi, >>> >>> I'm playing with e4defrag from e2frprogs git, and I've run into a bug. >>> When I try to defragment files on my root filesystem, it refuses to >>> acknowledge that the filesystem is ext4. I believe the problem is that >>> it checks the filesystem type by parsing /etc/mtab, but the root >>> filesystem shows up there like this: >>> >>> rootfs on / type rootfs (rw) >>> /dev/root on / type ext4 (rw,noatime,barrier=1,data=ordered) >>> >>> so it gets confused by the bogus first entry. It works just fine on >>> other ext4 filesystems I have. >>> >>> (If this is the wrong mailing list, I apologize; I couldn't find one for >>> e2fsprogs, so I thought this was the next best thing.) >>> >>> --Ravi >> >> Thanks, >> -Eric >> >> Eric Sandeen wrote: >>> Skip "rootfs" entry when checking for ext4 filesystem. >>> >>> Signed-off-by: Eric Sandeen <sandeen@redhat.com> >>> --- >>> >>> diff --git a/misc/e4defrag.c b/misc/e4defrag.c >>> index 82e3868..0d04df9 100644 >>> --- a/misc/e4defrag.c >>> +++ b/misc/e4defrag.c >>> @@ -430,6 +430,8 @@ static int is_ext4(const char *file) >>> } >>> >>> while ((mnt = getmntent(fp)) != NULL) { >>> + if (mnt->mnt_fsname[0] != '/') >>> + continue; >>> len = strlen(mnt->mnt_dir); >>> ret = memcmp(file_path, mnt->mnt_dir, len); >>> if (ret != 0) >>> >>> -- >>> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in >>> the body of a message to majordomo@vger.kernel.org >>> More majordomo info at http://vger.kernel.org/majordomo-info.html >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/misc/e4defrag.c b/misc/e4defrag.c index 82e3868..0d04df9 100644 --- a/misc/e4defrag.c +++ b/misc/e4defrag.c @@ -430,6 +430,8 @@ static int is_ext4(const char *file) } while ((mnt = getmntent(fp)) != NULL) { + if (mnt->mnt_fsname[0] != '/') + continue; len = strlen(mnt->mnt_dir); ret = memcmp(file_path, mnt->mnt_dir, len); if (ret != 0)
Skip "rootfs" entry when checking for ext4 filesystem. Signed-off-by: Eric Sandeen <sandeen@redhat.com> --- -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html