From 55e9f35223e40f455b80671f25b412072d9af678 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Tue, 27 May 2014 07:56:51 -0500 Subject: Add mount options to data getmountlist collects. --- lib/getmountlist.c | 14 +++++++------- lib/lib.h | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/getmountlist.c b/lib/getmountlist.c index c863de5d..d5a392d6 100644 --- a/lib/getmountlist.c +++ b/lib/getmountlist.c @@ -4,7 +4,6 @@ */ #include "toys.h" - #include // Get list of mounted filesystems, including stat and statvfs info. @@ -25,17 +24,18 @@ struct mtab_list *xgetmountlist(char *path) for (mtlist = 0; (me = getmntent(fp)); mtlist = mt) { mt = xzalloc(sizeof(struct mtab_list) + strlen(me->mnt_fsname) + - strlen(me->mnt_dir) + strlen(me->mnt_type) + 3); + strlen(me->mnt_dir) + strlen(me->mnt_type) + strlen(me->mnt_opts) + 4); mt->next = mtlist; // Collect details about mounted filesystem (don't bother for /etc/fstab). - stat(me->mnt_dir, &(mt->stat)); - statvfs(me->mnt_dir, &(mt->statvfs)); + if (stat(me->mnt_dir, &(mt->stat)) || statvfs(me->mnt_dir, &(mt->statvfs))) + perror_msg("stat '%s'"); // Remember information from /proc/mounts - mt->dir = stpcpy(mt->type, me->mnt_type) + 1; - mt->device = stpcpy(mt->dir, me->mnt_dir) + 1; - strcpy(mt->device, me->mnt_fsname); + mt->dir = stpcpy(mt->type, me->mnt_type)+1; + mt->device = stpcpy(mt->dir, me->mnt_dir)+1; + mt->opts = stpcpy(mt->device, me->mnt_fsname)+1; + strcpy(mt->opts, me->mnt_opts); } endmntent(fp); diff --git a/lib/lib.h b/lib/lib.h index 097e67d8..bbb1488d 100644 --- a/lib/lib.h +++ b/lib/lib.h @@ -167,6 +167,7 @@ struct mtab_list { struct statvfs statvfs; char *dir; char *device; + char *opts; char type[0]; }; -- cgit v1.2.3