[pve-devel] [PATCH pve-container 1/3] mountpoint_mount: optional $extra_opts

Wolfgang Bumiller w.bumiller at proxmox.com
Fri Sep 25 12:18:01 CEST 2015


---
 src/PVE/LXC.pm | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
index c01b401..c198eaf 100644
--- a/src/PVE/LXC.pm
+++ b/src/PVE/LXC.pm
@@ -2057,7 +2057,7 @@ my $check_mount_path = sub {
 
 # use $rootdir = undef to just return the corresponding mount path
 sub mountpoint_mount {
-    my ($mountpoint, $rootdir, $storage_cfg, $snapname) = @_;
+    my ($mountpoint, $rootdir, $storage_cfg, $snapname, $extra_opts) = @_;
 
     my $volid = $mountpoint->{volume};
     my $mount = $mountpoint->{mp};
@@ -2078,6 +2078,7 @@ sub mountpoint_mount {
 
     die "unknown snapshot path for '$volid'" if !$storage && defined($snapname);
 
+    $extra_opts = [] if !$extra_opts;
     if ($storage) {
 
 	my $scfg = PVE::Storage::storage_config($storage_cfg, $storage);
@@ -2092,20 +2093,19 @@ sub mountpoint_mount {
 		    if ($scfg->{type} eq 'zfspool') {
 			my $path_arg = $path;
 			$path_arg =~ s!^/+!!;
-			PVE::Tools::run_command(['mount', '-o', 'ro', '-t', 'zfs', $path_arg, $mount_path]);
+			PVE::Tools::run_command(['mount', '-o', 'ro', '-t', 'zfs', @$extra_opts, $path_arg, $mount_path]);
 		    } else {
 			die "cannot mount subvol snapshots for storage type '$scfg->{type}'\n";
 		    }
 		} else {
-		    PVE::Tools::run_command(['mount', '-o', 'bind', $path, $mount_path]);
+		    PVE::Tools::run_command(['mount', '-o', 'bind', @$extra_opts, $path, $mount_path]);
 		}
 	    }
 	    return wantarray ? ($path, 0) : $path;
 	} elsif ($format eq 'raw') {
 	    my $use_loopdev = 0;
-	    my @extra_opts;
 	    if ($scfg->{path}) {
-		push @extra_opts, '-o', 'loop';
+		push @$extra_opts, '-o', 'loop';
 		$use_loopdev = 1;
 	    } elsif ($scfg->{type} eq 'drbd' || $scfg->{type} eq 'lvm' || $scfg->{type} eq 'rbd') {
 		# do nothing
@@ -2114,9 +2114,9 @@ sub mountpoint_mount {
 	    }
 	    if ($mount_path) {
 		if ($isBase || defined($snapname)) {
-		    PVE::Tools::run_command(['mount', '-o', "ro", @extra_opts, $path, $mount_path]);
+		    PVE::Tools::run_command(['mount', '-o', "ro", @$extra_opts, $path, $mount_path]);
 		} else {
-		    PVE::Tools::run_command(['mount', @extra_opts, $path, $mount_path]);
+		    PVE::Tools::run_command(['mount', @$extra_opts, $path, $mount_path]);
 		}
 	    }
 	    return wantarray ? ($path, $use_loopdev) : $path;
@@ -2124,11 +2124,11 @@ sub mountpoint_mount {
 	    die "unsupported image format '$format'\n";
 	}
     } elsif ($volid =~ m|^/dev/.+|) {
-	PVE::Tools::run_command(['mount', $volid, $mount_path]) if $mount_path;
+	PVE::Tools::run_command(['mount', @$extra_opts, $volid, $mount_path]) if $mount_path;
 	return wantarray ? ($volid, 0) : $volid;
     } elsif ($volid !~ m|^/dev/.+| && $volid =~ m|^/.+| && -d $volid) {
 	&$check_mount_path($volid);
-	PVE::Tools::run_command(['mount', '-o', 'bind', $volid, $mount_path]) if $mount_path;
+	PVE::Tools::run_command(['mount', '-o', 'bind', @$extra_opts, $volid, $mount_path]) if $mount_path;
 	return wantarray ? ($volid, 0) : $volid;
     }
     
-- 
2.1.4





More information about the pve-devel mailing list