]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
mount: add support for namespaces
authorVaclav Dolezal <vdolezal@redhat.com>
Mon, 19 Feb 2018 17:58:23 +0000 (18:58 +0100)
committerKarel Zak <kzak@redhat.com>
Mon, 11 Jun 2018 13:56:41 +0000 (15:56 +0200)
Signed-off-by: Vaclav Dolezal <vdolezal@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
sys-utils/mount.c

index 040a84a57567553143f6dd46ebb820acff8bdae3..a4523d731d3fbd3833ad499cf5e7dbf454581dc9 100644 (file)
@@ -574,6 +574,7 @@ int main(int argc, char **argv)
                { "options-mode",     required_argument, NULL, MOUNT_OPT_OPTMODE     },
                { "options-source",   required_argument, NULL, MOUNT_OPT_OPTSRC      },
                { "options-source-force",   no_argument, NULL, MOUNT_OPT_OPTSRC_FORCE},
+               { "namespace",        required_argument, NULL, 'N'                   },
                { NULL, 0, NULL, 0 }
        };
 
@@ -599,7 +600,7 @@ int main(int argc, char **argv)
 
        mnt_context_set_tables_errcb(cxt, table_parser_errcb);
 
-       while ((c = getopt_long(argc, argv, "aBcfFhilL:Mno:O:rRsU:vVwt:T:",
+       while ((c = getopt_long(argc, argv, "aBcfFhilL:Mno:O:rRsU:vVwt:T:N:",
                                        longopts, NULL)) != -1) {
 
                /* only few options are allowed for non-root users */
@@ -690,6 +691,15 @@ int main(int argc, char **argv)
                        oper = 1;
                        append_option(cxt, "rbind");
                        break;
+               case 'N':
+               {
+                       int tmp;
+                       if ((tmp = mnt_context_set_target_ns(cxt, optarg))) {
+                               errno = -tmp;
+                               err(MNT_EX_SYSERR, _("failed to set target namespace"));
+                       }
+                       break;
+               }
                case MOUNT_OPT_SHARED:
                        append_option(cxt, "shared");
                        propa = 1;