linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ravi Pinjala <ravi@p-static.net>
To: Eric Sandeen <sandeen@redhat.com>
Cc: linux-ext4@vger.kernel.org
Subject: Re: e4defrag doesn't work on root filesystem
Date: Tue, 08 Sep 2009 08:42:13 -0500	[thread overview]
Message-ID: <4AA65F35.9090707@p-static.net> (raw)
In-Reply-To: <4AA5D5C8.2010304@redhat.com>

Eric Sandeen wrote:
> Ravi Pinjala wrote:
>> 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
>> -- 
>>   
> This list is a fine place to report it, thanks.
> 
> In is_ext4() it does a statfs on the file, and checks that the magic is
> EXT4,
> but then that's the same as ext2 and ext3 unfortunately  ....
> 
> It later does getmntent for the actual fs type, but fails, as you said.
> 
> Does this fix it for you?

Yeah, that works great. Thanks!

--Ravi

> 
> =========
> 
> 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
> 


      reply	other threads:[~2009-09-08 13:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-07 15:48 e4defrag doesn't work on root filesystem Ravi Pinjala
2009-09-08  3:55 ` Eric Sandeen
2009-09-08 13:42   ` Ravi Pinjala [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4AA65F35.9090707@p-static.net \
    --to=ravi@p-static.net \
    --cc=linux-ext4@vger.kernel.org \
    --cc=sandeen@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).