2009-09-08 16:13:51

by Eric Sandeen

[permalink] [raw]
Subject: [PATCH] Skip "rootfs" entry when checking for ext4 filesystem.

Skip "rootfs" entry when checking for ext4 filesystem.

Signed-off-by: Eric Sandeen <[email protected]>
---

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)



2009-10-08 20:14:35

by Eric Sandeen

[permalink] [raw]
Subject: Re: [PATCH] Skip "rootfs" entry when checking for ext4 filesystem.

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 <[email protected]>
> ---
>
> 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 [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html


2010-10-07 17:04:47

by Eric Sandeen

[permalink] [raw]
Subject: Re: [PATCH] Skip "rootfs" entry when checking for ext4 filesystem.

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 <[email protected]>
>> ---
>>
>> 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 [email protected]
>> 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 [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html


2010-10-11 20:59:09

by Andreas Dilger

[permalink] [raw]
Subject: Re: [PATCH] Skip "rootfs" entry when checking for ext4 filesystem.

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 <[email protected]>
>>> ---
>>>
>>> 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 [email protected]
>>> 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 [email protected]
>> 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 [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html