On Tue, May 25, 2021 at 02:34:09PM +0100, David Howells wrote: > The AFS filesystem doesn't do any special handling for the SUID, SGID and > SVTX bits and doesn't perform any sort of propagation. Further, only a > user with cell admin rights can set non-0777 bits. > > Handle this by adding a "_require_sgid_inheritance" clause and labelling > the test with it, thereby skipping for filesystems that don't support it. > > Signed-off-by: David Howells <dhowells@xxxxxxxxxx> Looks ok, Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > cc: linux-afs@xxxxxxxxxxxxxxxxxxx > --- > > common/rc | 9 +++++++++ > doc/requirement-checking.txt | 7 +++++++ > tests/generic/314 | 1 + > 3 files changed, 17 insertions(+) > > diff --git a/common/rc b/common/rc > index 4ffec9a2..4d4b0280 100644 > --- a/common/rc > +++ b/common/rc > @@ -4613,6 +4613,15 @@ _has_mknod() > esac > } > > +_require_sgid_inheritance() > +{ > + case $FSTYP in > + afs) > + _notrun "SGID-based group ID inheritance is not supported on $FSTYP" > + ;; > + esac > +} > + > init_rc > > ################################################################################ > diff --git a/doc/requirement-checking.txt b/doc/requirement-checking.txt > index d31ba3fb..6efc8dc8 100644 > --- a/doc/requirement-checking.txt > +++ b/doc/requirement-checking.txt > @@ -18,6 +18,7 @@ they have. This is done with _require_<xxx> macros, which may take parameters. > _require_exportfs > _require_mknod > _has_mknod > + _require_sgid_inheritance > > (3) System call requirements. > > @@ -106,6 +107,12 @@ _has_mknod > _require_mknod will cause the test to be skipped; _has_mknod returns 0 if > mknod is supported and 1 otherwise. > > +_require_sgid_inheritance > + > + The test required that the $TEST_DEV filesystem supports the inheritance > + of the SGID bit and the GID from a marked directory. The test will be > + skipped if not supported. > + > > ======================== > SYSTEM CALL REQUIREMENTS > diff --git a/tests/generic/314 b/tests/generic/314 > index 540f0feb..8ed08542 100755 > --- a/tests/generic/314 > +++ b/tests/generic/314 > @@ -30,6 +30,7 @@ _supported_fs generic > _require_test > _require_user > _require_chown > +_require_sgid_inheritance > > rm -rf $TEST_DIR/$seq-dir > > >