From: Sage Weil Date: Thu, 24 Sep 2015 22:40:51 +0000 (-0400) Subject: osd: add FULL_TRY and FULL_FORCE rados op flags X-Git-Tag: v9.1.0~67^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=95055e70ffbbe8a96ab4916840183438ff8b59db;p=ceph.git osd: add FULL_TRY and FULL_FORCE rados op flags 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 --- diff --git a/src/include/rados.h b/src/include/rados.h index 70add5d722b6..59d3225a7872 100644 --- a/src/include/rados.h +++ b/src/include/rados.h @@ -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 { diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index 3d7e0a5da5a3..d18a86aa24ac 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -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 "???"; } }