]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
journal: fix final result for JournalTrimmer::C_RemoveSet 8516/head
authorrunsisi <runsisi@zte.com.cn>
Sat, 9 Apr 2016 03:03:56 +0000 (11:03 +0800)
committerrunsisi <runsisi@zte.com.cn>
Sat, 9 Apr 2016 03:33:06 +0000 (11:33 +0800)
if the first journal object got removed successfully while later objects
failed then the final result should be set to fail

Signed-off-by: runsisi <runsisi@zte.com.cn>
src/journal/JournalTrimmer.cc

index 68ba5f42ab4e195ad6f7dde6bd497ad04b8f8670..74df78abc4fbc78df41d46517090da7f457081f7 100644 (file)
@@ -194,7 +194,8 @@ JournalTrimmer::C_RemoveSet::C_RemoveSet(JournalTrimmer *_journal_trimmer,
 
 void JournalTrimmer::C_RemoveSet::complete(int r) {
   lock.Lock();
-  if (r < 0 && r != -ENOENT && return_value == -ENOENT) {
+  if (r < 0 && r != -ENOENT &&
+      (return_value == -ENOENT || return_value == 0)) {
     return_value = r;
   } else if (r == 0 && return_value == -ENOENT) {
     return_value = 0;