From: Karel Zak <kzak@redhat.com>
To: "Pádraig Brady" <P@draigBrady.com>
Cc: James Youngman <jay@gnu.org>, Philipp Thomas <pth@suse.de>,
bug-gnulib@gnu.org, util-linux <util-linux@vger.kernel.org>
Subject: Re: Using /proc/mounts in mountlist.c for linux
Date: Tue, 31 May 2011 13:10:03 +0200 [thread overview]
Message-ID: <20110531111003.GB25562@nb.net.home> (raw)
In-Reply-To: <4DE4B565.6040504@draigBrady.com>
On Tue, May 31, 2011 at 10:31:17AM +0100, Pádraig Brady wrote:
> On 31/05/11 01:14, James Youngman wrote:
> > On Tue, Apr 5, 2011 at 1:36 PM, Philipp Thomas <pth@suse.de> wrote:
> >> GNU find will not recognize file systems of type autofs on newer Linux
> >> kernels as autofs entries are only listed in /proc/mounts and mountlist.c
> >> includes glibc mntent.h which takes the _PATH_MOUNTED from paths.h and that
> >> is /etc/mtab.
> >>
> >> After a longer discussion, we (SUSE) chose to patch mountlist.c in findutils
> >> to use proc/mounts instead of /etc/mtab which fixed ou problem.
> >>
> >> Would gnulib accept the attached patch to mountlist.c?
> >
> > I don't know if this patch was accepted, but it shouldn't be. The
> > problem is that /proc/mounts has incomplete data for /. This will
> > break gnulib's mountlist, at least with the current form of the patch,
> > because mountlist will have an incorrect idea of the type of the root
> > filesystem. Here's an example showing the problem:
> >
> > ~$ cat tryit.sh
> > #! /bin/sh
> > f() {
> > echo "$1"
> > ( ls -l /etc/mtab; find / -maxdepth 0 -printf '%p %F\n' ) |
> > sed -e 's_^_ _'
> > }
> >
> > set -e
> > cd /etc
> > f "regular /etc/mtab"
> >
> > mv mtab mtab.old; ln -s ../proc/mounts mtab
> > f "with /proc/mounts"
> > rm mtab; mv mtab.old mtab
> > ~$ sudo sh tryit.sh
> > regular /etc/mtab
> > -rw-r--r-- 1 root root 1869 May 30 23:53 /etc/mtab
> > / ext3
> > with /proc/mounts
> > lrwxrwxrwx 1 root root 14 May 31 01:12 /etc/mtab -> ../proc/mounts
> > / rootfs
That's strange, why for "/" it does not search in the file (mtab) in reverse
order?
example A)
# mount -t ext3 /dev/sda6 /mnt/test
# mount -t ext4 /dev/mapper/kzak-home /mnt/test
... so I have two entries for the same mountpoint:
# grep /mnt/test /proc/mounts
/dev/sda6 /mnt/test ext3 rw,relatime,errors=continue,barrier=0,data=ordered 0 0
/dev/mapper/kzak-home /mnt/test ext4 rw,relatime,barrier=1,data=ordered 0 0
this is correct (ext4 is the second entry):
# find /mnt/test -maxdepth 0 -printf '%p %F\n'
/mnt/test ext4
example B)
the same thing with root FS:
# grep -E '(/dev/sda4|rootfs)' /proc/mounts
rootfs / rootfs rw 0 0
/dev/sda4 / ext3 rw,noatime,errors=continue,user_xattr,acl,barrier=0,data=ordered 0 0
... so I have two entries for the same mountpoint:
# find / -maxdepth 0 -printf '%p %F\n'
/ rootfs
why does it return the first entry? It seems like obvious bug. You
have to read entries in the mtab file in reverse order.
Anyway, /proc/self/mountinfo is definitely more sexy... :-)
Karel
--
Karel Zak <kzak@redhat.com>
http://karelzak.blogspot.com
next prev parent reply other threads:[~2011-05-31 11:10 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20110405123650.GW22289@paradies.suse.de>
[not found] ` <BANLkTin=pcsJ-b2y=GN3BpXsx8p+zgnJWA@mail.gmail.com>
2011-05-31 9:31 ` Using /proc/mounts in mountlist.c for linux Pádraig Brady
2011-05-31 9:42 ` James Youngman
2011-05-31 11:10 ` Karel Zak [this message]
2011-05-31 23:28 ` James Youngman
2011-06-01 7:56 ` Karel Zak
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=20110531111003.GB25562@nb.net.home \
--to=kzak@redhat.com \
--cc=P@draigBrady.com \
--cc=bug-gnulib@gnu.org \
--cc=jay@gnu.org \
--cc=pth@suse.de \
--cc=util-linux@vger.kernel.org \
/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