If try_cslist_get returns false, it indicates that the cslist has been dropped and should not be handled without holding cs->lock.
https://pmc.acronis.work/browse/VSTOR-76384 Signed-off-by: Yuriy Vasilev <yuriy.vasi...@virtuozzo.com> --- fs/fuse/kio/pcs/pcs_map.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/fuse/kio/pcs/pcs_map.c b/fs/fuse/kio/pcs/pcs_map.c index 1ce07b0fd28f..8c91b394c50f 100644 --- a/fs/fuse/kio/pcs/pcs_map.c +++ b/fs/fuse/kio/pcs/pcs_map.c @@ -777,8 +777,11 @@ void pcs_map_notify_addr_change(struct pcs_cs * cs) * Thus, csl stays on the place in the list. New elements may be * added to head of cs->map_list, so our caller must care, they * will contain correct rpc addr. + * If false is returned, it indicates that the cslist has been dropped + * and should not be handled here. */ - cslist_get(cs_list); + if (!try_cslist_get(cs_list)) + continue; spin_unlock(&cs->lock); if (prev_cs_list) -- 2.34.1 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel