From: Xiubo Li Date: Fri, 5 Nov 2021 09:34:18 +0000 (+0800) Subject: ceph: fix mdsmap decode when there are MDS's beyond max_mds X-Git-Tag: v6.1-rc5~2631^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0e24421ac431e7af62d4acef6c638b85aae51728;p=platform%2Fkernel%2Flinux-starfive.git ceph: fix mdsmap decode when there are MDS's beyond max_mds If the max_mds is decreased in a cephfs cluster, there is a window of time before the MDSs are removed. If a map goes out during this period, the mdsmap may show the decreased max_mds but still shows those MDSes as in or in the export target list. Ensure that we don't fail the map decode in that case. Cc: stable@vger.kernel.org URL: https://tracker.ceph.com/issues/52436 Fixes: d517b3983dd3 ("ceph: reconnect to the export targets on new mdsmaps") Signed-off-by: Xiubo Li Reviewed-by: Jeff Layton Signed-off-by: Ilya Dryomov --- diff --git a/fs/ceph/mdsmap.c b/fs/ceph/mdsmap.c index 61d67cb..3038773 100644 --- a/fs/ceph/mdsmap.c +++ b/fs/ceph/mdsmap.c @@ -263,10 +263,6 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end, bool msgr2) goto nomem; for (j = 0; j < num_export_targets; j++) { target = ceph_decode_32(&pexport_targets); - if (target >= m->possible_max_rank) { - err = -EIO; - goto corrupt; - } info->export_targets[j] = target; } } else {