From: xie xingguo Date: Thu, 24 Aug 2017 08:41:00 +0000 (+0800) Subject: osd/PrimaryLogPG: do_osd_ops - propagate EAGAIN/EINPROGRESS on failok X-Git-Tag: v13.0.1~1189^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=05666c3af2bf8c80787e7a5a91d31cbcccdf5052;p=ceph-ci.git osd/PrimaryLogPG: do_osd_ops - propagate EAGAIN/EINPROGRESS on failok These are not really errors and ignoring these error codes can cause potential problems. Propagating these errors to high-level callers such as execute_ctx() where they can be taken good care of should instead be the preferred option. Signed-off-by: xie xingguo --- diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index ac3db593e67..e984ab9ae76 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -6765,7 +6765,8 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector& ops) fail: osd_op.rval = result; tracepoint(osd, do_osd_op_post, soid.oid.name.c_str(), soid.snap.val, op.op, ceph_osd_op_name(op.op), op.flags, result); - if (result < 0 && (op.flags & CEPH_OSD_OP_FLAG_FAILOK)) + if (result < 0 && (op.flags & CEPH_OSD_OP_FLAG_FAILOK) && + result != -EAGAIN && result != -EINPROGRESS) result = 0; if (result < 0)