diff options
author | Karel Zak | 2013-01-10 15:59:16 +0100 |
---|---|---|
committer | Karel Zak | 2013-01-10 15:59:16 +0100 |
commit | 624f2b47c39256ce1bddb23d53df612dbf2fe65e (patch) | |
tree | 0d1a7ef8dde401ef8ccd24184a6792ef054d6313 /misc-utils/findmnt.c | |
parent | libmount: add mnt_fs_get_propagation() (diff) | |
download | kernel-qcow2-util-linux-624f2b47c39256ce1bddb23d53df612dbf2fe65e.tar.gz kernel-qcow2-util-linux-624f2b47c39256ce1bddb23d53df612dbf2fe65e.tar.xz kernel-qcow2-util-linux-624f2b47c39256ce1bddb23d53df612dbf2fe65e.zip |
findmnt: add PROPAGATION column
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'misc-utils/findmnt.c')
-rw-r--r-- | misc-utils/findmnt.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/misc-utils/findmnt.c b/misc-utils/findmnt.c index 758a15e69..fed1a3c20 100644 --- a/misc-utils/findmnt.c +++ b/misc-utils/findmnt.c @@ -82,6 +82,7 @@ enum { COL_TID, COL_ID, COL_OPT_FIELDS, + COL_PROPAGATION, FINDMNT_NCOLUMNS }; @@ -126,6 +127,7 @@ static struct colinfo infos[FINDMNT_NCOLUMNS] = { [COL_TID] = { "TID", 4, TT_FL_RIGHT, N_("task ID") }, [COL_ID] = { "ID", 2, TT_FL_RIGHT, N_("mount ID") }, [COL_OPT_FIELDS] = { "OPT-FIELDS", 0.10, TT_FL_TRUNC, N_("optional mount fields") }, + [COL_PROPAGATION] = { "PROPAGATION", 0.10, 0, N_("VFS propagation flags") } }; /* global flags */ @@ -492,6 +494,29 @@ static const char *get_data(struct libmnt_fs *fs, int num) str = tmp; } break; + case COL_PROPAGATION: + if (mnt_fs_is_kernel(fs)) { + unsigned long fl = 0; + char *n = NULL; + + if (mnt_fs_get_propagation(fs, &fl) != 0) + break; + + n = xstrdup((fl & MS_SHARED) ? "shared" : "private"); + + if (fl & MS_SLAVE) { + xasprintf(&tmp, "%s,slave", n); + free(n); + n = tmp; + } + if (fl & MS_UNBINDABLE) { + xasprintf(&tmp, "%s,unbindable", n); + free(n); + n = tmp; + } + str = n; + } + break; default: break; } |