From: Xiubo Li <xiubli@xxxxxxxxxx> There is no any limit for the extent array size and it's possible that when reading with a large size contents. Else the messager will fail by reseting the connection and keeps resending the inflight IOs. URL: https://tracker.ceph.com/issues/62081 Signed-off-by: Xiubo Li <xiubli@xxxxxxxxxx> --- net/ceph/osd_client.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index 7af35106acaf..177a1d92c517 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c @@ -5850,8 +5850,6 @@ static inline void convert_extent_map(struct ceph_sparse_read *sr) } #endif -#define MAX_EXTENTS 4096 - static int osd_sparse_read(struct ceph_connection *con, struct ceph_msg_data_cursor *cursor, char **pbuf) @@ -5882,16 +5880,6 @@ static int osd_sparse_read(struct ceph_connection *con, if (count > 0) { if (!sr->sr_extent || count > sr->sr_ext_len) { - /* - * Apply a hard cap to the number of extents. - * If we have more, assume something is wrong. - */ - if (count > MAX_EXTENTS) { - dout("%s: OSD returned 0x%x extents in a single reply!\n", - __func__, count); - return -EREMOTEIO; - } - /* no extent array provided, or too short */ kfree(sr->sr_extent); sr->sr_extent = kmalloc_array(count, -- 2.39.1