Whamcloud - gitweb
LU-15245 mdc: GET(X)ATTR to READPAGE portal
authorPatrick Farrell <pfarrell@whamcloud.com>
Wed, 17 Nov 2021 20:11:45 +0000 (15:11 -0500)
committerAndreas Dilger <adilger@whamcloud.com>
Thu, 16 Dec 2021 04:46:12 +0000 (04:46 +0000)
commit31e047125e47f2cfe056a139bfd490042fa59a29
tree3d4c473a31902bf0596124e0cde8e7be6a86de13
parent30f00843d3d3c2ec37e35a9c351c3eef680bb93b
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.

Lustre-change: https://review.whamcloud.com/45593
Lustre-commit: ebb035756eb059b255d4c8245d42bc5d5b96bab9 (tbd)

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/45594
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
lustre/mdc/mdc_request.c