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

rbd: RBD_V{1,2}_DATA_FORMAT macros

... and also fix up the comment -- format 1 data objects have always
been 12 hex digits long.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Jason Dillaman <dillaman@redhat.com>

+6 -7
+2 -4
drivers/block/rbd.c
··· 1257 1257 1258 1258 static const char *rbd_segment_name(struct rbd_device *rbd_dev, u64 offset) 1259 1259 { 1260 + const char *name_format = rbd_dev->image_format == 1 ? 1261 + RBD_V1_DATA_FORMAT : RBD_V2_DATA_FORMAT; 1260 1262 char *name; 1261 1263 u64 segment; 1262 1264 int ret; 1263 - char *name_format; 1264 1265 1265 1266 name = kmem_cache_alloc(rbd_segment_name_cache, GFP_NOIO); 1266 1267 if (!name) 1267 1268 return NULL; 1268 1269 segment = offset >> rbd_dev->header.obj_order; 1269 - name_format = "%s.%012llx"; 1270 - if (rbd_dev->image_format == 2) 1271 - name_format = "%s.%016llx"; 1272 1270 ret = snprintf(name, CEPH_MAX_OID_NAME_LEN + 1, name_format, 1273 1271 rbd_dev->header.object_prefix, segment); 1274 1272 if (ret < 0 || ret > CEPH_MAX_OID_NAME_LEN) {
+4 -3
drivers/block/rbd_types.h
··· 25 25 */ 26 26 27 27 #define RBD_HEADER_PREFIX "rbd_header." 28 - #define RBD_DATA_PREFIX "rbd_data." 29 28 #define RBD_ID_PREFIX "rbd_id." 29 + #define RBD_V2_DATA_FORMAT "%s.%016llx" 30 30 31 31 #define RBD_LOCK_NAME "rbd_lock" 32 32 #define RBD_LOCK_TAG "internal" ··· 42 42 /* 43 43 * For format version 1, rbd image 'foo' consists of objects 44 44 * foo.rbd - image metadata 45 - * rb.<idhi>.<idlo>.00000000 46 - * rb.<idhi>.<idlo>.00000001 45 + * rb.<idhi>.<idlo>.<extra>.000000000000 46 + * rb.<idhi>.<idlo>.<extra>.000000000001 47 47 * ... - data 48 48 * There is no notion of a persistent image id in rbd format 1. 49 49 */ 50 50 51 51 #define RBD_SUFFIX ".rbd" 52 + #define RBD_V1_DATA_FORMAT "%s.%012llx" 52 53 53 54 #define RBD_DIRECTORY "rbd_directory" 54 55 #define RBD_INFO "rbd_info"