]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
Switch to using /proc/self/mounts instead of /etc/mtab now this has all we need.
authorNathan Scott <nathans@sgi.com>
Tue, 20 Sep 2005 15:33:37 +0000 (15:33 +0000)
committerNathan Scott <nathans@sgi.com>
Tue, 20 Sep 2005 15:33:37 +0000 (15:33 +0000)
Merge of master-melb:xfs-cmds:23863a by kenmcd.

growfs/xfs_growfs.c
libxcmd/paths.c

index 843fd5e806dfd8f657451f77d2f4141389d6a0ee..01c9aa2f9d0e844a68a970b113d78280eb8486ae 100644 (file)
@@ -69,10 +69,12 @@ void
 report_info(
        xfs_fsop_geom_t geo,
        char            *mntpoint,
+       int             isint,
+       char            *logname,
+       char            *rtname,
        int             unwritten,
        int             dirversion,
-       int             logversion,
-       int             isint)
+       int             logversion)
 {
        printf(_(
            "meta-data=%-22s isize=%-6u agcount=%u, agsize=%u blks\n"
@@ -89,11 +91,11 @@ report_info(
                "", geo.blocksize, (unsigned long long)geo.datablocks,
                        geo.imaxpct,
                "", geo.sunit, geo.swidth, unwritten,
-               dirversion, geo.dirblocksize,
-               isint ? _("internal") : _("external"), geo.blocksize,
-                       geo.logblocks, logversion,
+               dirversion, geo.dirblocksize,
+               isint ? _("internal") : logname ? logname : _("external"),
+                       geo.blocksize, geo.logblocks, logversion,
                "", geo.logsectsize, geo.logsunit / geo.blocksize,
-               geo.rtblocks ? _("external") : _("none"),
+               !geo.rtblocks ? _("none") : rtname ? rtname : _("external"),
                geo.rtextsize * geo.blocksize, (unsigned long long)geo.rtblocks,
                        (unsigned long long)geo.rtextents);
 }
@@ -249,8 +251,8 @@ main(int argc, char **argv)
        logversion = geo.flags & XFS_FSOP_GEOM_FLAGS_LOGV2 ? 2 : 1;
 
        if (nflag) {
-               report_info(geo, fname, unwritten, dirversion, logversion,
-                               isint);
+               report_info(geo, datadev, isint, logdev, rtdev,
+                               unwritten, dirversion, logversion);
                exit(0);
        }
 
@@ -286,7 +288,8 @@ main(int argc, char **argv)
                exit(1);
        }
 
-       report_info(geo, fname, unwritten, dirversion, logversion, isint);
+       report_info(geo, datadev, isint, logdev, rtdev,
+                               unwritten, dirversion, logversion);
 
        ddsize = xi.dsize;
        dlsize = ( xi.logBBsize? xi.logBBsize :
index 7cb31b853de38d0b471b1c77c9c0dc9494896e25..e25ae9aec6b95e971971f7dc586d809ecedfe64b 100644 (file)
@@ -45,7 +45,9 @@
 int fs_count;
 struct fs_path *fs_table;
 struct fs_path *fs_path;
+
 char *mtab_file;
+#define PROC_MOUNTS    "/proc/self/mounts"
 
 struct fs_path *
 fs_table_lookup(
@@ -187,8 +189,11 @@ fs_table_initialise_mounts(
        char            *dir = NULL, *fsname = NULL, *fslog, *fsrt;
        int             error = 0, found = 0;
 
-       if (!mtab_file)
-               mtab_file = MOUNTED;
+       if (!mtab_file) {
+               mtab_file = PROC_MOUNTS;
+               if (access(mtab_file, R_OK) != 0)
+                       mtab_file = MOUNTED;
+       }
 
        if ((mtp = setmntent(mtab_file, "r")) == NULL)
                return ENOENT;