From patchwork Mon Apr 24 14:10:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 13222243 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0D11EC7618E for ; Mon, 24 Apr 2023 14:11:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231425AbjDXOLp (ORCPT ); Mon, 24 Apr 2023 10:11:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46388 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230072AbjDXOLn (ORCPT ); Mon, 24 Apr 2023 10:11:43 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CF5E46EA8 for ; Mon, 24 Apr 2023 07:10:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1682345453; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AowmwuSQVk04sdcG4Y4Vke0Vd6MNcqzFZD/B8/TR3GE=; b=PUMS9RLsYg/CKfyIkY/NKMbQ+nR6JypDzNS96AUYtEvi1OiJlIbHbt6RLUCEb6k0kZYWp+ r8RSzvyNhr5GockNFBwJu7qaphoAdgXAOlS0KYXfxIS9E8AeICw1Q5oQ4+XtLgm/F8sa7U 1YDIVWhtNsNf5Yp17ZwQU9Y/rXkn5rA= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-367-61aMPIPKOhu9fH-z97FEVA-1; Mon, 24 Apr 2023 10:10:50 -0400 X-MC-Unique: 61aMPIPKOhu9fH-z97FEVA-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 21BED87A9E2; Mon, 24 Apr 2023 14:10:50 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.42.28.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id D00E714171B8; Mon, 24 Apr 2023 14:10:48 +0000 (UTC) From: David Howells To: fstests@vger.kernel.org Cc: David Howells , "Darrick J. Wong" , Eryu Guan , Marc Dionne , Jeffrey Altman , linux-afs@lists.infradead.org Subject: [PATCH v2 1/6] Add AFS support Date: Mon, 24 Apr 2023 15:10:37 +0100 Message-Id: <20230424141042.450535-2-dhowells@redhat.com> In-Reply-To: <20230424141042.450535-1-dhowells@redhat.com> References: <20230424141042.450535-1-dhowells@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org Add support for the AFS filesystem. AFS is a network filesystem and there are a number of features it doesn't support. - No mkfs. (Kind of. An AFS volume server can be asked to create a new volume, but that's probably best left to AFS-specific test suites. Further, a volume would need to be destroyed before another of the same name could be created; it's not simply a matter of overwriting the old one as it is on a blockdev with a block-based filesystem.) - No fsck. (Kind of - the server can be asked to salvage a volume, but it may involve taking the server offline). - No richacls. AFS has its own ACL system. - No atimes. Signed-off-by: David Howells cc: linux-afs@lists.infradead.org --- build/rpm/xfstests.spec.in | 2 +- check | 3 ++- common/config | 15 +++++++++++--- common/rc | 42 ++++++++++++++++++++++++++++++++------ 4 files changed, 51 insertions(+), 11 deletions(-) diff --git a/build/rpm/xfstests.spec.in b/build/rpm/xfstests.spec.in index e0f7c5f9..3dce41ef 100644 --- a/build/rpm/xfstests.spec.in +++ b/build/rpm/xfstests.spec.in @@ -17,7 +17,7 @@ Group: System Environment/Base %description The XFS regression test suite. Also includes some support for -acl, attr, udf, and nfs testing. Contains around 200 specific tests +acl, attr, udf, nfs and afs testing. Contains around 200 specific tests for userspace & kernelspace. %prep diff --git a/check b/check index 1a58a2b2..d4bb4126 100755 --- a/check +++ b/check @@ -57,6 +57,7 @@ usage() check options -nfs test NFS + -afs test AFS -glusterfs test GlusterFS -cifs test CIFS -9p test 9p @@ -280,7 +281,7 @@ while [ $# -gt 0 ]; do case "$1" in -\? | -h | --help) usage ;; - -nfs|-glusterfs|-cifs|-9p|-fuse|-virtiofs|-pvfs2|-tmpfs|-ubifs) + -nfs|-afs|-glusterfs|-cifs|-9p|-fuse|-virtiofs|-pvfs2|-tmpfs|-ubifs) FSTYP="${1:1}" ;; -overlay) diff --git a/common/config b/common/config index 6c8cb3a5..25fbec14 100644 --- a/common/config +++ b/common/config @@ -301,6 +301,7 @@ export BTRFS_TUNE_PROG=$(type -P btrfstune) export BTRFS_CORRUPT_BLOCK_PROG=$(type -P btrfs-corrupt-block) export XFS_FSR_PROG=$(type -P xfs_fsr) export MKFS_NFS_PROG="false" +export MKFS_AFS_PROG="false" export MKFS_CIFS_PROG="false" export MKFS_OVERLAY_PROG="false" export MKFS_REISER4_PROG=$(type -P mkfs.reiser4) @@ -353,6 +354,9 @@ _common_mount_opts() nfs) echo $NFS_MOUNT_OPTIONS ;; + afs) + echo $AFS_MOUNT_OPTIONS + ;; cifs) echo $CIFS_MOUNT_OPTIONS ;; @@ -420,6 +424,9 @@ _mkfs_opts() nfs) export MKFS_OPTIONS=$NFS_MKFS_OPTIONS ;; + afs) + export MKFS_OPTIONS=$AFS_MKFS_OPTIONS + ;; cifs) export MKFS_OPTIONS=$CIFS_MKFS_OPTIONS ;; @@ -510,6 +517,8 @@ _source_specific_fs() nfs) . ./common/nfs ;; + afs) + ;; cifs) ;; 9p) @@ -588,9 +597,9 @@ _check_device() fi case "$FSTYP" in - 9p|fuse|tmpfs|virtiofs) - # 9p, fuse and virtiofs mount tags are just plain strings, so anything is allowed - # tmpfs doesn't use mount source, ignore + 9p|fuse|tmpfs|virtiofs|afs) + # 9p, fuse, virtiofs and afs mount tags are just plain strings, + # so anything is allowed tmpfs doesn't use mount source, ignore ;; ceph) # ceph has two different possible syntaxes for mount devices. The diff --git a/common/rc b/common/rc index 90749343..8b8cb714 100644 --- a/common/rc +++ b/common/rc @@ -569,6 +569,9 @@ _test_mkfs() nfs*) # do nothing for nfs ;; + afs*) + # do nothing for afs + ;; cifs) # do nothing for cifs ;; @@ -614,6 +617,9 @@ _try_mkfs_dev() nfs*) # do nothing for nfs ;; + afs*) + # do nothing for afs + ;; 9p) # do nothing for 9p ;; @@ -660,7 +666,7 @@ _mkfs_dev() rm -f $tmp.mkfserr $tmp.mkfsstd } -# remove all files in $SCRATCH_MNT, useful when testing on NFS/CIFS +# remove all files in $SCRATCH_MNT, useful when testing on NFS/AFS/CIFS _scratch_cleanup_files() { case $FSTYP in @@ -688,7 +694,7 @@ _scratch_mkfs() local mkfs_status case $FSTYP in - nfs*|cifs|ceph|overlay|glusterfs|pvfs2|9p|fuse|virtiofs) + nfs*|afs|cifs|ceph|overlay|glusterfs|pvfs2|9p|fuse|virtiofs) # unable to re-create this fstyp, just remove all files in # $SCRATCH_MNT to avoid EEXIST caused by the leftover files # created in previous runs @@ -1571,7 +1577,7 @@ _check_mounted_on() if [ -n "$type" -a "`_fs_type $dev`" != "$type" ]; then echo "$devname=$dev is mounted but not a type $type filesystem" - # raw $DF_PROG cannot handle NFS/CIFS/overlay correctly + # raw $DF_PROG cannot handle NFS/AFS/CIFS/overlay correctly _df_device $dev return 3 # 3 = mounted as wrong type fi @@ -1610,6 +1616,15 @@ _require_scratch_nocheck() _notrun "this test requires a valid \$SCRATCH_MNT" fi ;; + afs) + echo $SCRATCH_DEV | grep -q "^%" > /dev/null 2>&1 + if [ -z "$SCRATCH_DEV" -o "$?" != "0" ]; then + _notrun "this test requires a valid \$SCRATCH_DEV" + fi + if [ ! -d "$SCRATCH_MNT" ]; then + _notrun "this test requires a valid \$SCRATCH_MNT" + fi + ;; ceph) echo $SCRATCH_DEV | grep -qE "=/|:/" > /dev/null 2>&1 if [ -z "$SCRATCH_DEV" -o "$?" != "0" ]; then @@ -1810,6 +1825,15 @@ _require_test() _notrun "this test requires a valid \$TEST_DIR" fi ;; + afs) + echo $TEST_DEV | grep -q "^%" > /dev/null 2>&1 + if [ -z "$TEST_DEV" -o "$?" != "0" ]; then + _notrun "this test requires a valid \$TEST_DEV" + fi + if [ ! -d "$TEST_DIR" ]; then + _notrun "this test requires a valid \$TEST_DIR" + fi + ;; ceph) echo $TEST_DEV | grep -qE "=/|:/" > /dev/null 2>&1 if [ -z "$TEST_DEV" -o "$?" != "0" ]; then @@ -2923,7 +2947,7 @@ _scratch_mkfs_richacl() ;; ext4) _scratch_mkfs -O richacl ;; - nfs*|cifs|overlay) + nfs*|afs|cifs|overlay) _scratch_mkfs ;; esac @@ -3163,6 +3187,9 @@ _check_test_fs() nfs) # no way to check consistency for nfs ;; + afs) + # no way to check consistency for afs + ;; cifs) # no way to check consistency for cifs ;; @@ -3227,6 +3254,9 @@ _check_scratch_fs() nfs*) # Don't know how to check an NFS filesystem, yet. ;; + afs*) + # Don't know how to check an AFS filesystem, yet. + ;; cifs) # Don't know how to check a CIFS filesystem, yet. ;; @@ -3996,7 +4026,7 @@ _require_atime() { _exclude_scratch_mount_option "noatime" case $FSTYP in - nfs|cifs|virtiofs) + nfs|afs|cifs|virtiofs) _notrun "atime related mount options have no effect on $FSTYP" ;; esac @@ -4532,7 +4562,7 @@ _require_congruent_file_oplen() local oplen="$2" case $FSTYP in - nfs*|cifs|9p|virtiofs|ceph|glusterfs|overlay|pvfs2) + nfs*|afs|cifs|9p|virtiofs|ceph|glusterfs|overlay|pvfs2) # Network filesystems don't know about (or tell the client # about) the underlying file allocation unit and they generally # pass the file IO request to the underlying filesystem, so we From patchwork Mon Apr 24 14:10:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 13222244 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C558FC77B73 for ; Mon, 24 Apr 2023 14:11:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231459AbjDXOLr (ORCPT ); Mon, 24 Apr 2023 10:11:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46398 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231733AbjDXOLp (ORCPT ); Mon, 24 Apr 2023 10:11:45 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 08A987AA8 for ; Mon, 24 Apr 2023 07:10:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1682345457; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kVg4KrBUfFttvVSKsQu3RFyEXXfYi9QKcbNBHehDGqE=; b=NrfZd0oiKQvOqZPa7U2XGj/MBkJsFfPFeL4uzPzgsgHLS+GUrb3Fqj+sNKHCHquE9DY4hE LjXwUGU7EqseckN4cU9/9z+pFRWpqFMulsVg9FPGS+wolTTyKf86bjFgL8I8JAY1VVLygp k+RDFSmO0dXgs6XtS+h4fOwk4DDgbEI= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-314-7kJH00wlMjS3fXZBjwywMw-1; Mon, 24 Apr 2023 10:10:53 -0400 X-MC-Unique: 7kJH00wlMjS3fXZBjwywMw-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5D5DC811E7C; Mon, 24 Apr 2023 14:10:53 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.42.28.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4F9302027043; Mon, 24 Apr 2023 14:10:51 +0000 (UTC) From: David Howells To: fstests@vger.kernel.org Cc: David Howells , "Darrick J. Wong" , Eryu Guan , Marc Dionne , Jeffrey Altman , linux-afs@lists.infradead.org Subject: [PATCH v2 2/6] generic/314, afs: Allow for a filesystem that doesn't honour SGID inheritance Date: Mon, 24 Apr 2023 15:10:38 +0100 Message-Id: <20230424141042.450535-3-dhowells@redhat.com> In-Reply-To: <20230424141042.450535-1-dhowells@redhat.com> References: <20230424141042.450535-1-dhowells@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org 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 Reviewed-by: Darrick J. Wong cc: linux-afs@lists.infradead.org Reviewed-by: Zorro Lang --- 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 8b8cb714..00c5fcfe 100644 --- a/common/rc +++ b/common/rc @@ -5097,6 +5097,15 @@ _save_coredump() $COREDUMP_COMPRESSOR -f "$out_file" } +_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 45d2756b..a3588ee9 100644 --- a/doc/requirement-checking.txt +++ b/doc/requirement-checking.txt @@ -16,6 +16,7 @@ they have. This is done with _require_ macros, which may take parameters. _require_chattr _require_exportfs + _require_sgid_inheritance (3) System call requirements. @@ -97,6 +98,12 @@ _require_exportfs The test also requires the use of the open_by_handle_at() system call and will be skipped if it isn't available in the kernel. +_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 9449d30f..dd617089 100755 --- a/tests/generic/314 +++ b/tests/generic/314 @@ -17,6 +17,7 @@ _supported_fs generic _require_test _require_user _require_chown +_require_sgid_inheritance rm -rf $TEST_DIR/$seq-dir From patchwork Mon Apr 24 14:10:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 13222246 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3F87DC7618E for ; Mon, 24 Apr 2023 14:11:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231733AbjDXOL5 (ORCPT ); Mon, 24 Apr 2023 10:11:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231715AbjDXOLx (ORCPT ); Mon, 24 Apr 2023 10:11:53 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C75E393DD for ; Mon, 24 Apr 2023 07:11:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1682345467; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5H1Lt2zv8UWKkyIPzbmGo3PUjh7uVDdJthgSW3MJGRo=; b=d3LnNyM8rYa2rlb3oap1LJtOMeIi8QVUS9NlD9kiF68JNeoDAF60bSRmN+vJpbqaEqtEBy Hb3EQTsDdcc70QXg1995cby0wdY5MfngDoKGXLUgrhNBHwW8PZk114oFZX37/g67fIJOsH 7qo59fA4mqFeEZ50wE3TVUb03aEyGgo= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-504--6DFc9mNO2i8LHJfCvPrLw-1; Mon, 24 Apr 2023 10:10:56 -0400 X-MC-Unique: -6DFc9mNO2i8LHJfCvPrLw-1 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9BD903C0ED60; Mon, 24 Apr 2023 14:10:55 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.42.28.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id A6682492C13; Mon, 24 Apr 2023 14:10:54 +0000 (UTC) From: David Howells To: fstests@vger.kernel.org Cc: David Howells , "Darrick J. Wong" , Eryu Guan , Marc Dionne , Jeffrey Altman , linux-afs@lists.infradead.org Subject: [PATCH v2 3/6] generic/317, afs: Allow for a filesystem not to honour the local uid/gid Date: Mon, 24 Apr 2023 15:10:39 +0100 Message-Id: <20230424141042.450535-4-dhowells@redhat.com> In-Reply-To: <20230424141042.450535-1-dhowells@redhat.com> References: <20230424141042.450535-1-dhowells@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org Each AFS cell has it's own set of user IDs that is uses internally, in its ACL system and in its protection management protocol. The user ID used by the fileserver is selected from the set belonging to the fileserver's cell according to the authentication token associated with an RPC operation - and this is set as a file's user ID when it is created. This means that tests that expect to set a UID and see the same UID still set afterwards will fail. Add a "_require_use_local_uidgid" clause to indicate that a test expects internal UID/GID information to be seen in the stat output and should be skipped if AFS's case. Signed-off-by: David Howells cc: linux-afs@lists.infradead.org Reviewed-by: Zorro Lang --- common/rc | 9 +++++++++ doc/requirement-checking.txt | 8 ++++++++ tests/generic/317 | 1 + 3 files changed, 18 insertions(+) diff --git a/common/rc b/common/rc index 00c5fcfe..e0978a03 100644 --- a/common/rc +++ b/common/rc @@ -5106,6 +5106,15 @@ _require_sgid_inheritance() esac } +_require_use_local_uidgid() +{ + case $FSTYP in + afs) + _notrun "$FSTYP doesn't honour local uid and gid" + ;; + esac +} + init_rc ################################################################################ diff --git a/doc/requirement-checking.txt b/doc/requirement-checking.txt index a3588ee9..f24ecf5c 100644 --- a/doc/requirement-checking.txt +++ b/doc/requirement-checking.txt @@ -17,6 +17,7 @@ they have. This is done with _require_ macros, which may take parameters. _require_chattr _require_exportfs _require_sgid_inheritance + _require_use_local_uidgid (3) System call requirements. @@ -104,6 +105,13 @@ _require_sgid_inheritance of the SGID bit and the GID from a marked directory. The test will be skipped if not supported. +_require_use_local_uidgid + + The test requires that the $TEST_DEV filesystem sets the uid and gid of a + newly created file to the creating process's fsuid and fsgid. Remote + filesystems, for example, may choose other settings or not even have these + concepts available. The test will be skipped if not supported. + ======================== SYSTEM CALL REQUIREMENTS diff --git a/tests/generic/317 b/tests/generic/317 index 134d5e3f..39cccc8b 100755 --- a/tests/generic/317 +++ b/tests/generic/317 @@ -38,6 +38,7 @@ _require_user _require_ugid_map _require_userns _require_chown +_require_use_local_uidgid qa_user_id=`id -u $qa_user` _filter_output() From patchwork Mon Apr 24 14:10:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 13222247 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E6827C77B73 for ; Mon, 24 Apr 2023 14:11:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231315AbjDXOL6 (ORCPT ); Mon, 24 Apr 2023 10:11:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46544 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231755AbjDXOLx (ORCPT ); Mon, 24 Apr 2023 10:11:53 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4CB538A62 for ; Mon, 24 Apr 2023 07:11:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1682345465; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WSLVXz6VcgrnOmoX2Kb+W3oz8Pemf5mI9LVXUVdD7vQ=; b=EIyzdVeuv0bE0uhT3hHY9IrUVQxWYzFWHlyr0jQoQ5J3VFEsXuuJIjwHEjejYUAn9w+ua+ ApALtMWfkw1Xo3nZEmrGKIudHAD/8cXtp7WvI65z6ULeO3qvP2YzA64WHcgPbk3xIOCOB0 kHXQAVCGCPWQZ4d6BIyaVpJLQxs7GyA= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-26-x_CyZSDGOziTPrqsTup26w-1; Mon, 24 Apr 2023 10:11:00 -0400 X-MC-Unique: x_CyZSDGOziTPrqsTup26w-1 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 86A0F3814941; Mon, 24 Apr 2023 14:10:59 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.42.28.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id A8673492C13; Mon, 24 Apr 2023 14:10:56 +0000 (UTC) From: David Howells To: fstests@vger.kernel.org Cc: David Howells , "Darrick J. Wong" , Eryu Guan , Marc Dionne , Jeffrey Altman , linux-afs@lists.infradead.org Subject: [PATCH v2 4/6] generic/123, generic/128, afs: Allow for an fs that does its own perm management Date: Mon, 24 Apr 2023 15:10:40 +0100 Message-Id: <20230424141042.450535-5-dhowells@redhat.com> In-Reply-To: <20230424141042.450535-1-dhowells@redhat.com> References: <20230424141042.450535-1-dhowells@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org The AFS filesystem has its own distributed permission management system that's based on a per-cell user and group database used in conjunction with ACLs. The user is determined by the authentication token acquired from the kaserver or Kerberos, not by the local fsuid/fsgid. For the most part, the uid, gid and mask on a file are ignored. The generic/123 and generic/128 tests check that the UNIX permission bits do what would normally be expected of them - but this fails on AFS. Using "su" to change the user is not effective on AFS. Instead, "keyctl session" would need to be used and an alternative authentication token would need to be obtained. Provide a "_require_unix_perm_checking" clause so that these tests can be suppressed in cases such as AFS. Signed-off-by: David Howells Reviewed-by: Darrick J. Wong Reviewed-by: Zorro Lang --- common/rc | 9 +++++++++ doc/requirement-checking.txt | 8 ++++++++ tests/generic/123 | 1 + tests/generic/128 | 1 + 4 files changed, 19 insertions(+) diff --git a/common/rc b/common/rc index e0978a03..4dfc3301 100644 --- a/common/rc +++ b/common/rc @@ -5115,6 +5115,15 @@ _require_use_local_uidgid() esac } +_require_unix_perm_checking() +{ + case $FSTYP in + afs) + _notrun "$FSTYP doesn't perform traditional UNIX perm checking" + ;; + esac +} + init_rc ################################################################################ diff --git a/doc/requirement-checking.txt b/doc/requirement-checking.txt index f24ecf5c..802bf2a3 100644 --- a/doc/requirement-checking.txt +++ b/doc/requirement-checking.txt @@ -18,6 +18,7 @@ they have. This is done with _require_ macros, which may take parameters. _require_exportfs _require_sgid_inheritance _require_use_local_uidgid + _require_unix_perm_checking (3) System call requirements. @@ -112,6 +113,13 @@ _require_use_local_uidgid filesystems, for example, may choose other settings or not even have these concepts available. The test will be skipped if not supported. +_require_unix_perm_checking + + The test requires that the $TEST_DEV filesystem performs traditional UNIX + file permissions checking. A remote filesystem, for example, might use + some alternative distributed permissions model involving authentication + tokens rather than the local fsuid/fsgid. + ======================== SYSTEM CALL REQUIREMENTS diff --git a/tests/generic/123 b/tests/generic/123 index f9b28abb..43f90b46 100755 --- a/tests/generic/123 +++ b/tests/generic/123 @@ -28,6 +28,7 @@ _supported_fs generic _require_test _require_user +_require_unix_perm_checking my_test_subdir=$TEST_DIR/123subdir diff --git a/tests/generic/128 b/tests/generic/128 index dc1d43f4..924d6aa8 100755 --- a/tests/generic/128 +++ b/tests/generic/128 @@ -18,6 +18,7 @@ _supported_fs generic _require_scratch _require_user _require_chmod +_require_unix_perm_checking _scratch_mkfs >/dev/null 2>&1 _scratch_mount "-o nosuid" From patchwork Mon Apr 24 14:10:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 13222245 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98850C77B61 for ; Mon, 24 Apr 2023 14:11:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231378AbjDXOL4 (ORCPT ); Mon, 24 Apr 2023 10:11:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46572 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231583AbjDXOLx (ORCPT ); Mon, 24 Apr 2023 10:11:53 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 626309038 for ; Mon, 24 Apr 2023 07:11:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1682345466; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cYbc5AtNLEZfnSaGtcFFZyBlvVMJOdnhjqqfGs0avcE=; b=MHBWJeMhLIO8pbztCw4dFRdXZjkZj5Z4KVV9ImLVZwY/EPtutIYJHVsUO9h7LKLWnrjE82 zO8m66zoNtZTE0R3yZMIFNtPYT0noEaDjNcdWYpWBzpGyZ5kAaen354rESATmKnBXEv7ZE jNCtV8xNGj+8UV90pxxBWKrV0vVTcKw= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-195-7BTwzkR_MDis9g6Gd3LT0g-1; Mon, 24 Apr 2023 10:11:02 -0400 X-MC-Unique: 7BTwzkR_MDis9g6Gd3LT0g-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7454E85A5A3; Mon, 24 Apr 2023 14:11:02 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.42.28.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 423854C83A; Mon, 24 Apr 2023 14:11:01 +0000 (UTC) From: David Howells To: fstests@vger.kernel.org Cc: David Howells , "Darrick J. Wong" , Eryu Guan , Marc Dionne , Jeffrey Altman , linux-afs@lists.infradead.org Subject: [PATCH v2 5/6] generic/531: Check for O_TMPFILE Date: Mon, 24 Apr 2023 15:10:41 +0100 Message-Id: <20230424141042.450535-6-dhowells@redhat.com> In-Reply-To: <20230424141042.450535-1-dhowells@redhat.com> References: <20230424141042.450535-1-dhowells@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org Make generic/531 check that the filesystem under test supports O_TMPFILE before attempting to test it. Signed-off-by: David Howells cc: linux-afs@lists.infradead.org Reviewed-by: Zorro Lang --- tests/generic/531 | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/generic/531 b/tests/generic/531 index 5e84ca97..e5f3dddd 100755 --- a/tests/generic/531 +++ b/tests/generic/531 @@ -20,6 +20,7 @@ testfile=$TEST_DIR/$seq.txt # real QA test starts here _supported_fs generic _require_scratch +_require_xfs_io_command "-T" _require_test_program "t_open_tmpfiles" _scratch_mkfs >> $seqres.full 2>&1 From patchwork Mon Apr 24 14:10:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 13222248 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DECF9C77B61 for ; Mon, 24 Apr 2023 14:12:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231583AbjDXOMC (ORCPT ); Mon, 24 Apr 2023 10:12:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46824 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229625AbjDXOMB (ORCPT ); Mon, 24 Apr 2023 10:12:01 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 143229ECF for ; Mon, 24 Apr 2023 07:11:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1682345472; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=f8VTud3w63WCYqJ57XpfS96mqXqPXVZrjfaAdeZ100w=; b=djzcSV+Y7UrgUPKwJ+iK3lFrTZs1RRJFJqZ0gMbjlADq3rmRszmXcKXoRh7dd7Pt8mbqVK F7u5QuKKFJZlS5RuhttcVx97vZOcCZz/P+ZH/isa54TWEXtwnHktrN98Bc+QdD4vkhY9bl NqpQZ9FnZqILvCKaSmzRCVsLhftAaO8= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-61-8m0qqJItPPOILzLywCbtsA-1; Mon, 24 Apr 2023 10:11:06 -0400 X-MC-Unique: 8m0qqJItPPOILzLywCbtsA-1 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 14E1985A5A3; Mon, 24 Apr 2023 14:11:06 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.42.28.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 80D6B492C13; Mon, 24 Apr 2023 14:11:03 +0000 (UTC) From: David Howells To: fstests@vger.kernel.org Cc: David Howells , "Darrick J. Wong" , Eryu Guan , Marc Dionne , Jeffrey Altman , linux-afs@lists.infradead.org Subject: [PATCH v2 6/6] generic/696: AFS doesn't support the "noacl" command line option Date: Mon, 24 Apr 2023 15:10:42 +0100 Message-Id: <20230424141042.450535-7-dhowells@redhat.com> In-Reply-To: <20230424141042.450535-1-dhowells@redhat.com> References: <20230424141042.450535-1-dhowells@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org AFS doesn't support the "noacl" command line option. ACLs are mandatory and interpreted by the server. Signed-off-by: David Howells cc: linux-afs@lists.infradead.org Reviewed-by: Zorro Lang --- tests/generic/696 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/generic/696 b/tests/generic/696 index 178d78e1..55a2fd5a 100755 --- a/tests/generic/696 +++ b/tests/generic/696 @@ -31,7 +31,10 @@ _scratch_mkfs >$seqres.full 2>&1 $here/src/vfs/vfstest --test-setgid-create-umask \ --device "$TEST_DEV" --mount "$TEST_DIR" --fstype "$FSTYP" -export MOUNT_OPTIONS="-o noacl $MOUNT_OPTIONS" +if [ "$FSTYP" != afs ] +then + export MOUNT_OPTIONS="-o noacl $MOUNT_OPTIONS" +fi # Also test S_ISGID stripping whether works correctly on underflying filesystem # that supports noacl feature. From patchwork Fri Apr 28 20:06:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 13226777 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AD142C77B60 for ; Fri, 28 Apr 2023 20:07:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230402AbjD1UHN (ORCPT ); Fri, 28 Apr 2023 16:07:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38864 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229997AbjD1UHM (ORCPT ); Fri, 28 Apr 2023 16:07:12 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EBE2E213C for ; Fri, 28 Apr 2023 13:06:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1682712385; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eX3IbrZGzex8rDEWIwbHCtA6yEYf1iDXHTX3LQq4u/E=; b=JoO5nCb4ToUNWDqIN4lXuRJQQxOzLiPWBpA9j/T16sSxNUIi8yyTcJECY3lBldgJ7E7b9s EtwLaDT1ea/DAytdnRiFBRRy8MOyDoBUOPzn3SZqEJxFnPQGlnCfYxxUJXGP7Twi5n7W2e O54nSGTu4U6dJ839I3JqWJjDofCWy9E= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-502-BJ3saOqPNyu4FBN-c-KfKQ-1; Fri, 28 Apr 2023 16:06:21 -0400 X-MC-Unique: BJ3saOqPNyu4FBN-c-KfKQ-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5BDB31C05147; Fri, 28 Apr 2023 20:06:19 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.42.28.174]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5A5B51121314; Fri, 28 Apr 2023 20:06:18 +0000 (UTC) Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom. Registered in England and Wales under Company Registration No. 3798903 From: David Howells In-Reply-To: <20230424141042.450535-1-dhowells@redhat.com> References: <20230424141042.450535-1-dhowells@redhat.com> To: fstests@vger.kernel.org, Zorro Lang Cc: dhowells@redhat.com, "Darrick J. Wong" , Eryu Guan , Marc Dionne , Jeffrey Altman , linux-afs@lists.infradead.org Subject: [PATCH v2 7/6] Doc changes for afs MIME-Version: 1.0 Content-ID: <1185264.1682712377.1@warthog.procyon.org.uk> Date: Fri, 28 Apr 2023 21:06:17 +0100 Message-ID: <1185265.1682712377@warthog.procyon.org.uk> X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org Documentation changes for afs. Signed-off-by: David Howells cc: linux-afs@lists.infradead.org Reviewed-by: Zorro Lang --- README | 3 ++- README.config-sections | 7 +++++++ common/rc | 4 +++- doc/testing-afs.txt | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 2 deletions(-) diff --git a/README b/README index 4ee877a9..7eb6ac1b 100644 --- a/README +++ b/README @@ -291,9 +291,10 @@ Running tests: - If you want to run all tests regardless of what group they are in (including dangerous tests), use the "all" group: ./check -g all - To randomize test order: ./check -r [test(s)] - - You can explicitly specify NFS/CIFS/OVERLAY, otherwise + - You can explicitly specify NFS/AFS/CIFS/OVERLAY, otherwise the filesystem type will be autodetected from $TEST_DEV: - for running nfs tests: ./check -nfs [test(s)] + - for running afs tests: ./check -afs [test(s)] - for running cifs/smb3 tests: ./check -cifs [test(s)] - for overlay tests: ./check -overlay [test(s)] The TEST and SCRATCH partitions should be pre-formatted diff --git a/README.config-sections b/README.config-sections index 4f1a4dc6..a42d9d7b 100644 --- a/README.config-sections +++ b/README.config-sections @@ -128,3 +128,10 @@ TEST_DIR=/mnt/gluster/test TEST_DEV=192.168.1.1:testvol SCRATCH_MNT=/mnt/gluster/scratch SCRATCH_DEV=192.168.1.1:scratchvol + +[afs] +FSTYP=afs +TEST_DEV=%example.com:xfstest.test +TEST_DIR=/mnt/xfstest.test +SCRATCH_DEV=%example.com:xfstest.scratch +SCRATCH_MNT=/mnt/xfstest.scratch diff --git a/common/rc b/common/rc index 4dfc3301..e3805fcf 100644 --- a/common/rc +++ b/common/rc @@ -1617,9 +1617,11 @@ _require_scratch_nocheck() fi ;; afs) + # We only support RW volumes (marked with a '%') + # We don't support RO volumes (marked with a '#') echo $SCRATCH_DEV | grep -q "^%" > /dev/null 2>&1 if [ -z "$SCRATCH_DEV" -o "$?" != "0" ]; then - _notrun "this test requires a valid \$SCRATCH_DEV" + _notrun "this test requires a valid \$SCRATCH_DEV (must be a RW volume)" fi if [ ! -d "$SCRATCH_MNT" ]; then _notrun "this test requires a valid \$SCRATCH_MNT" diff --git a/doc/testing-afs.txt b/doc/testing-afs.txt new file mode 100644 index 00000000..75ed1331 --- /dev/null +++ b/doc/testing-afs.txt @@ -0,0 +1,36 @@ + =========== + TESTING AFS + =========== + +xfstests can be used with the Linux kernel AFS filesystem (kafs). kafs mounts +each volume as a separate volume and, as such, allows them to be individually +mounted on arbitrary paths. This allows xfstests to be easily configured to +use specific volumes. This doesn't work with OpenAFS, say, as that operates +with everything in a single superblock. + +xfstests requires that the volumes specified by forced to use RW volumes by +prefixing the mount device with '%' rather than '#' as per the format of a +mountpoint string: + + % + +using the workstation cell, or: + + %: + +using an explicit cell. + +For example: + + FSTYP=afs + TEST_DEV=%example.com:xfstest.test + TEST_DIR=/mnt/xfstest.test + SCRATCH_DEV=%example.com:xfstest.scratch + SCRATCH_MNT=/mnt/xfstest.scratch + +will use the xfstest.test and xfstest.scratch volumes located in the +example.com cell. + + +Note that AFS in general and kafs in particular lack a number of features that +can be tested for and so a lot of tests will be skipped.