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

rbd: get rid of RBD_MAX_SEG_NAME_LEN

RBD_MAX_SEG_NAME_LEN represents the maximum length of an rbd object
name (i.e., one of the objects providing storage backing an rbd
image).

Another symbol, MAX_OBJ_NAME_SIZE, is used in the osd client code to
define the maximum length of any object name in an osd request.

Right now they disagree, with RBD_MAX_SEG_NAME_LEN being too big.

There's no real benefit at this point to defining the rbd object
name length limit separate from any other object name, so just
get rid of RBD_MAX_SEG_NAME_LEN and use MAX_OBJ_NAME_SIZE in its
place.

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>

+3 -5
+3 -3
drivers/block/rbd.c
··· 740 740 u64 segment; 741 741 int ret; 742 742 743 - name = kmalloc(RBD_MAX_SEG_NAME_LEN + 1, GFP_NOIO); 743 + name = kmalloc(MAX_OBJ_NAME_SIZE + 1, GFP_NOIO); 744 744 if (!name) 745 745 return NULL; 746 746 segment = offset >> rbd_dev->header.obj_order; 747 - ret = snprintf(name, RBD_MAX_SEG_NAME_LEN, "%s.%012llx", 747 + ret = snprintf(name, MAX_OBJ_NAME_SIZE + 1, "%s.%012llx", 748 748 rbd_dev->header.object_prefix, segment); 749 - if (ret < 0 || ret >= RBD_MAX_SEG_NAME_LEN) { 749 + if (ret < 0 || ret > MAX_OBJ_NAME_SIZE) { 750 750 pr_err("error formatting segment name for #%llu (%d)\n", 751 751 segment, ret); 752 752 kfree(name);
-2
drivers/block/rbd_types.h
··· 46 46 #define RBD_MIN_OBJ_ORDER 16 47 47 #define RBD_MAX_OBJ_ORDER 30 48 48 49 - #define RBD_MAX_SEG_NAME_LEN 128 50 - 51 49 #define RBD_COMP_NONE 0 52 50 #define RBD_CRYPT_NONE 0 53 51