Whamcloud - gitweb
LU-15245 mdc: GET(X)ATTR to READPAGE portal 93/45593/1
authorPatrick Farrell <pfarrell@whamcloud.com>
Wed, 17 Nov 2021 20:01:51 +0000 (15:01 -0500)
committerPatrick Farrell <pfarrell@whamcloud.com>
Wed, 17 Nov 2021 20:01:51 +0000 (15:01 -0500)
commitebb035756eb059b255d4c8245d42bc5d5b96bab9
tree286434fb87712c457dcd3560e6eb68025b96bf1c
parenta50eaae974ee04364c9fbbb4625dd3d581a8c986
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
lustre/llite/rw26.c
lustre/llite/vvp_page.c
lustre/mdc/mdc_request.c