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

ceph: update common header files

This updates the common header files used by the different ceph
related modules. Specifically it adds definitions required by
the rbd watch/notify feature.

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>

authored by

Yehuda Sadeh and committed by
Sage Weil
483fac71 21f3b5f1

+45 -13
+15 -4
include/linux/ceph/ceph_fs.h
··· 136 136 137 137 138 138 /* osd */ 139 - #define CEPH_MSG_OSD_MAP 41 140 - #define CEPH_MSG_OSD_OP 42 141 - #define CEPH_MSG_OSD_OPREPLY 43 139 + #define CEPH_MSG_OSD_MAP 41 140 + #define CEPH_MSG_OSD_OP 42 141 + #define CEPH_MSG_OSD_OPREPLY 43 142 + #define CEPH_MSG_WATCH_NOTIFY 44 143 + 144 + 145 + /* watch-notify operations */ 146 + enum { 147 + WATCH_NOTIFY = 1, /* notifying watcher */ 148 + WATCH_NOTIFY_COMPLETE = 2, /* notifier notified when done */ 149 + }; 150 + 142 151 143 152 /* pool operations */ 144 153 enum { ··· 222 213 struct ceph_mon_request_header monhdr; 223 214 } __attribute__ ((packed)); 224 215 216 + #define CEPH_SUBSCRIBE_ONETIME 1 /* i want only 1 update after have */ 217 + 225 218 struct ceph_mon_subscribe_item { 226 - __le64 have_version; __le64 have; 219 + __le64 have_version; __le64 have; 227 220 __u8 onetime; 228 221 } __attribute__ ((packed)); 229 222
+30 -9
include/linux/ceph/rados.h
··· 12 12 * osdmap encoding versions 13 13 */ 14 14 #define CEPH_OSDMAP_INC_VERSION 5 15 - #define CEPH_OSDMAP_INC_VERSION_EXT 5 15 + #define CEPH_OSDMAP_INC_VERSION_EXT 6 16 16 #define CEPH_OSDMAP_VERSION 5 17 - #define CEPH_OSDMAP_VERSION_EXT 5 17 + #define CEPH_OSDMAP_VERSION_EXT 6 18 18 19 19 /* 20 20 * fs id ··· 181 181 /* read */ 182 182 CEPH_OSD_OP_READ = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 1, 183 183 CEPH_OSD_OP_STAT = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 2, 184 + CEPH_OSD_OP_MAPEXT = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 3, 184 185 185 186 /* fancy read */ 186 - CEPH_OSD_OP_MASKTRUNC = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 4, 187 + CEPH_OSD_OP_MASKTRUNC = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 4, 188 + CEPH_OSD_OP_SPARSE_READ = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 5, 189 + 190 + CEPH_OSD_OP_NOTIFY = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 6, 191 + CEPH_OSD_OP_NOTIFY_ACK = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 7, 192 + 193 + /* versioning */ 194 + CEPH_OSD_OP_ASSERT_VER = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 8, 187 195 188 196 /* write */ 189 197 CEPH_OSD_OP_WRITE = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 1, ··· 213 205 CEPH_OSD_OP_CREATE = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 13, 214 206 CEPH_OSD_OP_ROLLBACK= CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 14, 215 207 208 + CEPH_OSD_OP_WATCH = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 15, 209 + 216 210 /** attrs **/ 217 211 /* read */ 218 212 CEPH_OSD_OP_GETXATTR = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_ATTR | 1, ··· 228 218 CEPH_OSD_OP_RMXATTR = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_ATTR | 4, 229 219 230 220 /** subop **/ 231 - CEPH_OSD_OP_PULL = CEPH_OSD_OP_MODE_SUB | 1, 232 - CEPH_OSD_OP_PUSH = CEPH_OSD_OP_MODE_SUB | 2, 233 - CEPH_OSD_OP_BALANCEREADS = CEPH_OSD_OP_MODE_SUB | 3, 234 - CEPH_OSD_OP_UNBALANCEREADS = CEPH_OSD_OP_MODE_SUB | 4, 235 - CEPH_OSD_OP_SCRUB = CEPH_OSD_OP_MODE_SUB | 5, 221 + CEPH_OSD_OP_PULL = CEPH_OSD_OP_MODE_SUB | 1, 222 + CEPH_OSD_OP_PUSH = CEPH_OSD_OP_MODE_SUB | 2, 223 + CEPH_OSD_OP_BALANCEREADS = CEPH_OSD_OP_MODE_SUB | 3, 224 + CEPH_OSD_OP_UNBALANCEREADS = CEPH_OSD_OP_MODE_SUB | 4, 225 + CEPH_OSD_OP_SCRUB = CEPH_OSD_OP_MODE_SUB | 5, 226 + CEPH_OSD_OP_SCRUB_RESERVE = CEPH_OSD_OP_MODE_SUB | 6, 227 + CEPH_OSD_OP_SCRUB_UNRESERVE = CEPH_OSD_OP_MODE_SUB | 7, 228 + CEPH_OSD_OP_SCRUB_STOP = CEPH_OSD_OP_MODE_SUB | 8, 236 229 237 230 /** lock **/ 238 231 CEPH_OSD_OP_WRLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 1, ··· 341 328 CEPH_OSD_CMPXATTR_MODE_U64 = 2 342 329 }; 343 330 331 + #define RADOS_NOTIFY_VER 1 332 + 344 333 /* 345 334 * an individual object operation. each may be accompanied by some data 346 335 * payload ··· 374 359 struct { 375 360 __le64 snapid; 376 361 } __attribute__ ((packed)) snap; 377 - }; 362 + struct { 363 + __le64 cookie; 364 + __le64 ver; 365 + __u8 flag; /* 0 = unwatch, 1 = watch */ 366 + } __attribute__ ((packed)) watch; 367 + }; 378 368 __le32 payload_len; 379 369 } __attribute__ ((packed)); 380 370 ··· 420 400 __le32 num_ops; 421 401 struct ceph_osd_op ops[0]; /* ops[], object */ 422 402 } __attribute__ ((packed)); 403 + 423 404 424 405 425 406 #endif