]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: add TMAP_RMSLOPPY op
authorSage Weil <sage@inktank.com>
Wed, 28 Nov 2012 04:00:19 +0000 (20:00 -0800)
committerSage Weil <sage@inktank.com>
Mon, 3 Dec 2012 11:42:17 +0000 (03:42 -0800)
Remove a key, but succeed if key already does not exist.

Signed-off-by: Sage Weil <sage@inktank.com>
src/include/rados.h
src/osd/ReplicatedPG.cc

index 4d2312f8f8f25569d3e852c516c06ab884ebde7f..073ad62bd5feeadbc1c1e519a0a460a64883cbaf 100644 (file)
@@ -297,6 +297,7 @@ static inline int ceph_osd_op_mode_modify(int op)
 #define CEPH_OSD_TMAP_SET 's'
 #define CEPH_OSD_TMAP_CREATE 'c' /* create key */
 #define CEPH_OSD_TMAP_RM  'r'
+#define CEPH_OSD_TMAP_RMSLOPPY 'R'
 
 extern const char *ceph_osd_op_name(int op);
 
index 1c091966958141601478d4bd164452909326d6e2..6e0a0ff7704afc7cef0c7dd0fe05f7c04a8217e1 100644 (file)
@@ -1681,6 +1681,10 @@ int ReplicatedPG::do_tmapup_slow(OpContext *ctx, bufferlist::iterator& bp, OSDOp
       }
       m.erase(key);
       break;
+    case CEPH_OSD_TMAP_RMSLOPPY: // remove key
+      ::decode(key, bp);
+      m.erase(key);
+      break;
     case CEPH_OSD_TMAP_HDR: // update header
       {
        ::decode(header, bp);
@@ -1852,6 +1856,8 @@ int ReplicatedPG::do_tmapup(OpContext *ctx, bufferlist::iterator& bp, OSDOp& osd
        if (!key_exists) {
          return -ENOENT;
        }
+      } else if (op == CEPH_OSD_TMAP_RMSLOPPY) {
+       // do nothing
       }
     }