From 0d8d637deea2ef195c02d52aeac839e592808eaf Mon Sep 17 00:00:00 2001 From: Thomas Schoebel-Theuer Date: Thu, 18 Jul 2013 14:48:47 +0200 Subject: [PATCH] marsadm: 'create-resource' --force no longer checks for exclusive access --- userspace/marsadm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/userspace/marsadm b/userspace/marsadm index cdf829fb..2c679afb 100755 --- a/userspace/marsadm +++ b/userspace/marsadm @@ -863,8 +863,12 @@ sub create_res { my $size = 0; if (-b $dev) { ldie "block device '$dev' must be an absolute path starting with '/'\n" unless $dev =~ m/^\//; - use Fcntl 'SEEK_END', 'O_RDWR', 'O_EXCL'; - sysopen(TEST, $dev, O_RDWR|O_EXCL) or ldie "cannot open device '$dev' for exclusive rw access\n"; + use Fcntl 'SEEK_END', 'O_RDONLY', 'O_RDWR', 'O_EXCL'; + my $flags = O_RDWR | O_EXCL; + if (!$force) { + $flags = O_RDONLY; + } + sysopen(TEST, $dev, $flags) or ldie "cannot open device '$dev' for exclusive rw access\n"; $size = sysseek(TEST, 0, SEEK_END); close(TEST); lprint "block device '$dev': determined size = $size bytes\n";