diff --git a/net/ceph/osdmap.c b/net/ceph/osdmap.c index 9622e3d883b5..43c321d38688 100644 --- a/net/ceph/osdmap.c +++ b/net/ceph/osdmap.c @@ -379,7 +379,10 @@ static int decode_choose_args(void **p, void *end, struct crush_map *c) goto e_inval; } - insert_choose_arg_map(&c->choose_args, arg_map); + if (!__insert_choose_arg_map(&c->choose_args, arg_map)) { + ret = -EEXIST; + goto fail; + } } return 0;