]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: mark ops that can't tolerate ENOENT
authorSage Weil <sage@redhat.com>
Mon, 21 Nov 2016 22:21:07 +0000 (17:21 -0500)
committerSage Weil <sage@redhat.com>
Wed, 23 Nov 2016 00:36:24 +0000 (19:36 -0500)
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 <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index 08c6462d6a59153d920d9f3b7374c2f0489770d0..51362da681a2c6e941ce173361fb4971fd1dc3f0 100644 (file)
@@ -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)