mirror of
https://github.com/ceph/ceph
synced 2024-12-19 09:57:05 +00:00
rbd: fix clone issue when we specify image feature
Fixes: #13553 Signed-off-by: xinxin shu <xinxin.shu@intel.com>
This commit is contained in:
parent
89b2b9b5c0
commit
da48dbb8f8
19
src/rbd.cc
19
src/rbd.cc
@ -3265,12 +3265,6 @@ int main(int argc, const char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
if (features != 0 && !format_specified) {
|
||||
format = 2;
|
||||
format_specified = true;
|
||||
} else if (features == 0) {
|
||||
features = g_conf->rbd_default_features;
|
||||
}
|
||||
if (shared) {
|
||||
features &= ~(RBD_FEATURE_EXCLUSIVE_LOCK | RBD_FEATURE_OBJECT_MAP);
|
||||
}
|
||||
@ -3405,8 +3399,13 @@ if (!set_conf_param(v, p1, p2, p3)) { \
|
||||
|
||||
/* get defaults from rbd_default_* options to keep behavior consistent with
|
||||
manual short-form options */
|
||||
if (!format_specified)
|
||||
format = g_conf->rbd_default_format;
|
||||
if (features != 0 && !format_specified) {
|
||||
format = 2;
|
||||
} else if (features == 0) {
|
||||
features = g_conf->rbd_default_features;
|
||||
if (!format_specified)
|
||||
format = g_conf->rbd_default_format;
|
||||
}
|
||||
if (!order)
|
||||
order = g_conf->rbd_default_order;
|
||||
if (!stripe_unit)
|
||||
@ -3582,6 +3581,10 @@ if (!set_conf_param(v, p1, p2, p3)) { \
|
||||
cerr << "rbd: clone must begin at size of parent" << std::endl;
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if ((opt_cmd == OPT_CLONE) &&
|
||||
((features & RBD_FEATURE_LAYERING) != RBD_FEATURE_LAYERING)) {
|
||||
features |= RBD_FEATURE_LAYERING;
|
||||
}
|
||||
|
||||
if ((opt_cmd == OPT_RENAME) && (strcmp(poolname, dest_poolname) != 0)) {
|
||||
cerr << "rbd: mv/rename across pools not supported" << std::endl;
|
||||
|
Loading…
Reference in New Issue
Block a user