Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

libceph: sync osd op definitions in rados.h

Bring in missing osd ops and strings, use macros to eliminate multiple
points of maintenance.

Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>

authored by

Ilya Dryomov and committed by
Sage Weil
70b5bfa3 eb179d39

+137 -228
+129 -96
include/linux/ceph/rados.h
··· 172 172 #define CEPH_OSD_OP_MODE_WR 0x2000 173 173 #define CEPH_OSD_OP_MODE_RMW 0x3000 174 174 #define CEPH_OSD_OP_MODE_SUB 0x4000 175 + #define CEPH_OSD_OP_MODE_CACHE 0x8000 175 176 176 177 #define CEPH_OSD_OP_TYPE 0x0f00 177 178 #define CEPH_OSD_OP_TYPE_LOCK 0x0100 ··· 182 181 #define CEPH_OSD_OP_TYPE_PG 0x0500 183 182 #define CEPH_OSD_OP_TYPE_MULTI 0x0600 /* multiobject */ 184 183 184 + #define __CEPH_OSD_OP1(mode, nr) \ 185 + (CEPH_OSD_OP_MODE_##mode | (nr)) 186 + 187 + #define __CEPH_OSD_OP(mode, type, nr) \ 188 + (CEPH_OSD_OP_MODE_##mode | CEPH_OSD_OP_TYPE_##type | (nr)) 189 + 190 + #define __CEPH_FORALL_OSD_OPS(f) \ 191 + /** data **/ \ 192 + /* read */ \ 193 + f(READ, __CEPH_OSD_OP(RD, DATA, 1), "read") \ 194 + f(STAT, __CEPH_OSD_OP(RD, DATA, 2), "stat") \ 195 + f(MAPEXT, __CEPH_OSD_OP(RD, DATA, 3), "mapext") \ 196 + \ 197 + /* fancy read */ \ 198 + f(MASKTRUNC, __CEPH_OSD_OP(RD, DATA, 4), "masktrunc") \ 199 + f(SPARSE_READ, __CEPH_OSD_OP(RD, DATA, 5), "sparse-read") \ 200 + \ 201 + f(NOTIFY, __CEPH_OSD_OP(RD, DATA, 6), "notify") \ 202 + f(NOTIFY_ACK, __CEPH_OSD_OP(RD, DATA, 7), "notify-ack") \ 203 + \ 204 + /* versioning */ \ 205 + f(ASSERT_VER, __CEPH_OSD_OP(RD, DATA, 8), "assert-version") \ 206 + \ 207 + f(LIST_WATCHERS, __CEPH_OSD_OP(RD, DATA, 9), "list-watchers") \ 208 + \ 209 + f(LIST_SNAPS, __CEPH_OSD_OP(RD, DATA, 10), "list-snaps") \ 210 + \ 211 + /* sync */ \ 212 + f(SYNC_READ, __CEPH_OSD_OP(RD, DATA, 11), "sync_read") \ 213 + \ 214 + /* write */ \ 215 + f(WRITE, __CEPH_OSD_OP(WR, DATA, 1), "write") \ 216 + f(WRITEFULL, __CEPH_OSD_OP(WR, DATA, 2), "writefull") \ 217 + f(TRUNCATE, __CEPH_OSD_OP(WR, DATA, 3), "truncate") \ 218 + f(ZERO, __CEPH_OSD_OP(WR, DATA, 4), "zero") \ 219 + f(DELETE, __CEPH_OSD_OP(WR, DATA, 5), "delete") \ 220 + \ 221 + /* fancy write */ \ 222 + f(APPEND, __CEPH_OSD_OP(WR, DATA, 6), "append") \ 223 + f(STARTSYNC, __CEPH_OSD_OP(WR, DATA, 7), "startsync") \ 224 + f(SETTRUNC, __CEPH_OSD_OP(WR, DATA, 8), "settrunc") \ 225 + f(TRIMTRUNC, __CEPH_OSD_OP(WR, DATA, 9), "trimtrunc") \ 226 + \ 227 + f(TMAPUP, __CEPH_OSD_OP(RMW, DATA, 10), "tmapup") \ 228 + f(TMAPPUT, __CEPH_OSD_OP(WR, DATA, 11), "tmapput") \ 229 + f(TMAPGET, __CEPH_OSD_OP(RD, DATA, 12), "tmapget") \ 230 + \ 231 + f(CREATE, __CEPH_OSD_OP(WR, DATA, 13), "create") \ 232 + f(ROLLBACK, __CEPH_OSD_OP(WR, DATA, 14), "rollback") \ 233 + \ 234 + f(WATCH, __CEPH_OSD_OP(WR, DATA, 15), "watch") \ 235 + \ 236 + /* omap */ \ 237 + f(OMAPGETKEYS, __CEPH_OSD_OP(RD, DATA, 17), "omap-get-keys") \ 238 + f(OMAPGETVALS, __CEPH_OSD_OP(RD, DATA, 18), "omap-get-vals") \ 239 + f(OMAPGETHEADER, __CEPH_OSD_OP(RD, DATA, 19), "omap-get-header") \ 240 + f(OMAPGETVALSBYKEYS, __CEPH_OSD_OP(RD, DATA, 20), "omap-get-vals-by-keys") \ 241 + f(OMAPSETVALS, __CEPH_OSD_OP(WR, DATA, 21), "omap-set-vals") \ 242 + f(OMAPSETHEADER, __CEPH_OSD_OP(WR, DATA, 22), "omap-set-header") \ 243 + f(OMAPCLEAR, __CEPH_OSD_OP(WR, DATA, 23), "omap-clear") \ 244 + f(OMAPRMKEYS, __CEPH_OSD_OP(WR, DATA, 24), "omap-rm-keys") \ 245 + f(OMAP_CMP, __CEPH_OSD_OP(RD, DATA, 25), "omap-cmp") \ 246 + \ 247 + /* tiering */ \ 248 + f(COPY_FROM, __CEPH_OSD_OP(WR, DATA, 26), "copy-from") \ 249 + f(COPY_GET_CLASSIC, __CEPH_OSD_OP(RD, DATA, 27), "copy-get-classic") \ 250 + f(UNDIRTY, __CEPH_OSD_OP(WR, DATA, 28), "undirty") \ 251 + f(ISDIRTY, __CEPH_OSD_OP(RD, DATA, 29), "isdirty") \ 252 + f(COPY_GET, __CEPH_OSD_OP(RD, DATA, 30), "copy-get") \ 253 + f(CACHE_FLUSH, __CEPH_OSD_OP(CACHE, DATA, 31), "cache-flush") \ 254 + f(CACHE_EVICT, __CEPH_OSD_OP(CACHE, DATA, 32), "cache-evict") \ 255 + f(CACHE_TRY_FLUSH, __CEPH_OSD_OP(CACHE, DATA, 33), "cache-try-flush") \ 256 + \ 257 + /* convert tmap to omap */ \ 258 + f(TMAP2OMAP, __CEPH_OSD_OP(RMW, DATA, 34), "tmap2omap") \ 259 + \ 260 + /* hints */ \ 261 + f(SETALLOCHINT, __CEPH_OSD_OP(WR, DATA, 35), "set-alloc-hint") \ 262 + \ 263 + /** multi **/ \ 264 + f(CLONERANGE, __CEPH_OSD_OP(WR, MULTI, 1), "clonerange") \ 265 + f(ASSERT_SRC_VERSION, __CEPH_OSD_OP(RD, MULTI, 2), "assert-src-version") \ 266 + f(SRC_CMPXATTR, __CEPH_OSD_OP(RD, MULTI, 3), "src-cmpxattr") \ 267 + \ 268 + /** attrs **/ \ 269 + /* read */ \ 270 + f(GETXATTR, __CEPH_OSD_OP(RD, ATTR, 1), "getxattr") \ 271 + f(GETXATTRS, __CEPH_OSD_OP(RD, ATTR, 2), "getxattrs") \ 272 + f(CMPXATTR, __CEPH_OSD_OP(RD, ATTR, 3), "cmpxattr") \ 273 + \ 274 + /* write */ \ 275 + f(SETXATTR, __CEPH_OSD_OP(WR, ATTR, 1), "setxattr") \ 276 + f(SETXATTRS, __CEPH_OSD_OP(WR, ATTR, 2), "setxattrs") \ 277 + f(RESETXATTRS, __CEPH_OSD_OP(WR, ATTR, 3), "resetxattrs") \ 278 + f(RMXATTR, __CEPH_OSD_OP(WR, ATTR, 4), "rmxattr") \ 279 + \ 280 + /** subop **/ \ 281 + f(PULL, __CEPH_OSD_OP1(SUB, 1), "pull") \ 282 + f(PUSH, __CEPH_OSD_OP1(SUB, 2), "push") \ 283 + f(BALANCEREADS, __CEPH_OSD_OP1(SUB, 3), "balance-reads") \ 284 + f(UNBALANCEREADS, __CEPH_OSD_OP1(SUB, 4), "unbalance-reads") \ 285 + f(SCRUB, __CEPH_OSD_OP1(SUB, 5), "scrub") \ 286 + f(SCRUB_RESERVE, __CEPH_OSD_OP1(SUB, 6), "scrub-reserve") \ 287 + f(SCRUB_UNRESERVE, __CEPH_OSD_OP1(SUB, 7), "scrub-unreserve") \ 288 + f(SCRUB_STOP, __CEPH_OSD_OP1(SUB, 8), "scrub-stop") \ 289 + f(SCRUB_MAP, __CEPH_OSD_OP1(SUB, 9), "scrub-map") \ 290 + \ 291 + /** lock **/ \ 292 + f(WRLOCK, __CEPH_OSD_OP(WR, LOCK, 1), "wrlock") \ 293 + f(WRUNLOCK, __CEPH_OSD_OP(WR, LOCK, 2), "wrunlock") \ 294 + f(RDLOCK, __CEPH_OSD_OP(WR, LOCK, 3), "rdlock") \ 295 + f(RDUNLOCK, __CEPH_OSD_OP(WR, LOCK, 4), "rdunlock") \ 296 + f(UPLOCK, __CEPH_OSD_OP(WR, LOCK, 5), "uplock") \ 297 + f(DNLOCK, __CEPH_OSD_OP(WR, LOCK, 6), "dnlock") \ 298 + \ 299 + /** exec **/ \ 300 + /* note: the RD bit here is wrong; see special-case below in helper */ \ 301 + f(CALL, __CEPH_OSD_OP(RD, EXEC, 1), "call") \ 302 + \ 303 + /** pg **/ \ 304 + f(PGLS, __CEPH_OSD_OP(RD, PG, 1), "pgls") \ 305 + f(PGLS_FILTER, __CEPH_OSD_OP(RD, PG, 2), "pgls-filter") \ 306 + f(PG_HITSET_LS, __CEPH_OSD_OP(RD, PG, 3), "pg-hitset-ls") \ 307 + f(PG_HITSET_GET, __CEPH_OSD_OP(RD, PG, 4), "pg-hitset-get") 308 + 185 309 enum { 186 - /** data **/ 187 - /* read */ 188 - CEPH_OSD_OP_READ = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 1, 189 - CEPH_OSD_OP_STAT = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 2, 190 - CEPH_OSD_OP_MAPEXT = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 3, 191 - 192 - /* fancy read */ 193 - CEPH_OSD_OP_MASKTRUNC = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 4, 194 - CEPH_OSD_OP_SPARSE_READ = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 5, 195 - 196 - CEPH_OSD_OP_NOTIFY = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 6, 197 - CEPH_OSD_OP_NOTIFY_ACK = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 7, 198 - 199 - /* versioning */ 200 - CEPH_OSD_OP_ASSERT_VER = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 8, 201 - 202 - /* write */ 203 - CEPH_OSD_OP_WRITE = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 1, 204 - CEPH_OSD_OP_WRITEFULL = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 2, 205 - CEPH_OSD_OP_TRUNCATE = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 3, 206 - CEPH_OSD_OP_ZERO = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 4, 207 - CEPH_OSD_OP_DELETE = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 5, 208 - 209 - /* fancy write */ 210 - CEPH_OSD_OP_APPEND = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 6, 211 - CEPH_OSD_OP_STARTSYNC = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 7, 212 - CEPH_OSD_OP_SETTRUNC = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 8, 213 - CEPH_OSD_OP_TRIMTRUNC = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 9, 214 - 215 - CEPH_OSD_OP_TMAPUP = CEPH_OSD_OP_MODE_RMW | CEPH_OSD_OP_TYPE_DATA | 10, 216 - CEPH_OSD_OP_TMAPPUT = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 11, 217 - CEPH_OSD_OP_TMAPGET = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 12, 218 - 219 - CEPH_OSD_OP_CREATE = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 13, 220 - CEPH_OSD_OP_ROLLBACK= CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 14, 221 - 222 - CEPH_OSD_OP_WATCH = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 15, 223 - 224 - /* omap */ 225 - CEPH_OSD_OP_OMAPGETKEYS = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 17, 226 - CEPH_OSD_OP_OMAPGETVALS = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 18, 227 - CEPH_OSD_OP_OMAPGETHEADER = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 19, 228 - CEPH_OSD_OP_OMAPGETVALSBYKEYS = 229 - CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 20, 230 - CEPH_OSD_OP_OMAPSETVALS = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 21, 231 - CEPH_OSD_OP_OMAPSETHEADER = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 22, 232 - CEPH_OSD_OP_OMAPCLEAR = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 23, 233 - CEPH_OSD_OP_OMAPRMKEYS = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 24, 234 - CEPH_OSD_OP_OMAP_CMP = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 25, 235 - 236 - /* hints */ 237 - CEPH_OSD_OP_SETALLOCHINT = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 35, 238 - 239 - /** multi **/ 240 - CEPH_OSD_OP_CLONERANGE = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_MULTI | 1, 241 - CEPH_OSD_OP_ASSERT_SRC_VERSION = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_MULTI | 2, 242 - CEPH_OSD_OP_SRC_CMPXATTR = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_MULTI | 3, 243 - 244 - /** attrs **/ 245 - /* read */ 246 - CEPH_OSD_OP_GETXATTR = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_ATTR | 1, 247 - CEPH_OSD_OP_GETXATTRS = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_ATTR | 2, 248 - CEPH_OSD_OP_CMPXATTR = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_ATTR | 3, 249 - 250 - /* write */ 251 - CEPH_OSD_OP_SETXATTR = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_ATTR | 1, 252 - CEPH_OSD_OP_SETXATTRS = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_ATTR | 2, 253 - CEPH_OSD_OP_RESETXATTRS = CEPH_OSD_OP_MODE_WR|CEPH_OSD_OP_TYPE_ATTR | 3, 254 - CEPH_OSD_OP_RMXATTR = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_ATTR | 4, 255 - 256 - /** subop **/ 257 - CEPH_OSD_OP_PULL = CEPH_OSD_OP_MODE_SUB | 1, 258 - CEPH_OSD_OP_PUSH = CEPH_OSD_OP_MODE_SUB | 2, 259 - CEPH_OSD_OP_BALANCEREADS = CEPH_OSD_OP_MODE_SUB | 3, 260 - CEPH_OSD_OP_UNBALANCEREADS = CEPH_OSD_OP_MODE_SUB | 4, 261 - CEPH_OSD_OP_SCRUB = CEPH_OSD_OP_MODE_SUB | 5, 262 - CEPH_OSD_OP_SCRUB_RESERVE = CEPH_OSD_OP_MODE_SUB | 6, 263 - CEPH_OSD_OP_SCRUB_UNRESERVE = CEPH_OSD_OP_MODE_SUB | 7, 264 - CEPH_OSD_OP_SCRUB_STOP = CEPH_OSD_OP_MODE_SUB | 8, 265 - CEPH_OSD_OP_SCRUB_MAP = CEPH_OSD_OP_MODE_SUB | 9, 266 - 267 - /** lock **/ 268 - CEPH_OSD_OP_WRLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 1, 269 - CEPH_OSD_OP_WRUNLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 2, 270 - CEPH_OSD_OP_RDLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 3, 271 - CEPH_OSD_OP_RDUNLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 4, 272 - CEPH_OSD_OP_UPLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 5, 273 - CEPH_OSD_OP_DNLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 6, 274 - 275 - /** exec **/ 276 - /* note: the RD bit here is wrong; see special-case below in helper */ 277 - CEPH_OSD_OP_CALL = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_EXEC | 1, 278 - 279 - /** pg **/ 280 - CEPH_OSD_OP_PGLS = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_PG | 1, 281 - CEPH_OSD_OP_PGLS_FILTER = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_PG | 2, 310 + #define GENERATE_ENUM_ENTRY(op, opcode, str) CEPH_OSD_OP_##op = (opcode), 311 + __CEPH_FORALL_OSD_OPS(GENERATE_ENUM_ENTRY) 312 + #undef GENERATE_ENUM_ENTRY 282 313 }; 283 314 284 315 static inline int ceph_osd_op_type_lock(int op)
+5 -70
net/ceph/ceph_strings.c
··· 19 19 const char *ceph_osd_op_name(int op) 20 20 { 21 21 switch (op) { 22 - case CEPH_OSD_OP_READ: return "read"; 23 - case CEPH_OSD_OP_STAT: return "stat"; 24 - case CEPH_OSD_OP_MAPEXT: return "mapext"; 25 - case CEPH_OSD_OP_SPARSE_READ: return "sparse-read"; 26 - case CEPH_OSD_OP_NOTIFY: return "notify"; 27 - case CEPH_OSD_OP_NOTIFY_ACK: return "notify-ack"; 28 - case CEPH_OSD_OP_ASSERT_VER: return "assert-version"; 29 - 30 - case CEPH_OSD_OP_MASKTRUNC: return "masktrunc"; 31 - 32 - case CEPH_OSD_OP_CREATE: return "create"; 33 - case CEPH_OSD_OP_WRITE: return "write"; 34 - case CEPH_OSD_OP_DELETE: return "delete"; 35 - case CEPH_OSD_OP_TRUNCATE: return "truncate"; 36 - case CEPH_OSD_OP_ZERO: return "zero"; 37 - case CEPH_OSD_OP_WRITEFULL: return "writefull"; 38 - case CEPH_OSD_OP_ROLLBACK: return "rollback"; 39 - 40 - case CEPH_OSD_OP_APPEND: return "append"; 41 - case CEPH_OSD_OP_STARTSYNC: return "startsync"; 42 - case CEPH_OSD_OP_SETTRUNC: return "settrunc"; 43 - case CEPH_OSD_OP_TRIMTRUNC: return "trimtrunc"; 44 - 45 - case CEPH_OSD_OP_TMAPUP: return "tmapup"; 46 - case CEPH_OSD_OP_TMAPGET: return "tmapget"; 47 - case CEPH_OSD_OP_TMAPPUT: return "tmapput"; 48 - case CEPH_OSD_OP_WATCH: return "watch"; 49 - 50 - case CEPH_OSD_OP_CLONERANGE: return "clonerange"; 51 - case CEPH_OSD_OP_ASSERT_SRC_VERSION: return "assert-src-version"; 52 - case CEPH_OSD_OP_SRC_CMPXATTR: return "src-cmpxattr"; 53 - 54 - case CEPH_OSD_OP_GETXATTR: return "getxattr"; 55 - case CEPH_OSD_OP_GETXATTRS: return "getxattrs"; 56 - case CEPH_OSD_OP_SETXATTR: return "setxattr"; 57 - case CEPH_OSD_OP_SETXATTRS: return "setxattrs"; 58 - case CEPH_OSD_OP_RESETXATTRS: return "resetxattrs"; 59 - case CEPH_OSD_OP_RMXATTR: return "rmxattr"; 60 - case CEPH_OSD_OP_CMPXATTR: return "cmpxattr"; 61 - 62 - case CEPH_OSD_OP_PULL: return "pull"; 63 - case CEPH_OSD_OP_PUSH: return "push"; 64 - case CEPH_OSD_OP_BALANCEREADS: return "balance-reads"; 65 - case CEPH_OSD_OP_UNBALANCEREADS: return "unbalance-reads"; 66 - case CEPH_OSD_OP_SCRUB: return "scrub"; 67 - case CEPH_OSD_OP_SCRUB_RESERVE: return "scrub-reserve"; 68 - case CEPH_OSD_OP_SCRUB_UNRESERVE: return "scrub-unreserve"; 69 - case CEPH_OSD_OP_SCRUB_STOP: return "scrub-stop"; 70 - case CEPH_OSD_OP_SCRUB_MAP: return "scrub-map"; 71 - 72 - case CEPH_OSD_OP_WRLOCK: return "wrlock"; 73 - case CEPH_OSD_OP_WRUNLOCK: return "wrunlock"; 74 - case CEPH_OSD_OP_RDLOCK: return "rdlock"; 75 - case CEPH_OSD_OP_RDUNLOCK: return "rdunlock"; 76 - case CEPH_OSD_OP_UPLOCK: return "uplock"; 77 - case CEPH_OSD_OP_DNLOCK: return "dnlock"; 78 - 79 - case CEPH_OSD_OP_CALL: return "call"; 80 - 81 - case CEPH_OSD_OP_PGLS: return "pgls"; 82 - case CEPH_OSD_OP_PGLS_FILTER: return "pgls-filter"; 83 - case CEPH_OSD_OP_OMAPGETKEYS: return "omap-get-keys"; 84 - case CEPH_OSD_OP_OMAPGETVALS: return "omap-get-vals"; 85 - case CEPH_OSD_OP_OMAPGETHEADER: return "omap-get-header"; 86 - case CEPH_OSD_OP_OMAPGETVALSBYKEYS: return "omap-get-vals-by-keys"; 87 - case CEPH_OSD_OP_OMAPSETVALS: return "omap-set-vals"; 88 - case CEPH_OSD_OP_OMAPSETHEADER: return "omap-set-header"; 89 - case CEPH_OSD_OP_OMAPCLEAR: return "omap-clear"; 90 - case CEPH_OSD_OP_OMAPRMKEYS: return "omap-rm-keys"; 22 + #define GENERATE_CASE(op, opcode, str) case CEPH_OSD_OP_##op: return (str); 23 + __CEPH_FORALL_OSD_OPS(GENERATE_CASE) 24 + #undef GENERATE_CASE 25 + default: 26 + return "???"; 91 27 } 92 - return "???"; 93 28 } 94 29 95 30 const char *ceph_osd_state_name(int s)
+3 -62
net/ceph/osd_client.c
··· 431 431 static bool osd_req_opcode_valid(u16 opcode) 432 432 { 433 433 switch (opcode) { 434 - case CEPH_OSD_OP_READ: 435 - case CEPH_OSD_OP_STAT: 436 - case CEPH_OSD_OP_MAPEXT: 437 - case CEPH_OSD_OP_MASKTRUNC: 438 - case CEPH_OSD_OP_SPARSE_READ: 439 - case CEPH_OSD_OP_NOTIFY: 440 - case CEPH_OSD_OP_NOTIFY_ACK: 441 - case CEPH_OSD_OP_ASSERT_VER: 442 - case CEPH_OSD_OP_WRITE: 443 - case CEPH_OSD_OP_WRITEFULL: 444 - case CEPH_OSD_OP_TRUNCATE: 445 - case CEPH_OSD_OP_ZERO: 446 - case CEPH_OSD_OP_DELETE: 447 - case CEPH_OSD_OP_APPEND: 448 - case CEPH_OSD_OP_STARTSYNC: 449 - case CEPH_OSD_OP_SETTRUNC: 450 - case CEPH_OSD_OP_TRIMTRUNC: 451 - case CEPH_OSD_OP_TMAPUP: 452 - case CEPH_OSD_OP_TMAPPUT: 453 - case CEPH_OSD_OP_TMAPGET: 454 - case CEPH_OSD_OP_CREATE: 455 - case CEPH_OSD_OP_ROLLBACK: 456 - case CEPH_OSD_OP_WATCH: 457 - case CEPH_OSD_OP_OMAPGETKEYS: 458 - case CEPH_OSD_OP_OMAPGETVALS: 459 - case CEPH_OSD_OP_OMAPGETHEADER: 460 - case CEPH_OSD_OP_OMAPGETVALSBYKEYS: 461 - case CEPH_OSD_OP_OMAPSETVALS: 462 - case CEPH_OSD_OP_OMAPSETHEADER: 463 - case CEPH_OSD_OP_OMAPCLEAR: 464 - case CEPH_OSD_OP_OMAPRMKEYS: 465 - case CEPH_OSD_OP_OMAP_CMP: 466 - case CEPH_OSD_OP_SETALLOCHINT: 467 - case CEPH_OSD_OP_CLONERANGE: 468 - case CEPH_OSD_OP_ASSERT_SRC_VERSION: 469 - case CEPH_OSD_OP_SRC_CMPXATTR: 470 - case CEPH_OSD_OP_GETXATTR: 471 - case CEPH_OSD_OP_GETXATTRS: 472 - case CEPH_OSD_OP_CMPXATTR: 473 - case CEPH_OSD_OP_SETXATTR: 474 - case CEPH_OSD_OP_SETXATTRS: 475 - case CEPH_OSD_OP_RESETXATTRS: 476 - case CEPH_OSD_OP_RMXATTR: 477 - case CEPH_OSD_OP_PULL: 478 - case CEPH_OSD_OP_PUSH: 479 - case CEPH_OSD_OP_BALANCEREADS: 480 - case CEPH_OSD_OP_UNBALANCEREADS: 481 - case CEPH_OSD_OP_SCRUB: 482 - case CEPH_OSD_OP_SCRUB_RESERVE: 483 - case CEPH_OSD_OP_SCRUB_UNRESERVE: 484 - case CEPH_OSD_OP_SCRUB_STOP: 485 - case CEPH_OSD_OP_SCRUB_MAP: 486 - case CEPH_OSD_OP_WRLOCK: 487 - case CEPH_OSD_OP_WRUNLOCK: 488 - case CEPH_OSD_OP_RDLOCK: 489 - case CEPH_OSD_OP_RDUNLOCK: 490 - case CEPH_OSD_OP_UPLOCK: 491 - case CEPH_OSD_OP_DNLOCK: 492 - case CEPH_OSD_OP_CALL: 493 - case CEPH_OSD_OP_PGLS: 494 - case CEPH_OSD_OP_PGLS_FILTER: 495 - return true; 434 + #define GENERATE_CASE(op, opcode, str) case CEPH_OSD_OP_##op: return true; 435 + __CEPH_FORALL_OSD_OPS(GENERATE_CASE) 436 + #undef GENERATE_CASE 496 437 default: 497 438 return false; 498 439 }