From: Sage Weil Date: Mon, 21 Nov 2016 22:21:07 +0000 (-0500) Subject: os/bluestore: mark ops that can't tolerate ENOENT X-Git-Tag: v11.1.0~136^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b08df1316dcde09811ef680263b7a68608e9553f;p=ceph.git os/bluestore: mark ops that can't tolerate ENOENT If we get errors on these we screw up the transaction data_bl decoding cursor; assert they don't happen. In general, this should already be true for transactions that the OSD is producing. Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 08c6462d6a59..51362da681a2 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -7245,7 +7245,14 @@ void BlueStore::_txc_add_transaction(TransContext *txc, Transaction *t) if (r == -ENOENT && !(op->op == Transaction::OP_CLONERANGE || op->op == Transaction::OP_CLONE || op->op == Transaction::OP_CLONERANGE2 || - op->op == Transaction::OP_COLL_ADD)) + op->op == Transaction::OP_COLL_ADD || + op->op == Transaction::OP_SETATTR || + op->op == Transaction::OP_SETATTRS || + op->op == Transaction::OP_RMATTR || + op->op == Transaction::OP_OMAP_SETKEYS || + op->op == Transaction::OP_OMAP_RMKEYS || + op->op == Transaction::OP_OMAP_RMKEYRANGE || + op->op == Transaction::OP_OMAP_SETHEADER)) // -ENOENT is usually okay ok = true; if (r == -ENODATA)