Whamcloud - gitweb
LU-15245 mdc: GET(X)ATTR to READPAGE portal 93/45593/7
authorAndreas Dilger <adilger@whamcloud.com>
Wed, 17 Nov 2021 20:01:51 +0000 (15:01 -0500)
committerOleg Drokin <green@whamcloud.com>
Thu, 6 Jan 2022 23:25:13 +0000 (23:25 +0000)
commit5552eba1451d47ce1ba6c7ca112aa4b9b2f87292
tree8f8594cdc26c4af303ce9acf604ab1330ebf4ec4
parent276c22ae3869c1f775cded248d53b9c2a829c801
LU-15245 mdc: GET(X)ATTR to READPAGE portal

Send the MDS_GETATTR and MDS_GETXATTR RPCs to the
MDS_READPAGE_PORTAL instead of the default portal to avoid
deadlocks with other MDS_REINT RPCs that may block all of
the MDS service threads on that portal.

This deadlock occurs with MDS_GETXATTR when selinux is
enabled, because getxattr becomes part of lookup, so it
takes a reference on a lock used for lookup.  However, all
of the MDS service threads on the default portal can be
consumed by threads waiting for that lock, resulting in
a deadlock when the getxattr can't be processed.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I4fbae266022ee9fa38f3196acb1443df5056fe5e
Reviewed-on: https://review.whamcloud.com/45593
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Lai Siyao <lai.siyao@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/mdc/mdc_request.c