]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: add FULL_TRY and FULL_FORCE rados op flags
authorSage Weil <sage@redhat.com>
Thu, 24 Sep 2015 22:40:51 +0000 (18:40 -0400)
committerSage Weil <sage@redhat.com>
Thu, 24 Sep 2015 23:02:56 +0000 (19:02 -0400)
FULL_TRY = try to do the op; ENOSPC if it results in a net increase is
space.  client must cope.

FULL_FORCE = do the op even if it consumes space.  The MDS will use this.
We should restrict this based on the OSD cap (* vs w, probably).

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

index 70add5d722b6f0ce1b4d02a78c1626c9cc2980bd..59d3225a787247fbf36fc24082238f9858f543af 100644 (file)
@@ -398,6 +398,8 @@ enum {
                                                      pool uses pool snaps */
        CEPH_OSD_FLAG_REDIRECTED   = 0x200000,  /* op has been redirected */
        CEPH_OSD_FLAG_KNOWN_REDIR = 0x400000,  /* redirect bit is authoritative */
+       CEPH_OSD_FLAG_FULL_TRY =    0x800000,  /* try op despite full flag */
+       CEPH_OSD_FLAG_FULL_FORCE = 0x1000000,  /* force op despite full flag */
 };
 
 enum {
index 3d7e0a5da5a3b53aaf370ffb3bfc7aa17e56f17f..d18a86aa24acf299274a8b1563110a2225f65798 100644 (file)
@@ -50,6 +50,8 @@ const char *ceph_osd_flag_name(unsigned flag)
   case CEPH_OSD_FLAG_ENFORCE_SNAPC: return "enforce_snapc";
   case CEPH_OSD_FLAG_REDIRECTED: return "redirected";
   case CEPH_OSD_FLAG_KNOWN_REDIR: return "known_if_redirected";
+  case CEPH_OSD_FLAG_FULL_TRY: return "full_try";
+  case CEPH_OSD_FLAG_FULL_FORCE: return "full_force";
   default: return "???";
   }
 }