From patchwork Wed Oct 12 01:38:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13004566 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 68F7EC433FE for ; Wed, 12 Oct 2022 01:38:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229507AbiJLBie (ORCPT ); Tue, 11 Oct 2022 21:38:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55938 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229454AbiJLBid (ORCPT ); Tue, 11 Oct 2022 21:38:33 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3B876857F2; Tue, 11 Oct 2022 18:38:32 -0700 (PDT) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29BLiDMp009813; Wed, 12 Oct 2022 01:38:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2022-7-12; bh=W7iz8uy/xmveH5KOkog2gTgXVHRBWzV0lNShkBs7g74=; b=MwcXjXGDB+1RxmpS3vDckmKYVu5L4o+eXhlhhgniN0ZidgIiQUCgCA02jKT7rYwnij3q XyklHAB2x9X4wmDRPnLGDil6mprV0kd368QZdc/TFFoqz2c8uuDUAoqjOydCO37b8RNn DxzZtVw7hoYjEf24DkB51Y5uzQrLYO1K/LUHkjKPB/Q9YkRxPahS1+ymBDTL0ldzDRn3 beuN5NWBd0k5zERpKM29QmNGh5MM8fWGPw10byiY4fCqOdadWNxZu2sEMlL2R941iOhP Y9hnumXffiyNMi/aAgE3VLq5fVkVV69JGkQrliq12XeaY+C8nGUmnnRzleaGctzjAgcn xQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3k31rtgj7u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 12 Oct 2022 01:38:31 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29BMWw54008701; Wed, 12 Oct 2022 01:38:31 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2175.outbound.protection.outlook.com [104.47.55.175]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3k2yn4db3c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 12 Oct 2022 01:38:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AWLCGqCVYM4meVQtkd8f2MNLHII82Tjj2KgNYd6qCHD+QSYnTgeWzvQiZzElYljzxY5rDGEdHywZlQ6lqfy5K7VNlPSnfw+tSDtt8eWYVUmPJ3f2F3+8oEn1etkg58Xymezt3Y5gjbxKhF4hnqHJj+YUGry5MYV+sVQX9BwuaFqsun7oeMqYnlhTDnyhGlWym4wEzkU8izF1UJSRUA1Mm5asSxsZjnKXeTCCkowMAxPC2TAHvalTp4MVjYUnCKNRdoyAjVQ+K1sSMx/E0rvL+dRZmVrZ9sWQ+ATbIY/i7Ug+X8iM+9JdBVDrqRX7s1Yjq1kERIZs7rxhPxcaqHcluQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=W7iz8uy/xmveH5KOkog2gTgXVHRBWzV0lNShkBs7g74=; b=D2QxdQnMdNCHgVtf1zU9d9NIli5+5VAenzDE0Ee9uM247JYm3CddP+6jFkar+ftl9dlPjVkaX8I03D28It7pMKxze60L54gOhGi+k/E0vJPJmgd3+mbhZtboQ4vH4+xt+KpGzlID7Mz965YsXfXVaKXMNfQK7+LTsaX9dm2tmMmdSuYMG/fl21gY8QpAAwwMqh3mVSMpJpavYA1RDO4L83hdVn7PPe+0UaK77G0BGMVxCPAKtR/ueyvz3REmptQy6IvRN6jlqLianY9SsHTaJ/UiZHo2mu2af1j1kRA3oh8NXvXaiBYiMi4sgNCGHHQEYHzdNWA7p7iEqpsjBgZvTw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=W7iz8uy/xmveH5KOkog2gTgXVHRBWzV0lNShkBs7g74=; b=JN8aB2t7aLy8cWDLBGC12n2MZHnjz8l7RqgEVJ6d8zGIt+PCmWeNDfJVbXyG1dgeDE+Ud7WXiOmV0XTPWtBG69UkniVGTs+fYoAIS2HwDnZnPECsACM71qLKUrkn+4nxY6OgBeb9p9ss1t3bfnHlpRV2XACZ9uc9hbbn4xTNm/8= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by SA1PR10MB5686.namprd10.prod.outlook.com (2603:10b6:806:236::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Wed, 12 Oct 2022 01:38:29 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::bf88:77e2:717f:8b9a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::bf88:77e2:717f:8b9a%9]) with mapi id 15.20.5709.021; Wed, 12 Oct 2022 01:38:29 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org, fstests@vger.kernel.org Subject: [PATCH v2 1/4] common: add helpers for parent pointer tests Date: Tue, 11 Oct 2022 18:38:09 -0700 Message-Id: <20221012013812.82161-2-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20221012013812.82161-1-catherine.hoang@oracle.com> References: <20221012013812.82161-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BYAPR21CA0002.namprd21.prod.outlook.com (2603:10b6:a03:114::12) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BLAPR10MB5316:EE_|SA1PR10MB5686:EE_ X-MS-Office365-Filtering-Correlation-Id: c67bc105-d6cb-4db6-ddfc-08daabf276a0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: k+5ixC6iijjQo4LfNwEM6xJUifEz2CtGTbCdMEZ61x90Ov+PbnHJWEMP4du2ePtIzT06sVqdzF80F5OmN4AQDJ4TiG4sDLM8LqW68a1qkuh4DmSSk7FFPBwALfbU9zOE1CSZOCdpi4hTmbDPA+ZNqpC8o1KTsSqav8AdmT2BmtqOywZ775DsVBFEkQTrJmSGoQ9drGBp9iOKB88WIugSR4pLnF/q32YVLES1YOEQsS8IpitRBBimU4GOJHmb9qULr+gh2FxuHVXt8urnkChqCJmHVaHY4mWKnd/tLp36gXJKK5ECipTtWv1sJidq/a9iZ9T4Op1AYTDdkE7s05UfG5iR3w1Gb63BNZCt5SSJhF5y5YyaLOQDtsoCxnK2hKdN1ZtBl39BLOjkXn1pf9g+TkEGfydWRe42ZbpztazN94ndtgknPr/jFWM6d48vMqmnkuGvLHm0ZxZf3s/+cZkod0bq0zyzticLXu8cx+lyw0W65r2p5OObjGuN4jU/lbVV5niGEuPOi82/tHTnjr+teliRgoJJZ9PJEjACzE/8OLcFizYAShy1WX+12lR+ahk0Yeir2FBVTGFrBAfQDm2vTmuhEdhT/JVnYAP0xBnUvH3u4Mmfq+NRucOu7XsUsdCCNSc3xSMjCjD3S8pm/RpVa13sapwEhqc1LeZU7CeALPv2PzWmZ08gwNPNfL24F6ARdc+78KeX7IWHr6NNmeHgUXm3f2c+k20ZHKrz92eomMZtPCw5EWAx9mk+KksOWCkb X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(366004)(376002)(346002)(136003)(39860400002)(451199015)(6666004)(1076003)(41300700001)(5660300002)(44832011)(478600001)(6512007)(6486002)(450100002)(66946007)(86362001)(316002)(36756003)(66556008)(8676002)(8936002)(6506007)(2616005)(66476007)(83380400001)(38100700002)(186003)(2906002)(21314003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Tmwc57fXFb2SeEmdkglPkdf0Ct0fSY3eVsX7VA3zeMa6IKU/8/H25XY2bCqBQ3ybMwY4fExtPkBRqPD0vOqwBLIMOG1GDqMg+WfapsgIt0k1SkcfJ8ewP35eSCMGNOK+eE3crMdr+th6mc7CR/JgrA/h9HRJnEaM7JkVokwCLyeLNzGoN3hS9tc7SI5a/yHUhZ+HBtBqIXsJM0TV7X70VUz8jW9f21Z81cKlP2TyYyR4gA1OdKm9unTFNDPQlZKAsZcNdYGPVld+PpeQZTCqfjOUW8KREKaWyqASjLZWZG/0PNyjP6zCtFZS34qnheY/aShvuZw9T3Ot0sHuWywLcJ+L4A5jI+e6zmUtEGoZwH3mmOaR9hA6NjFnVqKd4KdlK6ELzqHJEdz6vRIRWOhwXk1bN492izJtsMmzGysmVAdUik1A5dbERS/OKi52gAsD6G3XMNq+u2gVMVP0OaDoDFmEzDJKNs2zWTwvAjWCUiPEho/cc0mFlmchqz30IZsQ+SPx819zVHLhrk/0ZQAVLGZ1tf9/3eZuFb7habB787tZQAdadove0v4WXaTSalx6g1pL1DwURvkgZq7aLfVv1S5BGMKEEalO2gGkLnbrj9kLy//D5jCY4t2bxLFeYFupzOdb9W/oae01Z3MceopcGApOU6F5M0CSW3ZHqynyvROXN6H09iPG4CRSjNC5TsicL51Tr1fCLDTqV5FVfUlwYuCoOrTyMRpMPt8m7Q+pykGtwXtJZquogYauF2qVA3iUMkwo4ynnQKwe5UYqlWu1K742j5HBpmDu4+KbtgiVs1+D3nUN2mmoIe3BXDe+dwpGQ3/WAiETHjLrgd1C8e78qy0pzoG52DLgAPEfDBNou7Q0KrvuDENaW/M0QLADGpZGsEOzaimmvpYq6IKix1hN0UITg6yRnpkMeiDAweh1Eg/5QW3adgkhaJ0Q/LAXevbGj2LSReA+DCBtH0t4GwoxY2TtLCOOQnaGGRCupib6q5Ouq/rgZ9QIj8+FbXBbau4PumChp3M3kI1HO3jAYCZmk841spEVU3prlHVEn4o8kZ+JncoksJOZG6BjiUHmw60ZWI2Slc9EYGZbawvK3+fhAl+J+yJaewox+9aSbwpvA1TIilwhCi1bQciMjUXTbne0Ya8Vwz0vPzIyGWZzJ/t6geF4VisiYrVrfI0BKxAKeMtB41hMPRbxEKPElKVTFhCE0RCPQ9GOk8J40I8on2HNj7KSS6EMLq57z+Hoo3Ck1OIH3hldsEkyuiU7nJ9dJ3HhGgwVcIT//wzpwDOgltjSef8IZxtglexi1Gc4dxQjAQm/z7W/Vosiu2PXrV7LHiySfUV1RogzgTB4u4qR/Pd+34KZJYnXudhSHn3g00+53TXkK+HketqELjfdwJoFgKbN0Jut+RM1z/vVqbbj+Gibz20eqUJjOtYN5kSjGQQSjmflPPVhxOTK5diu4GTqQmGbsPjcjjsD28Z1053DmCZWa7CG9BP7YLYfSYyzFMzuDe8sBpHJBtQMDtl404nAeLOGU4SsFURuFHOW3yehjaYPmxcvXcWvmInZosxIDGBL6mOhtOkrfTgHaHA7nMZhLDHZFi4E8rjheJUQZgk7Ch/PjD6GBPQJXcPsFmGReLu97YHdXQmy60xKdgCf1+7kW3XI3URXtOi14MFLycRG261jFg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c67bc105-d6cb-4db6-ddfc-08daabf276a0 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2022 01:38:28.9066 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: YJbEUda0xB0A/COuTRj5NkSfBaykQnmRspzgsBo+DlcVUrQbxyzlIF6HYydKBetl0kyiOoeLFFTh7VkedbRxZRfwXcwNbPdEnt2H1A3Mlow= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5686 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-12_01,2022-10-11_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 bulkscore=0 phishscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210120009 X-Proofpoint-GUID: W_YulvgjVv5VC4kClsOlRLuN4jHnzorI X-Proofpoint-ORIG-GUID: W_YulvgjVv5VC4kClsOlRLuN4jHnzorI Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Allison Henderson Add helper functions in common/parent to parse and verify parent pointers. Also add functions to check that mkfs, kernel, and xfs_io support parent pointers. Signed-off-by: Allison Henderson Signed-off-by: Catherine Hoang --- common/parent | 198 ++++++++++++++++++++++++++++++++++++++++++++++++++ common/rc | 3 + common/xfs | 12 +++ 3 files changed, 213 insertions(+) create mode 100644 common/parent diff --git a/common/parent b/common/parent new file mode 100644 index 00000000..a0ba7d92 --- /dev/null +++ b/common/parent @@ -0,0 +1,198 @@ +# +# Parent pointer common functions +# + +# +# parse_parent_pointer parents parent_inode parent_pointer_name +# +# Given a list of parent pointers, find the record that matches +# the given inode and filename +# +# inputs: +# parents : A list of parent pointers in the format of: +# inode/generation/name_length/name +# parent_inode : The parent inode to search for +# parent_name : The parent name to search for +# +# outputs: +# PPINO : Parent pointer inode +# PPGEN : Parent pointer generation +# PPNAME : Parent pointer name +# PPNAME_LEN : Parent pointer name length +# +_parse_parent_pointer() +{ + local parents=$1 + local pino=$2 + local parent_pointer_name=$3 + + local found=0 + + # Find the entry that has the same inode as the parent + # and parse out the entry info + while IFS=\/ read PPINO PPGEN PPNAME_LEN PPNAME; do + if [ "$PPINO" != "$pino" ]; then + continue + fi + + if [ "$PPNAME" != "$parent_pointer_name" ]; then + continue + fi + + found=1 + break + done <<< $(echo "$parents") + + # Check to see if we found anything + # We do not fail the test because we also use this + # routine to verify when parent pointers should + # be removed or updated (ie a rename or a move + # operation changes your parent pointer) + if [ $found -eq "0" ]; then + return 1 + fi + + # Verify the parent pointer name length is correct + if [ "$PPNAME_LEN" -ne "${#parent_pointer_name}" ] + then + echo "*** Bad parent pointer:"\ + "name:$PPNAME, namelen:$PPNAME_LEN" + fi + + #return sucess + return 0 +} + +# +# _verify_parent parent_path parent_pointer_name child_path +# +# Verify that the given child path lists the given parent as a parent pointer +# and that the parent pointer name matches the given name +# +# Examples: +# +# #simple example +# mkdir testfolder1 +# touch testfolder1/file1 +# verify_parent testfolder1 file1 testfolder1/file1 +# +# # In this above example, we want to verify that "testfolder1" +# # appears as a parent pointer of "testfolder1/file1". Additionally +# # we verify that the name record of the parent pointer is "file1" +# +# +# #hardlink example +# mkdir testfolder1 +# mkdir testfolder2 +# touch testfolder1/file1 +# ln testfolder1/file1 testfolder2/file1_ln +# verify_parent testfolder2 file1_ln testfolder1/file1 +# +# # In this above example, we want to verify that "testfolder2" +# # appears as a parent pointer of "testfolder1/file1". Additionally +# # we verify that the name record of the parent pointer is "file1_ln" +# +_verify_parent() +{ + local parent_path=$1 + local parent_pointer_name=$2 + local child_path=$3 + + local parent_ppath="$parent_path/$parent_pointer_name" + + # Verify parent exists + if [ ! -d $SCRATCH_MNT/$parent_path ]; then + _fail "$SCRATCH_MNT/$parent_path not found" + else + echo "*** $parent_path OK" + fi + + # Verify child exists + if [ ! -f $SCRATCH_MNT/$child_path ]; then + _fail "$SCRATCH_MNT/$child_path not found" + else + echo "*** $child_path OK" + fi + + # Verify the parent pointer name exists as a child of the parent + if [ ! -f $SCRATCH_MNT/$parent_ppath ]; then + _fail "$SCRATCH_MNT/$parent_ppath not found" + else + echo "*** $parent_ppath OK" + fi + + # Get the inodes of both parent and child + pino="$(stat -c '%i' $SCRATCH_MNT/$parent_path)" + cino="$(stat -c '%i' $SCRATCH_MNT/$child_path)" + + # Get all the parent pointers of the child + parents=($($XFS_IO_PROG -x -c \ + "parent -f -i $pino -n $parent_pointer_name" $SCRATCH_MNT/$child_path)) + if [[ $? != 0 ]]; then + _fail "No parent pointers found for $child_path" + fi + + # Parse parent pointer output. + # This sets PPINO PPGEN PPNAME PPNAME_LEN + _parse_parent_pointer $parents $pino $parent_pointer_name + + # If we didnt find one, bail out + if [ $? -ne 0 ]; then + _fail "No parent pointer record found for $parent_path"\ + "in $child_path" + fi + + # Verify the inode generated by the parent pointer name is + # the same as the child inode + pppino="$(stat -c '%i' $SCRATCH_MNT/$parent_ppath)" + if [ $cino -ne $pppino ] + then + _fail "Bad parent pointer name value for $child_path."\ + "$SCRATCH_MNT/$parent_ppath belongs to inode $PPPINO,"\ + "but should be $cino" + fi + + echo "*** Verified parent pointer:"\ + "name:$PPNAME, namelen:$PPNAME_LEN" + echo "*** Parent pointer OK for child $child_path" +} + +# +# _verify_parent parent_pointer_name pino child_path +# +# Verify that the given child path contains no parent pointer entry +# for the given inode and file name +# +_verify_no_parent() +{ + local parent_pname=$1 + local pino=$2 + local child_path=$3 + + # Verify child exists + if [ ! -f $SCRATCH_MNT/$child_path ]; then + _fail "$SCRATCH_MNT/$child_path not found" + else + echo "*** $child_path OK" + fi + + # Get all the parent pointers of the child + local parents=($($XFS_IO_PROG -x -c \ + "parent -f -i $pino -n $parent_pname" $SCRATCH_MNT/$child_path)) + if [[ $? != 0 ]]; then + return 0 + fi + + # Parse parent pointer output. + # This sets PPINO PPGEN PPNAME PPNAME_LEN + _parse_parent_pointer $parents $pino $parent_pname + + # If we didnt find one, return sucess + if [ $? -ne 0 ]; then + return 0 + fi + + _fail "Parent pointer entry found where none should:"\ + "inode:$PPINO, gen:$PPGEN," + "name:$PPNAME, namelen:$PPNAME_LEN" +} diff --git a/common/rc b/common/rc index a25cbcd0..91b70a76 100644 --- a/common/rc +++ b/common/rc @@ -2539,6 +2539,9 @@ _require_xfs_io_command() echo $testio | grep -q "invalid option" && \ _notrun "xfs_io $command support is missing" ;; + "parent") + testio=`$XFS_IO_PROG -x -c "parent" $TEST_DIR 2>&1` + ;; "pwrite") # -N (RWF_NOWAIT) only works with direct vectored I/O writes local pwrite_opts=" " diff --git a/common/xfs b/common/xfs index ae81b3fe..7fd7cc7a 100644 --- a/common/xfs +++ b/common/xfs @@ -1399,3 +1399,15 @@ _xfs_filter_mkfs() print STDOUT "realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX\n"; }' } + +# this test requires the xfs parent pointers feature +# +_require_xfs_parent() +{ + _scratch_mkfs_xfs_supported -n parent > /dev/null 2>&1 \ + || _notrun "mkfs.xfs does not support parent pointers" + _scratch_mkfs_xfs -n parent > /dev/null 2>&1 + _try_scratch_mount >/dev/null 2>&1 \ + || _notrun "kernel does not support parent pointers" + _scratch_unmount +} From patchwork Wed Oct 12 01:38:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13004567 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 B1677C43219 for ; Wed, 12 Oct 2022 01:38:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229469AbiJLBig (ORCPT ); Tue, 11 Oct 2022 21:38:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55958 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229516AbiJLBif (ORCPT ); Tue, 11 Oct 2022 21:38:35 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 745CE857F2; Tue, 11 Oct 2022 18:38:34 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29BLiC7q002464; Wed, 12 Oct 2022 01:38:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2022-7-12; bh=8zhELrDAKcJmMTlhJCsdw7GajlgGLVWecoU1MOaSDDU=; b=MxqEdYT4k0CCAwzAbrAXMtF/g6uQQGtMRQYEg1yicIGFoi3qGvJDtqvsY35qUasASdvt yiJ38nZeFcN+31fsjJKPB4Fky6meVOIk5Fw3fy36aKfJTEhT+nw8fnxy4RDyZ8fOQG/l rCNHHQf2kJaoJkoj8hp3XgUNahFZWfot7Hh+IUvS/5vfBA/6gt0yP4fp25c+/eoziWeN UOdS0LTfjREEaKrtj5ZuOZU2lqc/d2XxjnsP5++aC7NyaZaHikKtSe2pLPCCZ1z/TXT5 3pR76n2wy37/ohlRJxWW8TTr7X/dRabxhGXa5yZS830zyEHo3leQtNYAYHPshrE+H9LF yA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3k2yt1gkex-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 12 Oct 2022 01:38:34 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29BLuGv7021845; Wed, 12 Oct 2022 01:38:33 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3k2yn4mey4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 12 Oct 2022 01:38:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ICXNCm3Jx608DF3FkPmYLOTNk+2kqSLySk2Rl/1PWP9PX5Cn0MLVeJJ/vAtA4sGKQsUJsQvF5hLUEj8YPpplfAc6hj0STyFjZE/IhTtWT8Kg6IJauAgjVbX3hn67+cn/VXqIYUlK5T0bRFXZwG269IBl8N7MsSw4mjUvd5nGUjIR8cWc4rD96piML4sEbw9+bohrnhbgE7LpOxbEDc9gkDt/eANQkcqvirNcr/UKe8MODxUFKIhjRM59J3uq/yZ4mi7E8olcSqEb7KQ+2GUoUwkUGWVK+G4LjJ+LXIOy6nDziXaiPWnrVMxehsyw/OBAG/agcmKUf0ArdQZvX4y0cQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8zhELrDAKcJmMTlhJCsdw7GajlgGLVWecoU1MOaSDDU=; b=XaiPCK7wgZ6vUOve//gZwmtlMEq/BpCmFokuBtaWkSE911HQ/QQ6yE4D9xfvHUC4vF9vr1GOKlF3bfE+eax2tO5STPclIINTQeZlh8eKEMvcndhvTV2Rpwd7QPd/AiQVn28QdjMvYF2+LuNSO7NNSj98A1gzNDMJnC+CJ7yw65SvPAs3YtoZWMOKwsfKyxCl9YNdfiN9X/QFRZ4J2Y0PKz7l3zCz4oMK0+Qo6hNQgT1fOfvP7IN3iL0lTsU65kn3IHQtg++Rc8KJHxr6Qo9mBuHvsumGs1aLxFXg7UbSdJ9Rzq2v3eYb7DiAFaGrKzPlw9/ywSi84VPlMWubIHT4zw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8zhELrDAKcJmMTlhJCsdw7GajlgGLVWecoU1MOaSDDU=; b=leeFGIm4AKKtkkmPA/SI355YOVYu6QtsbS5Q6h/OkigiRxPr+6ds0TWMJdGEzGpqGPZGqFRCg2SM+Y0B3ddGJG8GuNp10DhgxT1MX4JikJWkSRf89UsPf9gyNm/qvLNgUFjv3wl9+ENAQILQTkUsOxo75o6gylFA264B689Tnag= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by SA1PR10MB5686.namprd10.prod.outlook.com (2603:10b6:806:236::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Wed, 12 Oct 2022 01:38:31 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::bf88:77e2:717f:8b9a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::bf88:77e2:717f:8b9a%9]) with mapi id 15.20.5709.021; Wed, 12 Oct 2022 01:38:31 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org, fstests@vger.kernel.org Subject: [PATCH v2 2/4] xfs: add parent pointer test Date: Tue, 11 Oct 2022 18:38:10 -0700 Message-Id: <20221012013812.82161-3-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20221012013812.82161-1-catherine.hoang@oracle.com> References: <20221012013812.82161-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BYAPR21CA0002.namprd21.prod.outlook.com (2603:10b6:a03:114::12) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BLAPR10MB5316:EE_|SA1PR10MB5686:EE_ X-MS-Office365-Filtering-Correlation-Id: 37f49c84-3248-4db6-bf3f-08daabf27814 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: U1klq2wVXFH0ACbgaJF5JqvluuEjlJH2olCwFosFyQgLmxsGR7o02SPfTsF1TS6alnoKpw0U6J12kzrF2TxdUQrKISmUN7yEZIOwrkxOSP7OwWaHQlUnzCcYnGUJhxxH3inMf3gJ2YhO6HRwHpMzI5KZt+kvsuHpvljALOQT9GZxRG4CR+PxSDCtonkKwgNd8qv8BGRpL/qk0r+S6jDyqopEp/63HqSXys88u4J+RbIbwI131O7OFbfZcj7LfJKyUQDCGS08XfKVI6W04NUMSBiCSMpb4cnD6JRzBoBJp0T38D0x9zZSgDFliJKDcgFUMaDra5neRPE3G6aN2+S9mTgScHsCXTJa/yAmlw5ZpBUxkHhGDpDqG/bt1NFNzIs9yOKNb4f3o+PhXk1s0VROMvAoVS9vLPcK07ItD7sl6Gam/woGmtVRWtoLNVKNWHueqg0D1F36+h15uRmaAo5pP40XR3dS0RIatZqDbcGYeYDU6gOGf4onS5tyDRkcmOeLoE4iudx7dwrk+rX/ZKS7VVE8f86oWy+neVjjd6rnFfpkHAtB+3uVJBYLr9qkTVU/oaPu6zRTf07rKwTFBxYogneEqr3fHlyAMz4uM8KVUxssBP6wsKhvyVUGgujzo8pVZ+ODMd09iqPJtrhh58wu5XRFm/F261FLjtQXe+vWM1qgaJDpsYY619Yy4ZI3hCHCm6LZl60dsYVPK0EZLE8GdQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(366004)(376002)(346002)(136003)(39860400002)(451199015)(6666004)(1076003)(41300700001)(5660300002)(44832011)(478600001)(6512007)(6486002)(450100002)(66946007)(86362001)(316002)(36756003)(66556008)(8676002)(8936002)(6506007)(2616005)(66476007)(83380400001)(38100700002)(186003)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6SC803iF/N21x/pgnlTL119IvJMzsuLYFF74mB4diUxsUDeNJDrJtzy68eWByZP+OPNv25J3iCaLd6XF6AFxb9cCKCGqVYJU80Rond51s65U2WWqM2BKGnQPMhhCKLbyABr7KnaaZAql1EaIGc/IWoU6Hb/Fy8hQa9db/lJHUT2q9FqM0oM+uww3q/h+YT1b7HU/cucI2w6EErDy2rGYXR5bHrMHX5Q7iZF8yh58o9p8uh+CYK2DIPsrNhuilyvx28xsPMp/CMSPNG5i8ZPUcy25DzrEoL8A+oEuDaFQGzTQ+LJBYGzU2E8y+k4EZl0+KzK47xPT8t/L1vu6dtzAiKA4j4pEEmPfzjPsBWRGVTqVCwAf/dcM431T/kv0WekhOEY+jI8/jJhAIwh/KeSNtbOnFt/Jz4zK/MaKnEm8GWPFne2wlvlXbsvmVIg1FkjNcxICntVlJ8kf/FWTrbQFC74LcneYlD0cD+KI3bgH68yEqNShnKVjAj/pGNM/pJjvAkPTGrWPYdnJlSGkqXr8mbijValAJFfZIQkrgOPbngLa05OHj9fyseNFqZ7fYl6KjAbocwTiYbZRfQuxf7tNmn5f2tV3x90HbSRQvCO0xHuTPm7ws3qCluD3XAdqvy/VYc8NcvO3VARJBZicmhkM8mdrBT8GhUblzafWEuqB/dsxw27nrTa7EdMiZO26fngKUgFuybcetOev+LbwebsCSkaHE1Bk30mePnfi9Yj02/3e9cOWcNYUeiOzh5UKoKS6gHYOzQlcmDBHfQFW9EzyYsJM8rZq3yvDEdB97pYAucniuvG+Fu9QTAC2wfyPrG3DiR9NZBw0zM6UxIkP6u+dNy5HjETcLq7R/bqMY4BEdkSBURlma2bVOxugx3hbJ39sEG9Yt/iobgUWJYig8FE2NmALrudNJaV0g9kQdyH/CbD405XdgCe8YzeBiX69Pgxl0g1pukQ22WouD03cC5GSfELoWlHnzT9EM9hmGxNuZYZ0via3rIFix8DrBmyj2u9Y99aXI+H5w4WW9rLh73Jv0JXoOmGkuk8rQBOXZDKLZUZwGUdp7ivBFuJZcQed7ZrOVB8vAIr4bsBZf4qH4Jn/YDWgxmmPwwIkiD7m1RixH5fT6O4So0quI446ag2SKeCEctpMdeNlNfa8EDvecSuAM6CRLKP8wdwjs6N+v0jtFh9E7XAzSwbdJBStDcWHnWMuXJhp1psi6Cla5tcni4/+TrwHyfAhhyVBckhpE1jpVMtzgg/MqqTn0DYi3b5sLheQ9CjrRYqx5hb8wCpd1gewOAJCsmdcWTO+fgVH3YP3DT0lVi/7sDiFBzTxFYh6WFCpZIYKOz55a3YzbDZirIYI09Ogm0Vla3nkAz4fy0/jcciTTtYis2RowGyLEE/N9uwkQj7cvuSEpdrrMLGI5smqvnNOyz4O17dTqeTWLnzPRhNPShIwxw088BX+XERbJd2mF8NBxaXkj84GwiDCKAhZjwEeFxm+eb/aG1NtLo9AvJESLFyXdPqmlZMBl/f81j1dK8hiGMlegFcjcLgGoRaVzuEluc4tKWIQjMD3pilcRI13Lo8Bv8sNBvlMdb7NatQkTLzZ0zwpT4GxiOyTw6AZavVupu8lHe9mbt/jes5pImwisfIYbrYARksCdEj09LjtDv0HGOqPVaqSxVKMqoP1Jw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 37f49c84-3248-4db6-bf3f-08daabf27814 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2022 01:38:31.3125 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hMH9PYM9D6VD7Fn6TZTiQdeowz9lFBtkOI2cmzhh/vedVMT+MSrY60XgFpZ2v8DOn9/sLyFK3U9QVGGtL7ONNLzWPUsjgmd2uB+oGe7isXc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5686 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-12_01,2022-10-11_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210120009 X-Proofpoint-GUID: tKlDLO3XDsE703W5zgWWWsSJHjD-wf38 X-Proofpoint-ORIG-GUID: tKlDLO3XDsE703W5zgWWWsSJHjD-wf38 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Allison Henderson Add a test to verify basic parent pointers operations (create, move, link, unlink, rename, overwrite). Signed-off-by: Allison Henderson Signed-off-by: Catherine Hoang --- doc/group-names.txt | 1 + tests/xfs/554 | 125 ++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/554.out | 59 +++++++++++++++++++++ 3 files changed, 185 insertions(+) create mode 100755 tests/xfs/554 create mode 100644 tests/xfs/554.out diff --git a/doc/group-names.txt b/doc/group-names.txt index ef411b5e..8e35c699 100644 --- a/doc/group-names.txt +++ b/doc/group-names.txt @@ -77,6 +77,7 @@ nfs4_acl NFSv4 access control lists nonsamefs overlayfs layers on different filesystems online_repair online repair functionality tests other dumping ground, do not add more tests to this group +parent Parent pointer tests pattern specific IO pattern tests perms access control and permission checking pipe pipe functionality diff --git a/tests/xfs/554 b/tests/xfs/554 new file mode 100755 index 00000000..26914e4c --- /dev/null +++ b/tests/xfs/554 @@ -0,0 +1,125 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2022, Oracle and/or its affiliates. All Rights Reserved. +# +# FS QA Test 554 +# +# simple parent pointer test +# + +. ./common/preamble +_begin_fstest auto quick parent + +cleanup() +{ + cd / + rm -f $tmp.* +} + +full() +{ + echo "" >>$seqres.full + echo "*** $* ***" >>$seqres.full + echo "" >>$seqres.full +} + +# get standard environment, filters and checks +. ./common/filter +. ./common/reflink +. ./common/inject +. ./common/parent + +# Modify as appropriate +_supported_fs xfs +_require_scratch +_require_xfs_sysfs debug/larp +_require_xfs_io_error_injection "larp" +_require_xfs_parent +_require_xfs_io_command "parent" + +# real QA test starts here + +# Create a directory tree using a protofile and +# make sure all inodes created have parent pointers + +protofile=$tmp.proto + +cat >$protofile <>$seqres.full 2>&1 \ + || _fail "mkfs failed" +_check_scratch_fs + +_scratch_mount >>$seqres.full 2>&1 \ + || _fail "mount failed" + +testfolder1="testfolder1" +testfolder2="testfolder2" +file1="file1" +file2="file2" +file3="file3" +file4="file4" +file5="file5" +file1_ln="file1_link" + +echo "" +# Create parent pointer test +_verify_parent "$testfolder1" "$file1" "$testfolder1/$file1" + +echo "" +# Move parent pointer test +mv $SCRATCH_MNT/$testfolder1/$file1 $SCRATCH_MNT/$testfolder2/$file1 +_verify_parent "$testfolder2" "$file1" "$testfolder2/$file1" + +echo "" +# Hard link parent pointer test +ln $SCRATCH_MNT/$testfolder2/$file1 $SCRATCH_MNT/$testfolder1/$file1_ln +_verify_parent "$testfolder1" "$file1_ln" "$testfolder1/$file1_ln" +_verify_parent "$testfolder1" "$file1_ln" "$testfolder2/$file1" +_verify_parent "$testfolder2" "$file1" "$testfolder1/$file1_ln" +_verify_parent "$testfolder2" "$file1" "$testfolder2/$file1" + +echo "" +# Remove hard link parent pointer test +ino="$(stat -c '%i' $SCRATCH_MNT/$testfolder2/$file1)" +rm $SCRATCH_MNT/$testfolder2/$file1 +_verify_parent "$testfolder1" "$file1_ln" "$testfolder1/$file1_ln" +_verify_no_parent "$file1" "$ino" "$testfolder1/$file1_ln" + +echo "" +# Rename parent pointer test +ino="$(stat -c '%i' $SCRATCH_MNT/$testfolder1/$file1_ln)" +mv $SCRATCH_MNT/$testfolder1/$file1_ln $SCRATCH_MNT/$testfolder1/$file2 +_verify_parent "$testfolder1" "$file2" "$testfolder1/$file2" +_verify_no_parent "$file1_ln" "$ino" "$testfolder1/$file2" + +echo "" +# Over write parent pointer test +touch $SCRATCH_MNT/$testfolder2/$file3 +_verify_parent "$testfolder2" "$file3" "$testfolder2/$file3" +ino="$(stat -c '%i' $SCRATCH_MNT/$testfolder2/$file3)" +mv -f $SCRATCH_MNT/$testfolder2/$file3 $SCRATCH_MNT/$testfolder1/$file2 +_verify_parent "$testfolder1" "$file2" "$testfolder1/$file2" + +# success, all done +status=0 +exit diff --git a/tests/xfs/554.out b/tests/xfs/554.out new file mode 100644 index 00000000..67ea9f2b --- /dev/null +++ b/tests/xfs/554.out @@ -0,0 +1,59 @@ +QA output created by 554 + +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1 + +*** testfolder2 OK +*** testfolder2/file1 OK +*** testfolder2/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder2/file1 + +*** testfolder1 OK +*** testfolder1/file1_link OK +*** testfolder1/file1_link OK +*** Verified parent pointer: name:file1_link, namelen:10 +*** Parent pointer OK for child testfolder1/file1_link +*** testfolder1 OK +*** testfolder2/file1 OK +*** testfolder1/file1_link OK +*** Verified parent pointer: name:file1_link, namelen:10 +*** Parent pointer OK for child testfolder2/file1 +*** testfolder2 OK +*** testfolder1/file1_link OK +*** testfolder2/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link +*** testfolder2 OK +*** testfolder2/file1 OK +*** testfolder2/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder2/file1 + +*** testfolder1 OK +*** testfolder1/file1_link OK +*** testfolder1/file1_link OK +*** Verified parent pointer: name:file1_link, namelen:10 +*** Parent pointer OK for child testfolder1/file1_link +*** testfolder1/file1_link OK + +*** testfolder1 OK +*** testfolder1/file2 OK +*** testfolder1/file2 OK +*** Verified parent pointer: name:file2, namelen:5 +*** Parent pointer OK for child testfolder1/file2 +*** testfolder1/file2 OK + +*** testfolder2 OK +*** testfolder2/file3 OK +*** testfolder2/file3 OK +*** Verified parent pointer: name:file3, namelen:5 +*** Parent pointer OK for child testfolder2/file3 +*** testfolder1 OK +*** testfolder1/file2 OK +*** testfolder1/file2 OK +*** Verified parent pointer: name:file2, namelen:5 +*** Parent pointer OK for child testfolder1/file2 From patchwork Wed Oct 12 01:38:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13004568 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 6F435C433FE for ; Wed, 12 Oct 2022 01:38:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229526AbiJLBil (ORCPT ); Tue, 11 Oct 2022 21:38:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56018 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229454AbiJLBil (ORCPT ); Tue, 11 Oct 2022 21:38:41 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 80BEA88A38; Tue, 11 Oct 2022 18:38:38 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29BLiHIo027838; Wed, 12 Oct 2022 01:38:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2022-7-12; bh=fEgG1x0egHY3J2YAg9zM3UwFGS4kcPDTczo+bd9lp70=; b=eajcI2+qHZJhB17wxjX7qbO8aOTA26mlIY2A0W4n11ldwXd5TyVYLbkRKBF/v5QZraNp lEjoruRJEH726QIaaxDmqOIWkONosum9Z31FNBcXtoX6E2ZvpAYhdjtOvHgtUiW37it6 la9Lw2nKhUs5oeZvwik98NegBZqi9ze6UyKk2eLiLkub/YgfC4PRy0J59R/Ac/qt9OAA vkrYY2uZ0o/dZsGdjw/CFuQcoYaCBksVEQ0RmuP6mQ1afZMx1xlcJTDllpP6oXLhkxuN QMvTr+MJadC4TaHGZnIhtvG6AHDqkiUwNBB824ncf1kPXi12uiXSX0bniQRw4Oaoi5cc pQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3k313a0ctm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 12 Oct 2022 01:38:38 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29C1Aa0p002907; Wed, 12 Oct 2022 01:38:37 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2168.outbound.protection.outlook.com [104.47.58.168]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3k2yn45js5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 12 Oct 2022 01:38:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Rm5aBcuAmTWOEfjOgBykMYWVQidS/XFlOe/DfTZlAvI4tG2WUy9yl1r/oAOXuv33rYt6eNYOFQD1SULjJDh97v2kzi4Xpdm4MRjfVxldIDc02V3hpD4BFqNjMZS8gvJtdwtTcfNHqaGGTAoEr1OfbG3jmR4FrgtpijtCuFaJLPhTwD/utrBnNX7sxUwe/dxd0RA7rTR4qUIa3Xey4zf7LN2N5EMwBli881PyPKaBKcGgLJcqqVmOuglsagpdvY5qUgLvVaCBHX+Bws8VbjJr7DPsWNlthTFd98sdrWcSF7tjRwvpSjTirL8kA5ccHj1bbDqDBkUSOB/gzAENoGMC7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fEgG1x0egHY3J2YAg9zM3UwFGS4kcPDTczo+bd9lp70=; b=eVLf1kjkBdJsaq88TT9XPP2u4+c7NJVOSGWiQRskrkeKjcJayOmmIDXFEve102jcTy4f1h1g8P61Ig7PmbALj1h2Zh9yB2TDlPCbrOhIWb6GnED6aOInWjl3BAgbO28fIPzGg9vM3SB+od/Mm++Vd7oi9VF8phMIc//FQMgUNWmQSvLsCfjdtW3NHV6ek0hAXg0dBLxYDby9jnH19FD7+D2i84HS5yuNMXG2qN1ESm9BMKh0VDvi1/uVyjlUvprtbNTPHJj2rMu3IXS5HHJiNaKZBh27id0W87Wj0esFsBCE47HIev8k1wn4N5OoUf2YmdRhn9mkm6EZ7qnl46u6hA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fEgG1x0egHY3J2YAg9zM3UwFGS4kcPDTczo+bd9lp70=; b=S9N6x5O9IgNGq9mcK9B6nRZH3VuYb+lgX9Ef0/9qTdy9feX+f96GzcHLX4nHCVrEkYXOBrXMz/YMdNhqOMYbiCrNOaEEXtUhy9VU4pO5ks4F3Krb/9QeLg9SDQ6SoyhG9jA9NNx03GiW1AZjJoZQzWO/xL5ZfqgHGCxCw+nMzfQ= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by SA1PR10MB5686.namprd10.prod.outlook.com (2603:10b6:806:236::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Wed, 12 Oct 2022 01:38:34 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::bf88:77e2:717f:8b9a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::bf88:77e2:717f:8b9a%9]) with mapi id 15.20.5709.021; Wed, 12 Oct 2022 01:38:34 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org, fstests@vger.kernel.org Subject: [PATCH v2 3/4] xfs: add multi link parent pointer test Date: Tue, 11 Oct 2022 18:38:11 -0700 Message-Id: <20221012013812.82161-4-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20221012013812.82161-1-catherine.hoang@oracle.com> References: <20221012013812.82161-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR03CA0063.namprd03.prod.outlook.com (2603:10b6:a03:331::8) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BLAPR10MB5316:EE_|SA1PR10MB5686:EE_ X-MS-Office365-Filtering-Correlation-Id: 3d3ddfb1-4e42-4082-e504-08daabf2799b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: G3bn7ohe8Pztjxp4bQ6Ct9hXp4LB7iGLtFriL7KpfaBA97HPps04uV+EbWlHUwLzrV3/PPteKivNxE5vg8zna7SkZdnSicvBUmZpcioQLtv+XPC91p/MtINtJvb4H180r+N5QeIa4HgSsBt/xAsxStxRormF0pgkYvLh1Hol52sphYesqL+3jFXAZA+x/Ewz9QoohS7p89nbFOir58yc0gaLGAJPMHW47NG1uHupRkclhgZPzI0aARMWD/Kb06PYfj3JMbUkj5YVrvf4V71j1xg2gchh0JvGGW1A0fx9PJ1GkYDUsHZPOmCMnl2PsEVn2spk6VDfFjmRPuHBjo7Jssgvyyi5hD99S+q1VbIpfRUfP0Ghqi/wfkkOTqVmn4RokhnVlvhZYNmVDQTAnFd7L61dzrWMBFly1cpTUUDnK9iVx/FeCOi2EtOoBkCdgUVEdoGuAIaw+Zwt/3lTGGF6i5AwolbF4O97wSHQO9eIwj3XtlTZu/zMvYdv7yqkC0Zg3/u/3z1U203AF/GjW/NWJHz73ez2eGmRxCKVOPS6lDHng/vxlpk6o/io7iVDiiAi32CfkRSeS8CvUqhQT2/qYa+GctUASmWpVqou+wA2ad8kdFRs0s3YbmuzxrMH9Oj2Mdj5gDyVSJ4hD6Xs+zN7UyrplSoe77+iIWCHQLavLxz4FW8nQSpAZ5+xEg6MSFyleJsg9iqAYcOsBTtXd3ehXg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(366004)(376002)(346002)(136003)(39860400002)(451199015)(6666004)(1076003)(41300700001)(5660300002)(44832011)(478600001)(6512007)(6486002)(450100002)(66946007)(86362001)(316002)(36756003)(66556008)(8676002)(8936002)(6506007)(2616005)(66476007)(30864003)(83380400001)(38100700002)(186003)(2906002)(579004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +6OZzJ2gQS+rqS+F6Gx6qVr8ENLncmnmkRSpmbT+L8iHobeZVCBho1redaLlCW1GLhgESbKREt6m2gwGBevUknM69k1ZOhXv+uoIOFTHZiXyYFuvgj/+bZh6u+cZm8XnM6obPTUgCo97eYsRIHj48a39LgZgeROyl2T8/G6xlDoKLOHSuU/TiAFjeajwOWPJeJkSiofR9tPjdZ8d18v8SO5NXyWYI0TtHMb/WowpWGh2xsBHQnW514yK+EIIwCnOpTkmYSm60BJg7GuEvwe/VuafP+M87t0I6NL//VNp0AuCkPTTTiuaJnnAsVMAgvlLDaUJytvi4DtQEcq0+ydBsr4mJXwjRkRePAqp8vowRwL9YusasFgH26/p1CVdGo8tQi4s9wjZ4Se7NndE4eX7MFmv/HjPT+l53jBJpqpkfvNqBDwv3otsKIMi1C8HG1dZ5VYFUzYZvdLFAqdphGPk8R1VqQNI9OGdM8Zdmk+NXsVjeOnmGlLjDqyjhVjnr/0L3xP3YjYO1kZvf7DSAvL1BZ7CunFfLbL/3KiZl7MT/Shyq4NFIV+KoJiEslJME3KI0j32ek7btCYBUzjmvVHoQi2c86R+6FQBO6wsDs7SIHKo+izFHBC8XsUf40cF/eLTKU0fld3S0Zdf4VZ9rZTBY2VLGiz+R/DnM4A0ofPsqArWykxbAtPpBYunZNeNI0318hyNU7Cfgn/X5jdj808YwFpEA2JnDGFJgM6mov9EZIIWfxvbAro8oKE4/uqgORScp4mauAlbKlP8wMJcoRPowI5vLMH/9KIpggn/tQaVX0jyEIh/n7fjIs3pIB1UAGRpjOy0abcNerCH/AKqPryJhXL1SyD/LI24piqB2bISeTDWExYUjE2NI+NuwJx3cagDnNYpw1O5ncXfFrkSuGIlH1JAyutxl/7FIdBab/WaXhMsboKS3jbZ0l7/fKDhS5us0lzyV2QwT/x+WkaT4G8tvtjo1BO9Dn2ez/gayCUTxrac2K2RxQVElhgYkH6hNGLtTROrG/CrqOXivtmgQFjh1kn8lpQQBcOvsLSOJcZCd2anQXucyYNIpHM9S7pkVULkiX0r0plKHGC686DxlJk4dWIz+ikYIh7eiYzg9cmboom+sP6sb0UWemhPJ6SgrgKSPeriLd6uYwbClc/IVFK1QxfkDi7oSCbXDecA9T6Y9GCu9bLon7SrbMlrlb7ns3BdoU/UUjQawdNRCKFsFXmdwnrXCWbiXeFQ9cmm47wjU8DcjpdBS1QZz0xLZsnRj0boQe91bh6oWQ3hNd2GSJBRDfIOAFsJfQruwlGKLP21A4OSFFB22XSBKnFOAL7RVgbfD0hmdoWYWf+dQzh3QImYN8lZtECPJow8SEmXZXH0sbkPVzUyP/OF8QIQVMnaN7IvtbH5y0EGXs5X3WFbLLlf/qGvBLY61wQsN33SLmD+2fzIZOQp9SihWuw3K+JpW3LAhbrwDqctCdvhqBnnh1l0S+BBbSN/Idkx5iwTfDBTztut9vCUWm54tqSyP1+f9a4Eafn5Kh+f91+5nwQVz/vNPGLC2xH6qunbtdemb8yWwcdebKgRdBNp53gtkXkQfrPbiO084IQO0vHryzboy6HLhmfme15RrZKKpENQL4iIw8/nCmnnvHkNKGKDyX4BFFdVeoyXn9GMCW6jXL6Kf6XnXw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d3ddfb1-4e42-4082-e504-08daabf2799b X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2022 01:38:33.8761 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: H3gjCHepSTGGdrqVFnFm02g/2azf3/ibqlOKfNM1jHutzrlKRIj+5zJILJ7/15opcPNPsdEEhJFFzfLVrP92LphBv8VR2PLH13oqSWifldA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5686 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-12_01,2022-10-11_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210120009 X-Proofpoint-GUID: h_H8gYsHktCCRs8ntDp7W-FnXFhZ5R0Z X-Proofpoint-ORIG-GUID: h_H8gYsHktCCRs8ntDp7W-FnXFhZ5R0Z Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Allison Henderson Add a test to verify parent pointers while multiple links to a file are created and removed. Signed-off-by: Allison Henderson Signed-off-by: Catherine Hoang --- tests/xfs/555 | 96 +++++ tests/xfs/555.out | 1002 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1098 insertions(+) create mode 100755 tests/xfs/555 create mode 100644 tests/xfs/555.out diff --git a/tests/xfs/555 b/tests/xfs/555 new file mode 100755 index 00000000..36d286f8 --- /dev/null +++ b/tests/xfs/555 @@ -0,0 +1,96 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2022, Oracle and/or its affiliates. All Rights Reserved. +# +# FS QA Test 555 +# +# multi link parent pointer test +# +. ./common/preamble +_begin_fstest auto quick parent + +cleanup() +{ + cd / + rm -f $tmp.* +} + +full() +{ + echo "" >>$seqres.full + echo "*** $* ***" >>$seqres.full + echo "" >>$seqres.full +} + +# get standard environment, filters and checks +. ./common/filter +. ./common/reflink +. ./common/inject +. ./common/parent + +# Modify as appropriate +_supported_fs xfs +_require_scratch +_require_xfs_io_error_injection "larp" +_require_xfs_sysfs debug/larp +_require_xfs_parent +_require_xfs_io_command "parent" + +# real QA test starts here + +# Create a directory tree using a protofile and +# make sure all inodes created have parent pointers + +protofile=$tmp.proto + +cat >$protofile <>$seqresres.full 2>&1 \ + || _fail "mkfs failed" +_check_scratch_fs + +_scratch_mount >>$seqres.full 2>&1 \ + || _fail "mount failed" + +testfolder1="testfolder1" +testfolder2="testfolder2" +file1="file1" +file2="file2" +file3="file3" +file4="file4" +file5="file5" +file1_ln="file1_link" + +echo "" +# Multi link parent pointer test +NLINKS=100 +for (( j=0; j<$NLINKS; j++ )); do + ln $SCRATCH_MNT/$testfolder1/$file1 $SCRATCH_MNT/$testfolder1/$file1_ln.$j + _verify_parent "$testfolder1" "$file1_ln.$j" "$testfolder1/$file1" + _verify_parent "$testfolder1" "$file1" "$testfolder1/$file1_ln.$j" +done +# Multi unlink parent pointer test +for (( j=$NLINKS-1; j<=0; j-- )); do + ino="$(stat -c '%i' $SCRATCH_MNT/$testfolder1/$file1_ln.$j)" + rm $SCRATCH_MNT/$testfolder1/$file1_ln.$j + _verify_no_parent "$file1_ln.$j" "$ino" "$testfolder1/$file1" +done + +# success, all done +status=0 +exit diff --git a/tests/xfs/555.out b/tests/xfs/555.out new file mode 100644 index 00000000..eb63ff3a --- /dev/null +++ b/tests/xfs/555.out @@ -0,0 +1,1002 @@ +QA output created by 555 + +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.0 OK +*** Verified parent pointer: name:file1_link.0, namelen:12 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.0 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.0 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.1 OK +*** Verified parent pointer: name:file1_link.1, namelen:12 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.1 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.1 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.2 OK +*** Verified parent pointer: name:file1_link.2, namelen:12 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.2 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.2 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.3 OK +*** Verified parent pointer: name:file1_link.3, namelen:12 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.3 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.3 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.4 OK +*** Verified parent pointer: name:file1_link.4, namelen:12 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.4 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.4 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.5 OK +*** Verified parent pointer: name:file1_link.5, namelen:12 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.5 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.5 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.6 OK +*** Verified parent pointer: name:file1_link.6, namelen:12 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.6 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.6 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.7 OK +*** Verified parent pointer: name:file1_link.7, namelen:12 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.7 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.7 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.8 OK +*** Verified parent pointer: name:file1_link.8, namelen:12 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.8 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.8 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.9 OK +*** Verified parent pointer: name:file1_link.9, namelen:12 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.9 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.9 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.10 OK +*** Verified parent pointer: name:file1_link.10, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.10 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.10 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.11 OK +*** Verified parent pointer: name:file1_link.11, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.11 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.11 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.12 OK +*** Verified parent pointer: name:file1_link.12, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.12 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.12 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.13 OK +*** Verified parent pointer: name:file1_link.13, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.13 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.13 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.14 OK +*** Verified parent pointer: name:file1_link.14, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.14 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.14 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.15 OK +*** Verified parent pointer: name:file1_link.15, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.15 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.15 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.16 OK +*** Verified parent pointer: name:file1_link.16, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.16 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.16 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.17 OK +*** Verified parent pointer: name:file1_link.17, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.17 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.17 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.18 OK +*** Verified parent pointer: name:file1_link.18, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.18 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.18 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.19 OK +*** Verified parent pointer: name:file1_link.19, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.19 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.19 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.20 OK +*** Verified parent pointer: name:file1_link.20, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.20 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.20 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.21 OK +*** Verified parent pointer: name:file1_link.21, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.21 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.21 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.22 OK +*** Verified parent pointer: name:file1_link.22, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.22 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.22 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.23 OK +*** Verified parent pointer: name:file1_link.23, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.23 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.23 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.24 OK +*** Verified parent pointer: name:file1_link.24, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.24 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.24 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.25 OK +*** Verified parent pointer: name:file1_link.25, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.25 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.25 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.26 OK +*** Verified parent pointer: name:file1_link.26, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.26 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.26 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.27 OK +*** Verified parent pointer: name:file1_link.27, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.27 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.27 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.28 OK +*** Verified parent pointer: name:file1_link.28, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.28 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.28 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.29 OK +*** Verified parent pointer: name:file1_link.29, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.29 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.29 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.30 OK +*** Verified parent pointer: name:file1_link.30, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.30 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.30 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.31 OK +*** Verified parent pointer: name:file1_link.31, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.31 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.31 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.32 OK +*** Verified parent pointer: name:file1_link.32, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.32 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.32 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.33 OK +*** Verified parent pointer: name:file1_link.33, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.33 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.33 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.34 OK +*** Verified parent pointer: name:file1_link.34, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.34 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.34 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.35 OK +*** Verified parent pointer: name:file1_link.35, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.35 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.35 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.36 OK +*** Verified parent pointer: name:file1_link.36, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.36 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.36 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.37 OK +*** Verified parent pointer: name:file1_link.37, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.37 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.37 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.38 OK +*** Verified parent pointer: name:file1_link.38, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.38 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.38 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.39 OK +*** Verified parent pointer: name:file1_link.39, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.39 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.39 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.40 OK +*** Verified parent pointer: name:file1_link.40, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.40 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.40 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.41 OK +*** Verified parent pointer: name:file1_link.41, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.41 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.41 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.42 OK +*** Verified parent pointer: name:file1_link.42, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.42 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.42 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.43 OK +*** Verified parent pointer: name:file1_link.43, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.43 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.43 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.44 OK +*** Verified parent pointer: name:file1_link.44, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.44 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.44 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.45 OK +*** Verified parent pointer: name:file1_link.45, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.45 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.45 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.46 OK +*** Verified parent pointer: name:file1_link.46, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.46 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.46 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.47 OK +*** Verified parent pointer: name:file1_link.47, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.47 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.47 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.48 OK +*** Verified parent pointer: name:file1_link.48, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.48 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.48 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.49 OK +*** Verified parent pointer: name:file1_link.49, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.49 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.49 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.50 OK +*** Verified parent pointer: name:file1_link.50, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.50 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.50 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.51 OK +*** Verified parent pointer: name:file1_link.51, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.51 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.51 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.52 OK +*** Verified parent pointer: name:file1_link.52, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.52 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.52 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.53 OK +*** Verified parent pointer: name:file1_link.53, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.53 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.53 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.54 OK +*** Verified parent pointer: name:file1_link.54, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.54 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.54 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.55 OK +*** Verified parent pointer: name:file1_link.55, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.55 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.55 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.56 OK +*** Verified parent pointer: name:file1_link.56, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.56 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.56 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.57 OK +*** Verified parent pointer: name:file1_link.57, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.57 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.57 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.58 OK +*** Verified parent pointer: name:file1_link.58, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.58 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.58 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.59 OK +*** Verified parent pointer: name:file1_link.59, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.59 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.59 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.60 OK +*** Verified parent pointer: name:file1_link.60, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.60 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.60 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.61 OK +*** Verified parent pointer: name:file1_link.61, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.61 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.61 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.62 OK +*** Verified parent pointer: name:file1_link.62, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.62 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.62 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.63 OK +*** Verified parent pointer: name:file1_link.63, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.63 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.63 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.64 OK +*** Verified parent pointer: name:file1_link.64, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.64 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.64 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.65 OK +*** Verified parent pointer: name:file1_link.65, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.65 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.65 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.66 OK +*** Verified parent pointer: name:file1_link.66, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.66 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.66 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.67 OK +*** Verified parent pointer: name:file1_link.67, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.67 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.67 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.68 OK +*** Verified parent pointer: name:file1_link.68, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.68 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.68 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.69 OK +*** Verified parent pointer: name:file1_link.69, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.69 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.69 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.70 OK +*** Verified parent pointer: name:file1_link.70, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.70 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.70 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.71 OK +*** Verified parent pointer: name:file1_link.71, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.71 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.71 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.72 OK +*** Verified parent pointer: name:file1_link.72, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.72 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.72 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.73 OK +*** Verified parent pointer: name:file1_link.73, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.73 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.73 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.74 OK +*** Verified parent pointer: name:file1_link.74, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.74 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.74 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.75 OK +*** Verified parent pointer: name:file1_link.75, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.75 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.75 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.76 OK +*** Verified parent pointer: name:file1_link.76, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.76 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.76 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.77 OK +*** Verified parent pointer: name:file1_link.77, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.77 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.77 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.78 OK +*** Verified parent pointer: name:file1_link.78, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.78 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.78 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.79 OK +*** Verified parent pointer: name:file1_link.79, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.79 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.79 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.80 OK +*** Verified parent pointer: name:file1_link.80, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.80 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.80 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.81 OK +*** Verified parent pointer: name:file1_link.81, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.81 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.81 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.82 OK +*** Verified parent pointer: name:file1_link.82, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.82 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.82 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.83 OK +*** Verified parent pointer: name:file1_link.83, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.83 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.83 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.84 OK +*** Verified parent pointer: name:file1_link.84, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.84 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.84 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.85 OK +*** Verified parent pointer: name:file1_link.85, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.85 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.85 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.86 OK +*** Verified parent pointer: name:file1_link.86, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.86 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.86 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.87 OK +*** Verified parent pointer: name:file1_link.87, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.87 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.87 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.88 OK +*** Verified parent pointer: name:file1_link.88, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.88 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.88 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.89 OK +*** Verified parent pointer: name:file1_link.89, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.89 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.89 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.90 OK +*** Verified parent pointer: name:file1_link.90, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.90 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.90 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.91 OK +*** Verified parent pointer: name:file1_link.91, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.91 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.91 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.92 OK +*** Verified parent pointer: name:file1_link.92, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.92 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.92 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.93 OK +*** Verified parent pointer: name:file1_link.93, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.93 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.93 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.94 OK +*** Verified parent pointer: name:file1_link.94, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.94 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.94 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.95 OK +*** Verified parent pointer: name:file1_link.95, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.95 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.95 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.96 OK +*** Verified parent pointer: name:file1_link.96, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.96 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.96 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.97 OK +*** Verified parent pointer: name:file1_link.97, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.97 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.97 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.98 OK +*** Verified parent pointer: name:file1_link.98, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.98 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.98 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.99 OK +*** Verified parent pointer: name:file1_link.99, namelen:13 +*** Parent pointer OK for child testfolder1/file1 +*** testfolder1 OK +*** testfolder1/file1_link.99 OK +*** testfolder1/file1 OK +*** Verified parent pointer: name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.99 From patchwork Wed Oct 12 01:38:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13004569 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 094D3C4332F for ; Wed, 12 Oct 2022 01:38:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229604AbiJLBir (ORCPT ); Tue, 11 Oct 2022 21:38:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56064 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229454AbiJLBiq (ORCPT ); Tue, 11 Oct 2022 21:38:46 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9984E88A08; Tue, 11 Oct 2022 18:38:45 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29BLiC7s002464; Wed, 12 Oct 2022 01:38:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2022-7-12; bh=MwzANCX1OD+3/91UZ1rxgavRCuMYwU0kIyzbmlz4rZ4=; b=ouUDHFSqZOxFW8J8s3X8X3FGA39guYP/5zZUAOmg9akssLc8/KGbr80Au3Uub9PPTruI mg7bMEOEt1BctVFL6R/s0wDeMP/p9wAwf140NaH7UKH8bToly2j9Vh0Ee4AzuxtY7orT HJzjz1pt0Ea4IBwnI+E8IQInJ0JbOLFdCCzCHUIOjzCpILgNHGqbwF7NhUqF49nhQHYD QMh2bU3+YLP0/jSGpoyFba0jQGGCinkj0A5Nd3PkhV85IFckDU7PnKH4AyawTm0s/4cw 3wNPZXsa0f0hXG6ul1XHmPSl+Vh65Pv/NimlDO586DS4vd87sqZpfnv8sf4G/OkCXzfx bw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3k2yt1gkf6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 12 Oct 2022 01:38:45 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29BM6vTe027358; Wed, 12 Oct 2022 01:38:43 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3k2ynar1s6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 12 Oct 2022 01:38:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=br127Sa0p/ZQ2Qs7hcZMsAOJNMxuqpCket0cEj5nGovrukBY7wowwEYTb4h+3xsR4WxmCjc6Df1FghNEHd3fJpjIXzNItA1zy+Y8/ZP5oJVAD/oEVRUYVmAosMbgrATcctohMN/yBCQULSYLtfEWwrHASvLkD5oahDlGjInV1Nhhw3BY2EG3wW9rnoXioU1+7nURtGnQNeuVhggpcq3AhSDhMs4aF8I7lSntI1ilOKmyWtm0YNbrMY/nNXJfNRLwXV6NhlabmGOzWltcXS4bc760lcWG+Urwb8g3sN+VQ0drWkq4OdpA0/mdt8BBmPzqJtPr0XXztQi6vX56FPd+ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MwzANCX1OD+3/91UZ1rxgavRCuMYwU0kIyzbmlz4rZ4=; b=nMRzE0t0ZLSXV5blIh0e/TjrCAoEM0Mf0UEwZQfqoPjdTEAwjfhS0tsjcpfzg7dQZfuUvwWHb3OcMPkWz9c6He90YwD4KIofXNu1WM4tm1/nA+1mLq+FRRrF6a1a9NqxEM79eSIjuU06M/kecfkZMdohXIdAGSHd05J8I2E1SxA6UnA5qHWb/LwZk/A6YuotZtTJxyDWgbvKgRkTyKS17sP3LX/q5z/nwwn1uGtyA5frhng3O0nvr3hSwyPFZFH29QMdpdiEa+DkEQPilXRFLIqMgxPHTfBuZK1R16ldNBPWqMZM8i4KwMe51sp6FZizM5UuNqDeySYglOmJHiKhLQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MwzANCX1OD+3/91UZ1rxgavRCuMYwU0kIyzbmlz4rZ4=; b=u7vQl3pUkvkEJ0CRkOPFiKLctF2hNnQb+eAyYM3SW37+ZEgW2d2FwdPL7E2hWOw0dRNC7bRHMh+jNj2O0Z0d3Dbx0njY7BpDdkIUnb3n1Ccfgc0KKjjxD0Za3C9gHMh0W0iW4bGfrCOSOKFdq6OPcrN/CxBvue9kcLBZzauq85E= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by SA1PR10MB5686.namprd10.prod.outlook.com (2603:10b6:806:236::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Wed, 12 Oct 2022 01:38:42 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::bf88:77e2:717f:8b9a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::bf88:77e2:717f:8b9a%9]) with mapi id 15.20.5709.021; Wed, 12 Oct 2022 01:38:42 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org, fstests@vger.kernel.org Subject: [PATCH v2 4/4] xfs: add parent pointer inject test Date: Tue, 11 Oct 2022 18:38:12 -0700 Message-Id: <20221012013812.82161-5-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20221012013812.82161-1-catherine.hoang@oracle.com> References: <20221012013812.82161-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR03CA0078.namprd03.prod.outlook.com (2603:10b6:a03:331::23) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BLAPR10MB5316:EE_|SA1PR10MB5686:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b8b98a9-6512-4597-e5af-08daabf27e6a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Z0sDtF2nBb4y8vjXniYpzkeU9tiyZiZhyVdQ/2TV2tKIZJwx2fCcahy6zraqHlUkz0YphbE56waOUO3xfmxgkg7sNZq6tSufhWhN7C1mjLieYotZ7a7zjc6ELYcjD21zCamFICPXd8YKDGxHymxmPlbUP1zob/vOhM1G+AL0ScNEs8Hf7NGGw1YXQcvH9LHHKWqJL2C6Y68BlA/D0ox9BCT5+6xqq3vN4hYxilluySOsYmll+SLVGXnVu0eFTt1DLnsRIO4PZxaP2cFKAwoJrsE6WGy1G7UTLyt2pfJzfgmNd2hLrQcFy0OlQSK38YyJ32GJL7OI9oUUmMPXVS8rVBfReiJ3oLxsmveqQTHBRzkvm2e7uO3qjEffY3aIortmTa57+E5JwKkj5dhuM83sv5D0EADDQ9V/gjAGylfNFoS8EUirwfFbIsMMzfmp5BILM0Q9pKIdsLOh8vXls4qnEk454iAmAlI1muBgT9txG0zxIgqMllbZJG5x+vKfpFxFLlbwnnClIe78zZz3bVnYkKVhLq0O49++LheshYliGJdakRLKmrV75rIiL1J2a2C2CYEwNk97EytXwTIr6aGHkXUxLQyeVhaSBnBt2B4+fTV74ElkUD5+Z7ymJEScN02/kotyhHVkj21ggFXODsnti8W7sudXJq6vG+Qx/0maP94fVM0Rqh6Xk9E5IjRQUQDcKKMqe4BudSxjQ6akbajLBA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(366004)(376002)(346002)(136003)(39860400002)(451199015)(6666004)(1076003)(41300700001)(5660300002)(44832011)(478600001)(6512007)(6486002)(450100002)(66946007)(86362001)(316002)(36756003)(66556008)(8676002)(8936002)(6506007)(2616005)(66476007)(83380400001)(38100700002)(186003)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Dc7u/Hvu3G3+vEDEcdWySMLf2Ch1iNhn7aUOZbmu9KLT/HBBOkhhtns9TBpLPaFKwPBq3O8wXpYcnR0DUjfSOw0RnPKhBVu+bcrsUJpMcSupnhTtemj+URWeKBGWEK+YDFck4D/BCrHHOFwXNVoIaVD+m7cIJv/OfSup/7ajb3FMTenSe2/ALwZ1lfu5R346zylpQkV5sTepuhDVwLRogRa8VhS4WnabAI/M10efGJdBoM8fxVnvo4tjbYptACNChXmPi4xSlyeccBS2KczL/VlxiJaAq89b0OJuCDDW4FuSVkot/BU7TsBxmH/M8gQwbMVpA+jVMIUXWoCJYcgyT1RTAC1NpDIXOPa+aEojC204WatPVftrSHMTko3xGBri8OjWNR58suaoLsS2tCXlLJX+VzhAzyzDonwUTew7jMdcaJjXlyhsGXgBPLZESWv+wOjO99jfcg7D098pfITAH1J60df79eAhCL8Fpg6k6TlIu+F0ZWN+URjVfOkwyCxdsWrkhwqEv3TkXG6iCukU+51u//uTjIU1YmBA+mS0s/7I1scSvUCKl4Jg3jULQ3MoFMxKIkgLFoZPHuIc7vJWLLNqGsSSYgNp5451vBVAgTxpnzdL0oKKwXBEn0XgXkHTossa4+CJrsm50ye9vEBmbTtSWxwOPzvj2RNZTqWCALtvlEQfpkTwPi+k8g24KZIgLwtTBr26f+wkQWm3LFdMWpsbpVMRqEYnpRN76Xx4lH0w3Zi0NQ2Ab7Qls92OM3/L5XIYXWPpcJLkFFPS/3/VXYDo5vy9hyiKWnEW0Y51LImVk/fAfkx00mRXPZ1nmu/R6Y2o5QKBdmqLQJCyZh6C/UZnLtrv0sMamcgfPhe2PdRORarQ4F8tXeaC5kZdrOSsoY/a8nOx7TmMpulC+UE3cjyWDz65+7MUQfn7jfl7b6j/aoMO5brQ5ge5+ZQo1PZplzs0sQIi50ifjKeEQaGn1sGta816kF8sBuJvpvu9WW6C0fVysP0/EtdOOtbRqa/UNHfuEfbBine/Slk0rvPg83EEFsqtW2GUdnQd6JajXZ00CUeAfdGr26AYu/uPHO7aaUj67DcS9XBfFsTasQOfwUtBy87Rq38NZtAyevwKVe3YLKmabQ+LrbIS8ZbZiWTG7jo/pF7njEs8hUYZPdXKlaxVSzCNG4ZgrqAr3fGgLVbOs16Q9JCN/mpOmJJta+ilKpket0Nu0CEbuLmveJ0oiDxBkGGnOAaRHN0ckzpcdYwNLuvNCGagvHpWv7g0bCLWnYfObOHWeqeI2WNMBvxE0TV5qLh5hV6wxDWEF1oYuA8U5kWXne8cfTR3Heq4dTSU48CQ/Pmy/iDBHx3tyrqI6gz5G36beEZAHRBqmoFEV5LibmSm1ZECrNRy2ga46FipG3HLIJ9EmHeK+VdkRKH2BR59HgWgsHK2XyQ2cD3yDBjo7RlC8ymiOTaesG7OGctUUbOPgIPe4hOjBEst8Zv49ZoJWHyH/wYJqVQUfTftPM453boKS31nS3WrGZvKsHYH3P48kBS5dwRQvkS4CR/owOFgxF6tugoCh6fIG2Jw4qVWurzqkFmmF2uRxevaHum9OMQjc3dJVaqLywjXaSxi+/SusGngBO4Fq6Vi1dY7/xqYaIKI4vZw3Yu0ko6ukvMH3rP0DDN6InSXH7LZOPLtOg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b8b98a9-6512-4597-e5af-08daabf27e6a X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2022 01:38:41.9435 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: a1khtxx59MhIquQVSBiGF3f+GzjUAkJ6npuJMB/BusAbQ+CtTz880mVcjt1mZZw6Q/wQHbu9xLXJ+uTC1D0LBt/0tpxxvZL+3sExT0mj1yg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5686 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-12_01,2022-10-11_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 adultscore=0 mlxscore=0 bulkscore=0 malwarescore=0 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210120009 X-Proofpoint-GUID: HnRMB9lP-o9Hx4uWc_DrVKrS8sG_9_BL X-Proofpoint-ORIG-GUID: HnRMB9lP-o9Hx4uWc_DrVKrS8sG_9_BL Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Allison Henderson Add a test to verify parent pointers after an error injection and log replay. Signed-off-by: Allison Henderson Signed-off-by: Catherine Hoang --- tests/xfs/556 | 110 ++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/556.out | 14 ++++++ 2 files changed, 124 insertions(+) create mode 100755 tests/xfs/556 create mode 100644 tests/xfs/556.out diff --git a/tests/xfs/556 b/tests/xfs/556 new file mode 100755 index 00000000..47e55bd7 --- /dev/null +++ b/tests/xfs/556 @@ -0,0 +1,110 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2022, Oracle and/or its affiliates. All Rights Reserved. +# +# FS QA Test 556 +# +# parent pointer inject test +# +. ./common/preamble +_begin_fstest auto quick parent + +cleanup() +{ + cd / + rm -f $tmp.* +} + +full() +{ + echo "" >>$seqres.full + echo "*** $* ***" >>$seqres.full + echo "" >>$seqres.full +} + +# get standard environment, filters and checks +. ./common/filter +. ./common/reflink +. ./common/inject +. ./common/parent + +# Modify as appropriate +_supported_fs xfs +_require_scratch +_require_xfs_sysfs debug/larp +_require_xfs_io_error_injection "larp" +_require_xfs_parent +_require_xfs_io_command "parent" + +# real QA test starts here + +# Create a directory tree using a protofile and +# make sure all inodes created have parent pointers + +protofile=$tmp.proto + +cat >$protofile <>$seqres.full 2>&1 \ + || _fail "mkfs failed" +_check_scratch_fs + +_scratch_mount >>$seqres.full 2>&1 \ + || _fail "mount failed" + +testfolder1="testfolder1" +testfolder2="testfolder2" +file1="file1" +file2="file2" +file3="file3" +file4="file4" +file5="file5" +file1_ln="file1_link" + +echo "" + +# Create files +touch $SCRATCH_MNT/$testfolder1/$file4 +_verify_parent "$testfolder1" "$file4" "$testfolder1/$file4" + +# Inject error +_scratch_inject_error "larp" + +# Move files +mv $SCRATCH_MNT/$testfolder1/$file4 $SCRATCH_MNT/$testfolder2/$file5 2>&1 \ + | _filter_scratch + +# FS should be shut down, touch will fail +touch $SCRATCH_MNT/$testfolder2/$file5 2>&1 | _filter_scratch + +# Remount to replay log +_scratch_remount_dump_log >> $seqres.full + +# FS should be online, touch should succeed +touch $SCRATCH_MNT/$testfolder2/$file5 + +# Check files again +_verify_parent "$testfolder2" "$file5" "$testfolder2/$file5" + +# success, all done +status=0 +exit diff --git a/tests/xfs/556.out b/tests/xfs/556.out new file mode 100644 index 00000000..812330ee --- /dev/null +++ b/tests/xfs/556.out @@ -0,0 +1,14 @@ +QA output created by 556 + +*** testfolder1 OK +*** testfolder1/file4 OK +*** testfolder1/file4 OK +*** Verified parent pointer: name:file4, namelen:5 +*** Parent pointer OK for child testfolder1/file4 +mv: cannot stat 'SCRATCH_MNT/testfolder1/file4': Input/output error +touch: cannot touch 'SCRATCH_MNT/testfolder2/file5': Input/output error +*** testfolder2 OK +*** testfolder2/file5 OK +*** testfolder2/file5 OK +*** Verified parent pointer: name:file5, namelen:5 +*** Parent pointer OK for child testfolder2/file5