From 59cce71e2dcc89166a62034791eb2b29cf24a33f Mon Sep 17 00:00:00 2001 From: Thomas Schoebel-Theuer Date: Wed, 5 Mar 2014 16:10:35 +0100 Subject: [PATCH] marsadm: fix fake_versionlink() Always fake two versionslinks instead of one. --- userspace/marsadm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/userspace/marsadm b/userspace/marsadm index ef4ad6ee..9cf6528b 100755 --- a/userspace/marsadm +++ b/userspace/marsadm @@ -843,7 +843,8 @@ sub _get_ip { sub _fake_versionlink { my ($basedir, $log_nr, $primary) = @_; - for (my $rounds = 2; $rounds > 0; $rounds--) { + my $make_count = 0; + for (my $rounds = 2; $rounds > 0 && $log_nr > 0; $rounds--) { my $new_version = sprintf("$basedir/version-%09d-$host", $log_nr); my $pri_version = sprintf("$basedir/version-%09d-$primary", $log_nr); if ($primary eq $host) { @@ -851,14 +852,15 @@ sub _fake_versionlink { } my $pri_link = get_link($pri_version, 1); if (!$pri_link) { - lwarn "cannot read symlink '$pri_version' -- cannot create faked versionlink '$pri_version'\n"; $log_nr++; next; } lprint "creating new version symlink '$new_version' -> '$pri_link'\n"; set_link($pri_link, $new_version); - last; + $make_count++; + $log_nr--; } + lwarn "cannot create faked versionlink\n" if !$make_count; } sub _set_replaylink {