From 6798580065ac14c0e9c5ca94cedaf89ba52633ad Mon Sep 17 00:00:00 2001 From: Thomas Schoebel-Theuer Date: Wed, 15 Jan 2014 10:51:37 +0100 Subject: [PATCH] marsadm: do resource checks only once per command --- userspace/marsadm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/userspace/marsadm b/userspace/marsadm index 3c8a96c9..21d2f857 100755 --- a/userspace/marsadm +++ b/userspace/marsadm @@ -1784,13 +1784,17 @@ if ($cmd eq "show") { lprint "using FORCE option -- hopefully you know what you do!\n" if $force; +my %checked_res; + sub do_one_res { my $func = shift; my ($cmd, $res) = @_; - $res = check_res($res) unless $cmd =~ m/^(join|create|leave|wait)-cluster|create-resource|show|cat|[a-z]+-file|set-link$/; - check_res_member($res) unless $cmd =~ m/^(join|create)-(cluster|resource)|(leave|wait)-cluster|show|cat|[a-z]+-file|set-link$/; - + if (!$checked_res{"$cmd$res"}) { + $res = check_res($res) unless $cmd =~ m/^(join|create|leave|wait)-cluster|create-resource|show|cat|[a-z]+-file|set-link$/; + check_res_member($res) unless $cmd =~ m/^(join|create)-(cluster|resource)|(leave|wait)-cluster|show|cat|[a-z]+-file|set-link$/; + $checked_res{"$cmd$res"} = 1; + } &{$func}(@_); }