From patchwork Wed Nov 17 04:16:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623643 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5334EC433EF for ; Wed, 17 Nov 2021 04:16:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3ABDC61B64 for ; Wed, 17 Nov 2021 04:16:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233013AbhKQETX (ORCPT ); Tue, 16 Nov 2021 23:19:23 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:31760 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230227AbhKQETV (ORCPT ); Tue, 16 Nov 2021 23:19:21 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH2FTYE003522 for ; Wed, 17 Nov 2021 04:16:23 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-2021-07-09; bh=Abil+H42oh2NZMS3A9EcgiYlGmXNOaH1mTC2GKsdTJk=; b=xkIajCzIhFPfbmIl5Wewqjx41pKVOMu38M16xkcd5xelmZncHgyBo6kpeJciipWJE6HE 7e+lBivt8wHGxi53pwnZsft8lG6kR30R/yvo6+RSTjuAUJxmpgaFGrnEl3fMeDPWBlCp jkRhfb/IRUUYKTpAikd7QvKoyMT3ngH/f8D5AdtsIec+o2hA3ZOiCcEPactOiOXwd2hK prlkuogqrhAVqYa38KSgneLchAQS73DC9CvKyUJiYjz86YlxKMF5BVFwKSXLYuPWh1V6 QfIjhjN0ZPfaVLYxJrxf/+8E7UplC6YR3Fd47/nwSbRcVMvyB6C2ULL62jaakuSXdwY3 Ow== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbhv5dru0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:23 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4AEiZ180637 for ; Wed, 17 Nov 2021 04:16:22 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2170.outbound.protection.outlook.com [104.47.58.170]) by userp3030.oracle.com with ESMTP id 3ca2fx6ayx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TuRi6yESJPJu6qHl5X+d/QHiDueTgNdFOpcjlWqvkrKK5652q0d/CwnPcqj8Nh5JtJiEIr98lfK8SLA1jjHZWxrmipAN97SpunYdgsYQEW6WUUkyvKHhVNWzinB4gQk6sqI6B9J+3zB1LU2O6HwcQ/FF4MaWs3wZZev3nEHAx+mgZahesfS9ZAtY7p9cfkwGPCqzkKLKQEx8eThJFZMwEbnSb7fay5wlUG4l5yj+RhyIOZ9yk5psY2HsG7H2uxpbax4n7YCZHwoiDvsIdRs+eZUSVOhqdr3CVB9MqtC1OhpAJfH9HJ2nOmDBRavdffJRfXLQ+yeyI+8W/0BBmqWS7w== 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=Abil+H42oh2NZMS3A9EcgiYlGmXNOaH1mTC2GKsdTJk=; b=QgoqReYKCyD6F4YZYKWJERt+GERBZUWQV3NP4rPWboGhEhKdS6VbcqK+ZQ8ZM+ygWiI378fT9Klf6HVCASZgIej+sKJRytgRVX798Q1ZlNiJD4dI1z8CqBnwC5e+OxHYIb4GtrvUUeFndRyeV5Nmex1AY1P9pdQ8PyqJyqVo1q2tFbgnVcFoQsXwEJtW7P/bufRXb2CQ+i8PPHIXIqKH2UclsMvxawKqcw9NLwwsGFpu60ZU+3lpRliixUex+V0QKO+8xdxWXLALIWy06Ci6sslk3p1AIPpL9ALGiy83e+CZ1xlAq+p53rrVLfGSxGDeH7xYAcqsCmAFKP4Y9ST0tg== 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=Abil+H42oh2NZMS3A9EcgiYlGmXNOaH1mTC2GKsdTJk=; b=JvG+s/A9iNNo6EVLIdWv/qZ+Qctage/ydqcgnDHTeyVIqU/PjuoCo1D10eeh0mqd7sHTLlMZyi5kzfhm2G5gaxa7plB9WwrYK60NacBl+163Lx7SWmHhdVI8OUjB/Udt7l23aLtgWQXtZ2i5asFq+dzsRsyMr1TI/EXiovOq+Bo= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by SJ0PR10MB4446.namprd10.prod.outlook.com (2603:10b6:a03:2d9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov 2021 04:16:20 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:20 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 01/14] xfs: allow setting and clearing of log incompat feature flags Date: Tue, 16 Nov 2021 21:16:00 -0700 Message-Id: <20211117041613.3050252-2-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:19 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6448c82b-144b-4c75-362b-08d9a9810201 X-MS-TrafficTypeDiagnostic: SJ0PR10MB4446: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:935; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: um/cfChlw9tWBnrICkqx2UPO+xm9PqdM27Yh3V7iDPW5aXggmJYBO3mRAHyRyR4Ej5ZDsv/W1ckOnGgFZqP8fy83K/k9W4kw9HSWRbbUr1TvUS2zEtQpULWyOHfz/8TWQCaQRXnFXVBHhKh87o3fA7Yz1yzBO4zsDxmKIDjgiR/4rbMsC2jcZzJJz4P72X3+hztiz1j1u9g4Yjg1in+uXIuKbinlWa9tVzKuYPWJFyJv0GbbmAJGJntFTXtLk5rXtG0nn1/Q8GEA0h+aal6IzwWQs/36RE87cXd4kRDrtAczK8LDfy0QDbXKUPvuPpBkICEP7TcAcUTmCIeeyjGM7z+LaRQxifSpZRN7ktOQStokzx3eX3oIovieADExLiqjDp5N2A2j17Bm3tGM4WB1qyaWUxORNoNknv2w/4u0hkEQE3PHyGs9XhkygYaIWkaUu0w73dBHUcJ/e6WiCQLUNNNIjcOdXh2m003CLmVfRuCWhViRwYgx+ZQQegHUD+O+JvkBepvaAII2pqZ8yVmlcGQvEW92CdQonYiurH7n52UIOwEgoAt3yevMVttBnFlni/r5OIsyIn5PzLBjcq+YK1U4cDGtRBDP4cl14xnN0Wp0uHSMH+/S5phYrDLFMRxRgVsA32RmRjiGOsO0irv6oepUS2TZfeUzwd+XPx5rbbRTD0DnXchpZYrL+wwT8teUVAGwGJmD0a8tznjEeNnwNw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(2906002)(956004)(2616005)(83380400001)(38350700002)(38100700002)(26005)(52116002)(5660300002)(316002)(6486002)(6512007)(44832011)(6666004)(8676002)(8936002)(1076003)(66946007)(66476007)(66556008)(6916009)(186003)(508600001)(86362001)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1gf94gQd6x5GblwP1TJzAPR1rwKiODGWMqC3tjJwq4cWogdqvMyzwKGX9OjRrcPvp0sGc9Gl5TlTapCwG0OI8GBe64oOOaGkPPNcS9ZZbtln6AyvHquC+LQuxbVVveGoCBnmbEf3DVyMvN54L5YQ1COXQfny51aJ9DRxlUmeS303pxelMA9S7y6TLDPbUnuMQII0tCh98bGqOvsbCcukt9AS3H1VVS4N+M/ONy9WdA9nzVtjCPij4dYMGz54XnmxQ5T7IGgAYchNlLy3bo6PvC+kAPt9WOLcUEIQ/o5Xeayj8sOStjtmoMo38xqUnQFNSVUxvEXN3GxVAoD8OTjvw4hn6fH+lEZgK2kmStuVNuKBmR0yUCOhfPjdTaZRG325mDvCzWFCJ9xlzTqaPVJPRY/SKvYITGL3ypveBCNmYSO6zCc3HUq8obLxmyr4LtKFu8LiMdc58mGPg6qi3h0VJgGdZv/iI3x390KXryCu0QQnmcXijljdU7PoC4YR7kvfO9iheCpu2Agdh+4Hvhu+7FhRxp7Vb/2jOiKvfR9E69IFifB2y5tQATJNdz5IGgdw7Oe2Mkzb8H40fiZB1DtKRSGcDmFKRXLosdiHbxVegLwqaaal80QkxQTqlZMydnraL/blfC/pbd8EJSHouAQWhD2agpfZ4N6RCTEj1Tz48ebwPe5W+kyBiV8F0tbme1ttB1xj0xVSgf0j+mkiOlMp0j/MaMOxGC+WA+RatFpOuA47H0DlL5c16fqsBiGnBZR1Gi1bWz59K19e9fc5G75X+w0nztzLaVmsaEECKY9g0NSki42+5jhSGgtIRFlBKWMvcN3SzopaGsAljP+UGOg3/m5gNFadMi1SL3zBO9EZdbg9ahKNK9DEJkMAatRMthOXveeIjGQaZdbNle2HsLOePaglmueIqnnjvfqS5ty59QTNaZombz3hQbytwAylAewaBMEZL1FMiJ26fu2qXxvg3+UMycAQY/sIUA87ooumGb5+590q/ZVxMF2CeggPHzTNcKLT+dAIG+oDS7TMI9jOWaZDVe46wEcwvrq4fC78DbtBasE5/loVgppz18JEnCjsS1YfOn0jyt/kEVVsUsqw1CNByCwIleV99zvc+isUUoDLSyzrXdLx886Nbk7nicRLT+sIqOl6zYCM/vGaOXVSg8SMdnJEBlWf+oJz1QbJKBDnnnm9MKxFz2jCzkZYdEPXPnnm+ao/mWPN1O3yxJmXlgm6xQNg4ixYinrIBH8u16BTY3Bv3YPcfgBqsH2fkUDgb9GXeDsLagOW/k/BzRGmabOH99HQl/JTfh4vfO8hITTCIbUuRbkX5yOQDJVxLF0y5SEs0xBpt78AKQb8TZyIs7YHhDXqrSfLBzsXLGqbx5EqW9n6bRnQ+Dt78O8saYL/2UAvGY3u6PiJRdoFWvItdSktqlEfMi/2w8zMpWAgTsxG8HL7CwlSOzUuCRZvGtYlTyG152ulr+Wl+2SYvQ1c65rETdgDUmlZGq5pEKvVyMBGj9lzLA8mOF/iRqJQjKZHq5wkQp78s/QWMeLVNBgCKVQuZHqZzlnon0xXaDA6RPJklQleHeFpYvyiqLFGx45BT1UCofGQMb6rgu2ssYxghq9NtcZwbfzZYRcUc6R9EZPqEheeoBZxKo1KhCYXABzsk24HQE0lPirL8GcbnDN4mQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6448c82b-144b-4c75-362b-08d9a9810201 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:20.0528 (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: uZ7Ctwab10fKGFQfujMDtkAdBF9vm6RuSMQ+lsHlif8ZEIyvIbBvDrgmLmYxjXsotYqCcPj+iA+IfAzk2cYMOq0/YHb7lgJ0JwhBjcBPaVc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4446 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-ORIG-GUID: k63zoavJuPEBzHEL3T-3GHuczFb09Kht X-Proofpoint-GUID: k63zoavJuPEBzHEL3T-3GHuczFb09Kht Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org From: "Darrick J. Wong" Source kernel commit: a9642049d91105c676526817b527a1a62940888f Log incompat feature flags in the superblock exist for one purpose: to protect the contents of a dirty log from replay on a kernel that isn't prepared to handle those dirty contents. This means that they can be cleared if (a) we know the log is clean and (b) we know that there aren't any other threads in the system that might be setting or relying upon a log incompat flag. Therefore, clear the log incompat flags when we've finished recovering the log, when we're unmounting cleanly, remounting read-only, or freezing; and provide a function so that subsequent patches can start using this. Signed-off-by: Darrick J. Wong Reviewed-by: Allison Henderson Signed-off-by: Allison Henderson --- libxfs/xfs_format.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/libxfs/xfs_format.h b/libxfs/xfs_format.h index 37570cf0537e..5d8a129150d5 100644 --- a/libxfs/xfs_format.h +++ b/libxfs/xfs_format.h @@ -495,6 +495,21 @@ xfs_sb_has_incompat_log_feature( return (sbp->sb_features_log_incompat & feature) != 0; } +static inline void +xfs_sb_remove_incompat_log_features( + struct xfs_sb *sbp) +{ + sbp->sb_features_log_incompat &= ~XFS_SB_FEAT_INCOMPAT_LOG_ALL; +} + +static inline void +xfs_sb_add_incompat_log_features( + struct xfs_sb *sbp, + unsigned int features) +{ + sbp->sb_features_log_incompat |= features; +} + /* * V5 superblock specific feature checks */ From patchwork Wed Nov 17 04:16:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623647 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8FAA5C4332F for ; Wed, 17 Nov 2021 04:16:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7080261B6F for ; Wed, 17 Nov 2021 04:16:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233024AbhKQETY (ORCPT ); Tue, 16 Nov 2021 23:19:24 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:32536 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232840AbhKQETW (ORCPT ); Tue, 16 Nov 2021 23:19:22 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH2FTYF003522 for ; Wed, 17 Nov 2021 04:16:24 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-2021-07-09; bh=LKxYY7sXrJ2PLyezysAEilS6G5Utcl4XaxQajG/LcbY=; b=NS6+W8hrtI4hM6E83ur7nczGe3SUb1V2/b2ai0uHVhXap5bnX8sJK5A4OMDgmzst0N2/ ME5MUj6EA9RxEw3S90Hj5UDecMqnCm9EzxAWUbFffXPSOwifOMFPATz1WtuN8E1NPEky 5VdbnadW1bx8DMZd0yIc8e6BNNgUkljInzyGGluyM44Ii+8iKOk3nbcze1clGATrfcLg 3SIoXmtRWKffA4RwquEuWM5udG1Mr4WayEjEEXdUTK685DQSWBMoCMfzm4wEoE7MzQ5g 3ItSH9MSabHIsDW/J9irJpGsxFs4Mzt0+N7DP+71XAqkuoj9mbCcSmPp0Raah5vtWun4 Sw== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbhv5dru1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:23 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4AEKg180636 for ; Wed, 17 Nov 2021 04:16:22 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by userp3030.oracle.com with ESMTP id 3ca2fx6ayv-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ha7RGetlukY5nGgCCAFjr6u43z9Qwarg2DvFNpAKh9JpAoYCh6z1ami80yj8E/Pf7qs9Ung4vrdanPIntogu5gHzyZF8GwOvTbyNlsa0NKoTv4Km7FuXr+QidP4egF62guAnOdrvfRSfoBuHRjWf12fohuO9ksHFR8WAnKJV2CO1hqfgmihbE7FmqU+t/2b512umLk9/u9zqiLYxwdY0OtwrHmPFNf3O2UFGVfjwkfQrFGS8ZMjemaPPBdvSFBaXAnQKHXP4KbAM+8+GTv8Xs07OJ4ntnt5cmTkVaV3w0Nyp+G8OnmSosS3BjZGlsEqv/nbBlVSD1Z29SIQ49x1sCg== 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=LKxYY7sXrJ2PLyezysAEilS6G5Utcl4XaxQajG/LcbY=; b=K2X1sypCdiC9IsaOzq82JKv2HSf/hXs7duW+05TA+vCy8IatLsSpDau9XhXYmhiwm6AU0xJ1Wz3eGKgAyXD9clqFb8klRodLKL7HbdDiqtss1ZSCwnZKaZJQtz+eaGkzS8/6tT6vaO3H+9mpHw/vqeyK5JkZwzjYm0bWbVV1UKZ8QrdaXm0FoaUQFoHKfeyJhfPoMA4OoZUDGYI4mVwsUVQeJY6ZiexFjuj01KR4wQY12JT49GofQ68BU/vDnBL21vyr5kLdqQZep4nPMEDp84bz6L9GAI9jf6i4g5hB4VA3zi1mbrACo6mZVAFApURdNIC2fqn4nHMxB0kNhSebHA== 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=LKxYY7sXrJ2PLyezysAEilS6G5Utcl4XaxQajG/LcbY=; b=Tet1+RvApgfvKfX1JuqPXOcMdikvPrXYDhcHITlYnBMfRlqkQSOBOaR33PuzwFjNIpHoAFL91HSZYdBhT1VDL+2OL4b5Ht4zeDHNhOEsmxekU4eUv3GwNnR2F5NN7NzFOoVbjb6Y6GP8FmvdCDJCuq3CiB3WahgAby3qBpwadL0= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BY5PR10MB4036.namprd10.prod.outlook.com (2603:10b6:a03:1b0::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov 2021 04:16:20 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:20 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 02/14] xfs: add attr state machine tracepoints Date: Tue, 16 Nov 2021 21:16:01 -0700 Message-Id: <20211117041613.3050252-3-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:20 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5caeba5a-e7c2-4bf4-82e5-08d9a9810238 X-MS-TrafficTypeDiagnostic: BY5PR10MB4036: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:199; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qdBM43EU4Y/tKSJEiKOVJIhwAdxpCPCJ3s40w/Z014RQEZwWj1MAe52m8aTXUkA7SIDL77OptI1Zt5xPBvsYQWiWSzqDWSjRYL7AUE9eGMGY90T0zTQ/R2z/moUUU+xcAn/uilNxqSwSJdFL89PtLxukzJVpJ2BIcT34dbvhQs9awOSipMjE9BnP6M9PS2Az/C5PlxgVDFkfUnq1E/K8k3ySsmFVHmM1GSmBIFICGOn0eRvTQsp48obPHvRGgN30k8yIgWwwRl7aijoNiMt976aNWXFbrFmvvKC5kDqn+RnG7QQZq2jkpGWKlvSyQ2xnahfdHErnA1NNhP3HY7rlBWPAlMLngnhXG5evTIsF4zqj2IW5fy9cfrvm33/jvwlDtFfTsMh/p22gRBE2rlp4NYr7R+1i8t1ImwJIRM6YreQHwCxpSab4LMZ4fVdd6nF3Sz9d1sLuI/qXr4aovp5w9GKJin75NSSBey3C+nVNjkoy821fu3g8UpdmhvHXqCMqxDC315fX7gQjok5ufcDdn0J3QT9FcvC+wrMFHGEDa8a+AZw0BMi5WBgvIvUUg7YJHrj8sp3pln4R9I8Ia3VaOdPbFWcKB24P25Cy0n7qgUrdly2g6J/nFLXXb7T4mHCOdxtzrZodc1lkKop9aOzaMQdHX5msXrlOUKslrY0z52myl8dboLl0tkopmxFKIArejfL4rwt4TvKbZ7F4ahCv8A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(6916009)(956004)(8936002)(6486002)(26005)(44832011)(186003)(83380400001)(6506007)(8676002)(66946007)(1076003)(36756003)(2906002)(52116002)(6666004)(6512007)(38350700002)(38100700002)(5660300002)(316002)(508600001)(86362001)(66476007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2mn4qVGHPrtjovZfSb9JyRZ+21kFS0lCZPRUiNqxtODcuWyMAh2Vgln78qaoqaSdymJYtYuQoiQ/P38LuwC5vD5YM3RV2paQgfFXqFjSqo4IFEQuuzcqHW6gQwT0b42jc+KUOZvcz24KlrPCRVl5svR08ztKZm6zkHK4ZNInXN4a/ZVQUU4N1Vu9m5Nc/bL1bW7kdGyuU2+L2r+04ryb4fr4vIKQb3fQjaxgwF3aKU+cLpxh6BXi7JcTK3j38zI3rEAxhLg6EttPt2XK2CNZNGU5kBGfarFgwQngLxLwtJd7xp1YDn/OxUDGjxPgmOX25A+YthwcP8CtlHSnEDZKhrrOW6BIP5JPxqa1BJ2F9MtTjaPYw1TaKBu1arS3+EPsjPmBTV3bsquO/0Orjn7t/qLVOJNFa0OsaoXh4f5pIWe617aAUHeAwvjfnGhupdQ/iLlN2MlxKUm0sO4l284KA7gcmX1rsk4zfH+ziht9slm/O1bqNP7NXuqigigKjSH1VOAYzhMm3dmgM2gkF+imwDV3Kx+Q1H9pvpydRP62oEWi8kXvIU51j7vFbMDZHNC/RM/NHQZ24FEIH5DObdhlrVTLIvqKnb2pHn3PM2yLHyI8G1PxfS+h/X1AMVvXOJ+m40zPsBetveVGzjvFquPrZVedsSogkHzmuaHG/+cCz5oaFGskZjL4tbyFXBVnwePYmdyuJpFbMaZtZVxkjVvvXZojA58cWKBp1KqmrI8HQthVthy4bxgX4G5ECfZLaN7vlpfpw/C+PEMdJ6lkr7IlEox6hFEezWxl8/h4E9q6/YqZXbwAidJpkTGeX2U+fTwWSg5Rqz6em6TesZ5LR1a2j1z2X5ySItnmWkSec4aXxHAI5OGG8xanWIKGGBzbpTvytyslqpk8XZmG1fDJSUOtt+jzIgySwk7kfuX6FgOuRzZTXIyEufnFV7BN27N3N3F1QwL50qvXyHbtExhia+LZtI+BfZpt3j+UYwkD9sFju5ojFmvtAZM9LT+VTGVBjLn4RD6vsOs8WGG1sG3yAGj3fa1rtengK7B9p3H2U4TUudyJqMaU/VUsZptu9zql8QTulK3p8NwvoUefCk3dCNu4sVX12Z+eq8pHoN+ElguZzjhe5ng5zmc2vgCKEhZhW/+S4XmXaJDZ8Ntm10z4QgiNHhibFE1vy3tu11XkVlDC9j664OXvglH9WabGY1QaZkcAjyvkHCrZY2O/xr9iP4NsXMu6N+9T3MWgwzD6cUVbsB/HrGlSG9UiOTmSUAsFp/cZWmEpmuEj15G7w1np7lJ28WtXqQiT9AWuibw2Pu+ouxkeRNfC+7ZeaZkHmMsVchQdLfcJ6UVzD5yt+0Q7LXhRWLIr7gnX9VwOAwJaLX3uyTncBvPd3RnTSJ2Kl+S0srAZjWlgPV0509Fkw/fvQdbEnkFjZr5kIxVbo+4PjQJgXt7lveaj0jyNcNmC0zxx3i7TAo73/hCzB9I1/MqXcjOyXnSJ/ygQRa9hd7jSSMythCALz/O60iEO2LlEn8sefYCUnqRAzSQozCpUKK4ERpDgixey/IU/VFgw8NDEAmqm9zAk7WWU6PPaZDkpRX00FVyeT4WalQoiJtGw/7ZqVsDfuJZVgWolBG3ourXSWioWxZQ/0LNvaT35IIHgd+2Z/lmvaGkF2LQ2pxQ4TK9WDUyYTw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5caeba5a-e7c2-4bf4-82e5-08d9a9810238 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:20.4431 (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: hypc4z9dQ1K69t+joRr7zvIIn+iV9TxYY/tbIPuNE4Fr64I9hiPKpnnjRpR7LmU8oIWT9vQh/zML7ul9ulJNmHQx8eXpIm93BfZ8/6a5NqI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4036 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-ORIG-GUID: fIDFL6epfrD2-4V8T3Lr11Za6qn6Eriq X-Proofpoint-GUID: fIDFL6epfrD2-4V8T3Lr11Za6qn6Eriq Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: df0826312a23e495faa91eee0d6ac31bca35dc09 This is a quick patch to add a new xfs_attr_*_return tracepoints. We use these to track when ever a new state is set or -EAGAIN is returned Signed-off-by: Allison Henderson Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong Signed-off-by: Allison Henderson --- include/xfs_trace.h | 6 ++++++ libxfs/xfs_attr.c | 31 +++++++++++++++++++++++++++++-- libxfs/xfs_attr_remote.c | 1 + 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/include/xfs_trace.h b/include/xfs_trace.h index a1002638f39a..227193a1e8fa 100644 --- a/include/xfs_trace.h +++ b/include/xfs_trace.h @@ -314,4 +314,10 @@ #define trace_xfs_perag_get_tag(a,b,c,d) ((c) = (c)) #define trace_xfs_perag_put(a,b,c,d) ((c) = (c)) +#define trace_xfs_attr_sf_addname_return(a,b) ((void) 0) +#define trace_xfs_attr_set_iter_return(a,b) ((void) 0) +#define trace_xfs_attr_node_addname_return(a,b) ((void) 0) +#define trace_xfs_attr_remove_iter_return(a,b) ((void) 0) +#define trace_xfs_attr_rmtval_remove_return(a,b) ((void) 0) + #endif /* __TRACE_H__ */ diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 80a6a96fe2d3..354c7c3fd38b 100644 --- a/libxfs/xfs_attr.c +++ b/libxfs/xfs_attr.c @@ -335,6 +335,7 @@ xfs_attr_sf_addname( * the attr fork to leaf format and will restart with the leaf * add. */ + trace_xfs_attr_sf_addname_return(XFS_DAS_UNINIT, args->dp); dac->flags |= XFS_DAC_DEFER_FINISH; return -EAGAIN; } @@ -394,6 +395,8 @@ xfs_attr_set_iter( * handling code below */ dac->flags |= XFS_DAC_DEFER_FINISH; + trace_xfs_attr_set_iter_return( + dac->dela_state, args->dp); return -EAGAIN; } else if (error) { return error; @@ -411,6 +414,7 @@ xfs_attr_set_iter( dac->dela_state = XFS_DAS_FOUND_NBLK; } + trace_xfs_attr_set_iter_return(dac->dela_state, args->dp); return -EAGAIN; case XFS_DAS_FOUND_LBLK: /* @@ -438,6 +442,8 @@ xfs_attr_set_iter( error = xfs_attr_rmtval_set_blk(dac); if (error) return error; + trace_xfs_attr_set_iter_return(dac->dela_state, + args->dp); return -EAGAIN; } @@ -472,6 +478,7 @@ xfs_attr_set_iter( * series. */ dac->dela_state = XFS_DAS_FLIP_LFLAG; + trace_xfs_attr_set_iter_return(dac->dela_state, args->dp); return -EAGAIN; case XFS_DAS_FLIP_LFLAG: /* @@ -489,10 +496,14 @@ xfs_attr_set_iter( dac->dela_state = XFS_DAS_RM_LBLK; if (args->rmtblkno) { error = __xfs_attr_rmtval_remove(dac); + if (error == -EAGAIN) + trace_xfs_attr_set_iter_return( + dac->dela_state, args->dp); if (error) return error; dac->dela_state = XFS_DAS_RD_LEAF; + trace_xfs_attr_set_iter_return(dac->dela_state, args->dp); return -EAGAIN; } @@ -542,6 +553,8 @@ xfs_attr_set_iter( error = xfs_attr_rmtval_set_blk(dac); if (error) return error; + trace_xfs_attr_set_iter_return( + dac->dela_state, args->dp); return -EAGAIN; } @@ -577,6 +590,7 @@ xfs_attr_set_iter( * series */ dac->dela_state = XFS_DAS_FLIP_NFLAG; + trace_xfs_attr_set_iter_return(dac->dela_state, args->dp); return -EAGAIN; case XFS_DAS_FLIP_NFLAG: @@ -596,10 +610,15 @@ xfs_attr_set_iter( dac->dela_state = XFS_DAS_RM_NBLK; if (args->rmtblkno) { error = __xfs_attr_rmtval_remove(dac); + if (error == -EAGAIN) + trace_xfs_attr_set_iter_return( + dac->dela_state, args->dp); + if (error) return error; dac->dela_state = XFS_DAS_CLR_FLAG; + trace_xfs_attr_set_iter_return(dac->dela_state, args->dp); return -EAGAIN; } @@ -1176,6 +1195,8 @@ xfs_attr_node_addname( * this point. */ dac->flags |= XFS_DAC_DEFER_FINISH; + trace_xfs_attr_node_addname_return( + dac->dela_state, args->dp); return -EAGAIN; } @@ -1422,10 +1443,13 @@ xfs_attr_remove_iter( * blocks are removed. */ error = __xfs_attr_rmtval_remove(dac); - if (error == -EAGAIN) + if (error == -EAGAIN) { + trace_xfs_attr_remove_iter_return( + dac->dela_state, args->dp); return error; - else if (error) + } else if (error) { goto out; + } /* * Refill the state structure with buffers (the prior @@ -1438,6 +1462,7 @@ xfs_attr_remove_iter( goto out; dac->dela_state = XFS_DAS_RM_NAME; dac->flags |= XFS_DAC_DEFER_FINISH; + trace_xfs_attr_remove_iter_return(dac->dela_state, args->dp); return -EAGAIN; } @@ -1466,6 +1491,8 @@ xfs_attr_remove_iter( dac->flags |= XFS_DAC_DEFER_FINISH; dac->dela_state = XFS_DAS_RM_SHRINK; + trace_xfs_attr_remove_iter_return( + dac->dela_state, args->dp); return -EAGAIN; } diff --git a/libxfs/xfs_attr_remote.c b/libxfs/xfs_attr_remote.c index d474ad7d969d..137e5698c15d 100644 --- a/libxfs/xfs_attr_remote.c +++ b/libxfs/xfs_attr_remote.c @@ -695,6 +695,7 @@ __xfs_attr_rmtval_remove( */ if (!done) { dac->flags |= XFS_DAC_DEFER_FINISH; + trace_xfs_attr_rmtval_remove_return(dac->dela_state, args->dp); return -EAGAIN; } From patchwork Wed Nov 17 04:16:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623649 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 25976C433EF for ; Wed, 17 Nov 2021 04:16:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0FB2061B5F for ; Wed, 17 Nov 2021 04:16:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233015AbhKQET1 (ORCPT ); Tue, 16 Nov 2021 23:19:27 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:62962 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233008AbhKQETW (ORCPT ); Tue, 16 Nov 2021 23:19:22 -0500 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH2SuTq023609 for ; Wed, 17 Nov 2021 04:16:24 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-2021-07-09; bh=YFXw3UrZeC1Ey7UWqss1pxK4F3t3iXBlpHnKfGUVads=; b=VCJ/CQU2zFJcOsYaGdB6anV1GgB0ODL6sO/4NJ3BtKRzS/xQ3zNzC1Pdcf89QJikXZQJ BmkQHS/DRfqeDPoW8z+C0b1/CzCDabcCzgkPsm8dWZizbGer2UwTkDMvfPDMFKWOWumH 3tfIvSPdbv/YOvsSsmYJ4qMbDdqLH4kWHmmx/XiiH7DDp1U7mEISFtXgp1Io8jbVnxR4 QM73LvFxtDWzHP2NobVu1WQvHblqhNk5UlQEsJYZynWvXbBRsJnKs9EzRerJJ9u+tkFN Y/cWXZ+VhBsbnsh1GC8uEJn3NhzeBkCshBPLqk5H8fyU3H0S71jI7vqvFgDICITpc/aF ww== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbfjxwws5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:24 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4AEKh180636 for ; Wed, 17 Nov 2021 04:16:23 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by userp3030.oracle.com with ESMTP id 3ca2fx6ayv-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EwqSpRy3JgmL3ECl/N3yHeTzLm9rOoMv5PQqi2BbO2QTS62gnTjiRiXCOcvvK5u7fbU/3JNsXEvMmzJUX5N/V1xO8qasU1b/EncGdMST/kN6qsbnoHHiIT8SmbIrw4UeRNx+w1rpLxEv1w93xGuTpYCoV1DgFv6/2mfgYt5WyBwOablw8yX81GpDKv1xiJ+PyG/ND9qmRryS7hkYbrO3I5+gbftdinNgDODumUaHEGPLz94Q8junnlrFldVXsDrohYp0n8LUZBTfyCMSRbevx3jJ8KUX4jFyNofpFVAB6T7i2OaZIzIBLS/y+iaMoXtYFSUptNnHBbknyamHFdR96g== 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=YFXw3UrZeC1Ey7UWqss1pxK4F3t3iXBlpHnKfGUVads=; b=NxwVUKfNQYPDLwX5bPCzHEJbj+hjycXSisl7a3jWc//W8FqunYvXdgSQGGKN+cSe+uPn8l8ptbbSbyBb9BuqVgtZj610TUgd6ZyBTDSVSgs+yn01kzQaGlXbRVrEOx0wduXvUIkWg9NA9jHgnNtfR5uPRsRGV2YJchW0BjKhexTSMciTChqlZi9kn1JB84paIlxGF5vS/clA3qg6FOb5JZzU5KpCR55VuUlLiDmkYLVA0YyGl83VLuud6AxPzLdbgeXDRyDRA5FrmjfO0MlA4UEdESwxZ7ABqb5oEmxqtMUBhnfYpkmfEZ7eyIGjlsv1swy6RwgnEBynkqzy11Z73Q== 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=YFXw3UrZeC1Ey7UWqss1pxK4F3t3iXBlpHnKfGUVads=; b=KmhFLWQ6DVnk6l/SRcO2rj/HTjWPC62ZzEZHMA3Yws/7dCkLI0u4D/cK/YNHanAEwD6/o66ENu5mc8BXmKeCTUmzvTLxW8ynYoAlwhlZEEuvaCHZtsCybAuFBB2H0Ifvymm79ADJVoOURofCs0A57QGXXLsZ/Spz/fzav5qVtuM= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BY5PR10MB4036.namprd10.prod.outlook.com (2603:10b6:a03:1b0::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov 2021 04:16:20 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:20 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 03/14] xfsprogs: Rename __xfs_attr_rmtval_remove Date: Tue, 16 Nov 2021 21:16:02 -0700 Message-Id: <20211117041613.3050252-4-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:20 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d176e633-56bd-4cfc-f01a-08d9a9810271 X-MS-TrafficTypeDiagnostic: BY5PR10MB4036: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2449; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AzrFbAxUXnjpjbrtk8xinBFXvwWQlScDlBfPlAGXeYE5Pw4no0x6wEVMKJ9knbrUNoo8xLRLdlRRrKY5NV1Gwu25n8xAZjl1u2RzvsjPHkkaMNSBKNREXAXsgp+PP5KqXdKoDCm/WJcllUNUvlUF8PzUFwVEI2NmaKyzpBym5aVwBaEjs1WLVDIdDIrlk92mIxgXuZ1XbxzsTx8EoxJ0m5skHyiqrf/x/JgM4vplTAzWVf53zg6iNBm1y8Poq0QCZmXPv4lkbroz3hpadqeABTFueLwqCkHuGp384Y1ZK5BJ7gR2uEdkDldqeIjMxQ7XHG1yeFJYrxC0gnFJ3rVwmWgo87PAk8pm4Fegaj8U24+DpXI6ouvdtdcuUlL+GDGdeUfXfJ+cpWqUdIH/sj9XsHzoj5gJ/zBBfoc7NaxU4JBlYu8YgJbzcYRGnGyIOZp6ShdeGrivKLhBLrgE9q3UkgbkzXSNoJxAyX6Ox91CC9ze/8+tlpAKAf34ca0jdPCR6t4DLOrSGy2xtF/sLFNEVpbm8JBoswr6ldUp5r0j8fweEiIgpGlHPD6hlyYPA+Xpxtgsr2WDqelbum66c8UeoNX3b6EuAQ9scxKoAMCoVnDEs8ay9qu5SInERrV6C4eAawTrLPtF47Mp5YwJRIVsjlu++rzvMTPssFayH9o5FsNWFlguLiiS8fuRsMxrzMNLih8ZSQm5rVKl8/3mWYGRJA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(6916009)(956004)(8936002)(6486002)(26005)(44832011)(186003)(83380400001)(6506007)(8676002)(66946007)(1076003)(36756003)(2906002)(52116002)(6666004)(6512007)(38350700002)(38100700002)(5660300002)(316002)(508600001)(86362001)(66476007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: fBiPwDQFBOyq7ddb8UYCHpq70XQyLl9O+H8QNJw/JexwZ2vbEGSstDajFBeBJEtmm9UY4pO9MWQSDVrWT6WSKSuJRLw2UWmGoiRguJVC9equtNbB0tOxIt5tM477mc21bS2SKgmwzFxiUl63ZEor1UCWn/LcmqylFiwCCF5yUfReTMnRxO+E2ahm/nKEvqOOZKmhf0jUhfZ9+y+M0X0k3RKh5w0RQgc9OL62bh4ReFrQ6g+3wFVTTrAohAE3kA8iGINAzlVLHGIGiXiLZ48fiGrcgrE6Db42BN2wq2jScpwG2FsIlHD3gDD0WPdWJ4o7i6UqRkBAASxhBrD90Uev7XUvoy8YTNaU5X0JC5s3sdkw8WHtZBV8VFhCxJsUOVFpd42QuQE7C+Bd6yRXZrZEt4881+cczlANRJqSsPS5yyWRtGgsQ+vSEwoTOGsKSLybGVgUmY4iEJ/TDxRQYwOs3SxNTj8FHWSiSwqs+QN5eD60/Zz6RIdkqMu+WSwsBrlXhIEo5Sb1NgaZ5CO48GgSPk4Noz5nMxlBP1QZSVo9gIupTduxJW9MXerBYKWM9wmsb8COi71/SfQBlth2pzEriQDI7VTH4+BCRbNIzSDPIjaAjemFP+SeCoZb81twiTQd99Vh+yYeWx/PE93LSQpP3xiMpTb2XCzyAIijc2VsWZ/xE0ODANiK4SyO0daZiTinY8snY19FN1iVrVAhPzKJim7eNpanGwel2xKHOvRvqr2/oDhzlFAj+ZX/cex5D+tH8qVenctWnVunY5C/wQq2Mw0Nj626DNC8rpwaNna6X29cv6Htx6VSshk+FXHQUSRsL7fgIYj0ZQTM8UYJ1Io8D5JxR6nTyuY3UXqet4QoNv5VwQMWbw4EyKjr4j5GkTJLrscTBw+3W/zzIBsHO4wsrmKjIcoXAMmY0iGV9+Orr7WqrxgBRGtO8Ckz2NAm5aC6bwkK1Z6y9p71xuVplz5tsy05OsNHcBtcIy/x9NEkNGJLFAEb9eGmbT24mry+OIjEP61eEkjeeXhfbFY9dbGyZat5t+93HlfP7PwUeWYUvELaPXVRQ92Petk637Pm2wchvM7R9S9acNhG/W8YQR87Ll2FO6vpfGMDJIiUHZoHM27WrEfuh+sdM4WxALbFkbvtQ/01JY4PZrTZcRombyYv+h2j3uBWznSpsqx8f3OL6FFsCM1EPOV3lR205JwCjVeceCdgVAFudwdkIx1XU5KUFptrntf0MGZfOUcExjsfUalAmEbSbKDrJRbQOXFEJyMzQnXvu3HN39QaeTwR3BZx074pskO5UtzRJ8RpNqVv4dPE06IUkveJEI0i31Pl8tLquFcupRY5nrWCtqBrnYeU9PbA5DT9XPPgFwfbOlejJTQGUvgl934gATD64OXNuCmJkR1iIHeWVto8JgqgdPDElrs+c7uwreGptTAWDENgI6lIQnYVqrs9+VpI2V274BcNR+xUE1jGEAe2IxL5SwWPYJ7onQGWitWTE4f2IDcm58YVXMwBEQX4DMB092kR7BbB7Wn8Dj4vgRNhvmm004Gnfg/XTjIfY5DBg1E7Jw7kisEplWKAP5AqxgjkkWTra4uY6ub+jcOW1HqN4NxyFLasuF2ypodgT3yWf7J5UAegZNMsJfCekaIU/2Du3d2TmL+M3368/ypOdSiciMTufRClmg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d176e633-56bd-4cfc-f01a-08d9a9810271 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:20.8016 (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: jeO34Vq1qxqmK6YCgwLSmbTk1rLUXJVskdGArBHFYI3jETk29jy+ssMSg/9jFgb89DgX9201gJK6nYnXllTIt+9jQvVupyDRG7IvrN/YikA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4036 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-ORIG-GUID: tNeMTxHeiHBtWeOVrI42e71aEmOlxZvB X-Proofpoint-GUID: tNeMTxHeiHBtWeOVrI42e71aEmOlxZvB Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Now that xfs_attr_rmtval_remove is gone, rename __xfs_attr_rmtval_remove to xfs_attr_rmtval_remove Signed-off-by: Allison Henderson Reviewed-by: Darrick J. Wong --- libxfs/xfs_attr.c | 6 +++--- libxfs/xfs_attr_remote.c | 2 +- libxfs/xfs_attr_remote.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 354c7c3fd38b..2957fd030423 100644 --- a/libxfs/xfs_attr.c +++ b/libxfs/xfs_attr.c @@ -495,7 +495,7 @@ xfs_attr_set_iter( /* Set state in case xfs_attr_rmtval_remove returns -EAGAIN */ dac->dela_state = XFS_DAS_RM_LBLK; if (args->rmtblkno) { - error = __xfs_attr_rmtval_remove(dac); + error = xfs_attr_rmtval_remove(dac); if (error == -EAGAIN) trace_xfs_attr_set_iter_return( dac->dela_state, args->dp); @@ -609,7 +609,7 @@ xfs_attr_set_iter( /* Set state in case xfs_attr_rmtval_remove returns -EAGAIN */ dac->dela_state = XFS_DAS_RM_NBLK; if (args->rmtblkno) { - error = __xfs_attr_rmtval_remove(dac); + error = xfs_attr_rmtval_remove(dac); if (error == -EAGAIN) trace_xfs_attr_set_iter_return( dac->dela_state, args->dp); @@ -1442,7 +1442,7 @@ xfs_attr_remove_iter( * May return -EAGAIN. Roll and repeat until all remote * blocks are removed. */ - error = __xfs_attr_rmtval_remove(dac); + error = xfs_attr_rmtval_remove(dac); if (error == -EAGAIN) { trace_xfs_attr_remove_iter_return( dac->dela_state, args->dp); diff --git a/libxfs/xfs_attr_remote.c b/libxfs/xfs_attr_remote.c index 137e5698c15d..b781e44d9c5a 100644 --- a/libxfs/xfs_attr_remote.c +++ b/libxfs/xfs_attr_remote.c @@ -671,7 +671,7 @@ xfs_attr_rmtval_invalidate( * routine until it returns something other than -EAGAIN. */ int -__xfs_attr_rmtval_remove( +xfs_attr_rmtval_remove( struct xfs_delattr_context *dac) { struct xfs_da_args *args = dac->da_args; diff --git a/libxfs/xfs_attr_remote.h b/libxfs/xfs_attr_remote.h index 61b85b918db8..d72eff30ca18 100644 --- a/libxfs/xfs_attr_remote.h +++ b/libxfs/xfs_attr_remote.h @@ -12,7 +12,7 @@ int xfs_attr_rmtval_get(struct xfs_da_args *args); int xfs_attr_rmtval_stale(struct xfs_inode *ip, struct xfs_bmbt_irec *map, xfs_buf_flags_t incore_flags); int xfs_attr_rmtval_invalidate(struct xfs_da_args *args); -int __xfs_attr_rmtval_remove(struct xfs_delattr_context *dac); +int xfs_attr_rmtval_remove(struct xfs_delattr_context *dac); int xfs_attr_rmt_find_hole(struct xfs_da_args *args); int xfs_attr_rmtval_set_value(struct xfs_da_args *args); int xfs_attr_rmtval_set_blk(struct xfs_delattr_context *dac); From patchwork Wed Nov 17 04:16:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623653 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2EFC4C433FE for ; Wed, 17 Nov 2021 04:16:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 17F4461B5F for ; Wed, 17 Nov 2021 04:16:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233027AbhKQET2 (ORCPT ); Tue, 16 Nov 2021 23:19:28 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:33714 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233009AbhKQETX (ORCPT ); Tue, 16 Nov 2021 23:19:23 -0500 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH2B8TQ030343 for ; Wed, 17 Nov 2021 04:16:25 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-2021-07-09; bh=qvEYPhoFK9r756gctj6npIhB53l0SUSOsw1nSpSzRLU=; b=LM9BLiw8JS37YbrTGyC6AU3PM/vzhx/wD6FMDOFFMqHrCegv+2Y3zbntRYFPESwLcFFo gZm5vjW7yv0AEGzkMDxR9+k9gYc7t5Z30zs9BPAPf7DFy7U66QCg6eCYrOezqWjVKr42 QNHfa2Mn0R4gL4sq89+qgDozyWJGQRZo61IAv302DB21WaTRHBQm5+tsvs/XJSYclEFX CUFOZGnXxGslZs+OJ1lGWM0eqP3OW2SDPSuleLT4Vyn/XYqhUU1QXqH0GlVQc/iB2i6x dZvWwfRXVCq4kkiuS3oBdFoCyKEv/Xp8ITTT+9F3i/wgUmsPxQzySkjxru49yc6DOfop +Q== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbhmnwx81-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:24 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4AEKi180636 for ; Wed, 17 Nov 2021 04:16:23 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by userp3030.oracle.com with ESMTP id 3ca2fx6ayv-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gAmC66f79bYCuKpLtAU8sS4zLkND1y7SAZLjfE0clKK2epjBfVX/l1/g9nWZeg5P9fTPjoR0kciPuSYQUOaFsgFZWnZp1InjlTTkTEgBe54eLKcLvAKL36J6f8ranpLnjg3fuNvw7H2y40W9Opt1IJ1QKplbzHS37mNareBNKk5sO4reRH9mmnzM8OH78o3sHWH6B2ON4KbsCKrkuRyIHypKwBHVV9EIf3izUqRoeack+J1iR2ihL9E7tZWQ8f3Qo6vTdaLVsE9IalfnSD5XllerTu39fbAb0FkQQ8ld02jyI6HGFKNULFrQnqsW94Vh2QR7uonRvHezgCDyaYWMhw== 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=qvEYPhoFK9r756gctj6npIhB53l0SUSOsw1nSpSzRLU=; b=LXyE1p4J9s5LREB75q7YYq+QXFUmbEq2DApL/gR7GFmFg8XuP4wzj1yKU7MTZEYDsNDc5FQ04zLi0WQvVp70Dcg0VBxorXeF8pSJSsF4h/5dBvNpJTIDl107EGmdrqTEdlXQMQ0zWMdZ3YdD0wEE6Il53CpR8mX2pFns/RIfd+aMAwZxvYbwded59bdgHiOAg5V8KLCqVcDpZ6C9H+El2zrPMkoonZ36eawceIcf8ZuDRKIJTneG1GmIkO50IDUNPswxydVbpbUOYjhGXDV8No8lFby520arXhFoHyaQlnDuFReYq3Ewv1rSDSPgbNOhYO7zeO9ffW1c7b879Hjz9g== 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=qvEYPhoFK9r756gctj6npIhB53l0SUSOsw1nSpSzRLU=; b=xQ4d/3sfMFtYEIDJu0cu9CuPCjwlvQIk2HVC/SlQXLSTnDGfhLVnILjp3V7RlPS2scfjEOh5KF15KsEoNFsxMdmqekvNTQDG1cRv6Mbtj8jvfe2BVYhIX7wUXJ7LSkiAXCID1qv/e+m5E/I5FBADviJHxoURPad4cjWzFwwNAGw= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BY5PR10MB4036.namprd10.prod.outlook.com (2603:10b6:a03:1b0::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov 2021 04:16:21 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:21 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 04/14] xfs: don't commit the first deferred transaction without intents Date: Tue, 16 Nov 2021 21:16:03 -0700 Message-Id: <20211117041613.3050252-5-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:20 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b30ab715-bf32-41e1-9774-08d9a98102a5 X-MS-TrafficTypeDiagnostic: BY5PR10MB4036: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1923; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QJY3oVqbi4CT+kngxUTeHgQ50B3TuugblC3VDFTw93HhHIw3YeNyNxpPdGHiQLCyIVypkPgs0bd4rMt4PtHsB2KoO9ygmogyTuhWDBOT9Ea1Jtv2KuQ6h8PtKW49me/09y7H2n0F9RsdG7ZaMFcEmY8VJNyIDMKwE0CJHKkbZQrmwOZe6QhaTI1WO7PPi/HSgBLIfbhtL5MCeDE5Bng4lOZ0gLzAktcgN7/Dvtv/8v8w5NBi0mnYIyH/uYJb7HeKU6uMjuqNxzQzSYpArGXK0rbq8U9Tkcai0KP4dRBAFWo8VKqJW6EqPi8GLpSIH/WfmjYEb3vIs6Smr0FX/wBKwqd0HeREfTKzLY4NT7W2q3AT1QLBudCKwUTR7nEeHQtQWJC526NzNYqRzKDpaFK/qhLkfWotswRBVxUj1ghMu2WWl/V7SCOY0IiKMhU31wScYSy3Wp3qXzp0suIU0O9glfQBau37KVZvaek+ZuBLYg/gMrk/boOhHa1b2XEeAIDWO7Nh10oDcJzp6yqe1lZ7CODoMclfxLCcEZYt1hdUE6N23rIyKvetNq/+HZ4C30viPKD6qAKh7JJVKzPnRVlWBrvYy73ye/0mUvKKFwQXdYLDwkQviUqbXSOeEwVKRRPe+YxMfdpcSKxIBHR2ofDSXVikgrZW6TuJPgFil2ymWGz64MSrWOwvW5cPQw4ku8hYl+M4DnhaXbY0FFOHwihDbw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(6916009)(956004)(8936002)(6486002)(26005)(44832011)(186003)(83380400001)(6506007)(8676002)(66946007)(1076003)(36756003)(2906002)(52116002)(6666004)(6512007)(38350700002)(38100700002)(5660300002)(316002)(508600001)(86362001)(66476007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: KBj5bt1TkBKrnVma6mbBP26sR7Oc99El8OCXrpi9psNO1XXoNckFIe08rsoIFj33IG87lfcy/DWTgNiIX+Cu7fA863GBW4l/iNP3uNpA+MiqDrR564gi0QFF3xzVao6h/iEbvq4DxAfmd1uHpnFRUuO30y/eGKgXyfQtvr0jP3GWSBHqlzCHCQCFDmgxZKMqqluv2PpnvB2IG7W7El7iPMvby163Rv6PgNj0eGa7VX5cm1G6b1467F6VgE3ULME+fbta22eHslvLKAG4gLIRkXOYDimlGuvWBpob07Ev7wvSJBHoUTVPWCBosf5LtRviK4Qk2MCubqFuPWCItiSARf9glgaS4W78MHzpnFpUerWucKlduueGkl3WkIRd31LsP9WbUHjV57PtAlPRzeUkssKBtMplpOxmICAAlegqdg6gVGe4wXUFr6iN21KggYS3KoLd5AYp6vOIJPuArlVZPFv51jFZJppfbVIUQD2eUALyyHolCCPzgWnPYrf3DX+BuIktMgPkYYkchMzJbvO2OpR0QZ8c7v1ZrS4JASDIUV3iAD8+OYw4E1iETfyKu4DZvH9osWlOZwQQbUw+qXNrrZIsxyYyiMy2ASihYNXVzBtrq7QICPxijyPitjWekWYXDqN2fCShSyC0sRDQqnjWtTbBJQKxVDKulkaurRKU7qP/tqwY0kOqeVWSglHSU1Kw4p33OA8GypM79ULkq/TB9mpKAG0ncN9Y3DuQvYAXQBC1OKf6Tnr52k1JnNKUNDNzT0Y8QmIc77b2CctAXK88hgfR7S8e3MUwzmWEAm3Ubga2u09qE7moQBeQZeKTuXBcpz1lrNI6gDSG8F4Trg8S9mz3iuVZ+SMqZKrSQ9cAyQ8gKgUM41iqkSfajO4w0FEPr5wICfk7yWYsqcVJRhumZIUK1+D/7G6aMsEbFbb/1+D/SA/J6xGoJKs+C8FFXaxAIxforPBxQunRplqIlxqip/aRb7nlDLtoqDQZacCYD7P0QkPu6Ye5D1RWzs41LaPX7/2FJxpwB/g3k9JKgL3YJf3sopANzzpaLSEy0dbb6VnADUm1svXGyOVFnfF5nEk7o7z+nD8TTXMZC7bj5qDz8hjzsLDKgJF8hTubhRDIgsOby0NfS7upFdZXYjU+I8/IKxoS8FrBtYgZtVqHEDw0OjdpdGsGawVDh+DXUw+S5Q385R90Yg0uBclRLYP77LtMpl4XeNoE2XmKpWXo3Bdetr7CZeVxVyl5CvPvrvzl0z24PLc8I1d0iKUpbhCmA+douqNSep1ahZtB3I9pi88NY8inRP+c1Fv1rr42xwz38DM9TjLMr0pXsYBOkw9KKSkKzT0lSk+kGIQmXh/w4ZRJ2F+6wUjBmvGbIlQr0+/myNaysN27tm0WWjBaCgQq5wuseXnlvnjvjpIY+hLIXCPNgoxhz36DDcMPs9ooFORWXiK5Iv6iGchFjw1wp4DeAyQCIEmCV7+x8xrz0M5faRYUs05aZ91B2cosjkrxGy6E8p0PbOFCfS3oWTFzYEB+WAzIKG0IYx3pkc37JtP8+MHPVD0o0ZdNeUTNFSb0c/WPq98SumffqEohg8YLJ7ynWCrV9kNoOmohFE8erYN2H66EMRPLHgvFQ1f3DVHgk6jmV7JRhOrzs84lvnF5//7avYTvYDSdnqtZOMX071pN+QFKNw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b30ab715-bf32-41e1-9774-08d9a98102a5 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:21.1202 (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: DmVG6AmFtRI036COE387xLEuXfsdInSGbdN/kgzwdzzvXCNgWejyvoQ8kVjqBCwh1QmfDW870lxDUI4HLyWHkueFGe+kH6WYITj0mt8y4jk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4036 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-ORIG-GUID: yYZ-LmIvGXEI-KJWNLBBAfox8azTXymo X-Proofpoint-GUID: yYZ-LmIvGXEI-KJWNLBBAfox8azTXymo Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org If the first operation in a string of defer ops has no intents, then there is no reason to commit it before running the first call to xfs_defer_finish_one(). This allows the defer ops to be used effectively for non-intent based operations without requiring an unnecessary extra transaction commit when first called. This fixes a regression in per-attribute modification transaction count when delayed attributes are not being used. Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- libxfs/xfs_defer.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/libxfs/xfs_defer.c b/libxfs/xfs_defer.c index 1fdf6c720357..006277cffdef 100644 --- a/libxfs/xfs_defer.c +++ b/libxfs/xfs_defer.c @@ -176,7 +176,7 @@ static const struct xfs_defer_op_type *defer_op_types[] = { [XFS_DEFER_OPS_TYPE_AGFL_FREE] = &xfs_agfl_free_defer_type, }; -static void +static bool xfs_defer_create_intent( struct xfs_trans *tp, struct xfs_defer_pending *dfp, @@ -187,6 +187,7 @@ xfs_defer_create_intent( if (!dfp->dfp_intent) dfp->dfp_intent = ops->create_intent(tp, &dfp->dfp_work, dfp->dfp_count, sort); + return dfp->dfp_intent; } /* @@ -194,16 +195,18 @@ xfs_defer_create_intent( * associated extents, then add the entire intake list to the end of * the pending list. */ -STATIC void +STATIC bool xfs_defer_create_intents( struct xfs_trans *tp) { struct xfs_defer_pending *dfp; + bool ret = false; list_for_each_entry(dfp, &tp->t_dfops, dfp_list) { trace_xfs_defer_create_intent(tp->t_mountp, dfp); - xfs_defer_create_intent(tp, dfp, true); + ret |= xfs_defer_create_intent(tp, dfp, true); } + return ret; } /* Abort all the intents that were committed. */ @@ -454,7 +457,7 @@ int xfs_defer_finish_noroll( struct xfs_trans **tp) { - struct xfs_defer_pending *dfp; + struct xfs_defer_pending *dfp = NULL; int error = 0; LIST_HEAD(dop_pending); @@ -473,17 +476,19 @@ xfs_defer_finish_noroll( * of time that any one intent item can stick around in memory, * pinning the log tail. */ - xfs_defer_create_intents(*tp); + bool has_intents = xfs_defer_create_intents(*tp); list_splice_init(&(*tp)->t_dfops, &dop_pending); - error = xfs_defer_trans_roll(tp); - if (error) - goto out_shutdown; + if (has_intents || dfp) { + error = xfs_defer_trans_roll(tp); + if (error) + goto out_shutdown; - /* Possibly relog intent items to keep the log moving. */ - error = xfs_defer_relog(tp, &dop_pending); - if (error) - goto out_shutdown; + /* Possibly relog intent items to keep the log moving. */ + error = xfs_defer_relog(tp, &dop_pending); + if (error) + goto out_shutdown; + } dfp = list_first_entry(&dop_pending, struct xfs_defer_pending, dfp_list); From patchwork Wed Nov 17 04:16:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623651 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AEA6CC433F5 for ; Wed, 17 Nov 2021 04:16:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8CBC661B5F for ; Wed, 17 Nov 2021 04:16:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232840AbhKQET1 (ORCPT ); Tue, 16 Nov 2021 23:19:27 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:64174 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230227AbhKQETX (ORCPT ); Tue, 16 Nov 2021 23:19:23 -0500 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH2QFrr023608 for ; Wed, 17 Nov 2021 04:16:25 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-2021-07-09; bh=7AsPKC7mqMIy6JBM6hOFZS3MelfI6sElPzqVMDIRjvw=; b=am9pwYhx4p5xyzLfDEX84cM694UFMtfWBT1CkA48RWIBgNd/HwK2dC6UcRUTbjc1y0F0 Yhl6nU3tcaSYverrX3Oeoe5Fq7aVIy7Zobh3S+FeoGIM8dsaPIvhILQD2sP/r0pPJhGv Vev6BbZPCmWX1tVs6lYTV406GRPkSQQyVYzkvnY5+lbhd3Ar7eY8sM7gcA4U+KbU4+NQ qNSKBr5Msg0Do42H6yeDN7H1zJFMS3Ejyl2ENgxChFUO8kuZ39B3D0OW7zY1J0inZq+I pPbIXcDqxKie7FB4MmHBw8aPL4P/d6/0BKIHt0A4PiWdGsWS+v70duTULykArSfsZcNM iA== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbfjxwws6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:25 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4AEKk180636 for ; Wed, 17 Nov 2021 04:16:24 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by userp3030.oracle.com with ESMTP id 3ca2fx6ayv-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vd+8c9HyxAY5h0ybWSO0yc/y5/LH+hDTaTJQuo8PlseiidCdFn6yGQfUkHeYxhOVOXBVBBHH38RRiaKpdBbwiojUs/7WtMQneEVXHxSGVSUnITyDnHvM0ItfkjatqWDRRV7UYjGBYZpj9YQHuEEBM7+4JBWJ+4t2/CxopoMbRs+GAxcJwZw5uTQxSFSURjCB3GLcNFYqrTb5NX4b2teWSJud1w9oplMnZW1UAXlV2V3OIxx8Kedbwo/YJPBAWf4H38gOrHSk6RUTGeRlWxX+PbUiKjF5vknO4WI0HqBfCabswxFcWoBmHRyk8o47Y7a79mjwznHsAoFBxJ5ra8SsYQ== 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=7AsPKC7mqMIy6JBM6hOFZS3MelfI6sElPzqVMDIRjvw=; b=QLrV2RVNzpO2F8Q0EhYCSJWTH6ZtPz3IccKDTjR6aGuOYoyc5IoYDHRcb45BxgU76aNOlZTl+X9+1i/lFml3gA7kQOPhzp7saI+kEjKDkLTOuqHoHo+kbcyyyHs6PssiMHiubhx/guza4YC8i7o6DKfynlDzfmzZo4rRfZIPhKgKH5YvNwQnTf2MgpbuGcr2TPnPqTnxF89LkKdsj5vtfqBgjOnm5J8TKLj5PylxZqXfYjFOiEQEQJEj6Fnb3WrXf/nJ98mTpGakizGCJcmAn9fM+oypbahvCMGn3acQyTZylzb5rhSEGhVajzsS+kf507xGDG9xCwtDbzTFXjswGw== 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=7AsPKC7mqMIy6JBM6hOFZS3MelfI6sElPzqVMDIRjvw=; b=fg+aZK1CiLPjLj5dHwexEqn6LnoZ6Yy/xbwDL6aEzSPhHoRXaIgcDLa/UtpU0aV5r3zmfbGYNjlO4jr4xldpUfnvaTAWi09mpwrfPXZjWfAv4VpLE0Ty6h/265AU9JcmCXZeHWeGZitNrHIrPjebW4mnfCiIQvU/CmT4jjLttwo= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BY5PR10MB4036.namprd10.prod.outlook.com (2603:10b6:a03:1b0::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov 2021 04:16:21 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:21 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 05/14] xfsprogs: Return from xfs_attr_set_iter if there are no more rmtblks to process Date: Tue, 16 Nov 2021 21:16:04 -0700 Message-Id: <20211117041613.3050252-6-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:21 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 75b9fa93-2990-4395-e724-08d9a98102d5 X-MS-TrafficTypeDiagnostic: BY5PR10MB4036: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2733; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WJDdGnBux1NWLy0B0CQIj1iyDR9NyZRs5pY4HCgahTwESXBVDiOLDYbbT6VFCbx4rpdxF0rOEN4DX7tIivtV0TOzfnSjT1DxH+0BX/lIAjl+4Tocd4t94IpyfCHRl2pDxKKLrcbvAbue0uHNXCLaus9Et5ZX32ufiA+daFAISnG+PZOE2XFwUmeiXEbuyIq+oGLqJIexP+j2zv/DjGru9/q5xAgOCE28Yre1sGaBVyCAtwmG/xwobQclRYbVfak0OSFhql6IoMFO61u8DS/o23FoezJn14TmthAAcbVEimjkkk1UuOP6+C/FaXS3O9x7yiDtTxx+TGfjBJcABfTVHSEX3mwt8IqjFkP/RG49Z9wGPHh8KkduOLSJw+0dTeJcDtAwI2ivqNvhJMzTi1ahDgoPQb8vAZnN/dOd5IdwD/qWlPXxtcB1ODirdw2dgTQMU18PiSAQnAvugXYkKuhsHef9DB3qxF2uK6EbxSjjP+BiJIOZyC2focBu7j4vECZNec/mAX5wV3Hnzmdb1AQX0YVYpyyu0MAWQLaSmWACYdc/6hGJSZY+Q/5qMxvphZPnDb8TmWKnciYHFYsm0YMS2SHqY3aHuNehlf/1lXWs8qocy9whvYhiKLHpaKEZkuy4JK8l966fErpnee/C2sObkrQXIK4+lN1xj3zJHvuEsptYudMZCiQ/o0PE6MbouR9tZdocA9Bwa8e8cLZM1WnRnbZ1KP1w8sroVl81JReFFxERwpjXdpWiv3Vbdpgd9KYkQ1qj2nrPBT0Gk83NWrtfv0T5fKVMp7N+FlkXUAZ0VRA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(6916009)(956004)(8936002)(6486002)(26005)(44832011)(186003)(83380400001)(6506007)(8676002)(66946007)(1076003)(36756003)(2906002)(52116002)(6666004)(6512007)(38350700002)(38100700002)(5660300002)(316002)(508600001)(86362001)(66476007)(66556008)(29513003)(40753002)(133343001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: U86xGFLeVUxkmtgJBO9wZ5m6sOvCH5WtcxGYROxTNLEprm6Jod4PXLjGFlDn5LsAO0gw43yWNmCV/KhucKpEfgT6aqjwqvcu8Qw5ns+TGp9lvOsEAscYdvnfxq7JEtM3rf34gkdpVylddTuD/cOxVPFAMaT4N1hKym6Ts88qYj6OnIPuGUgU0UIfMZQhZjfrhjG9XsM1qjxcHK17mJzZrqQ0MS3EZzxZSMhFppe+adZcXHhmNX15+ShAaFRHqbOyKteYkBVBguLZiI6U25NJimMaetGDsQjXWPdoHuy46OX5galFkqBmXj6dwkN0gZEUX+Cw4vV/4mG8R+5hrUYfBbUrGU/buxXA0k5W7IvVZ2hQBXW1WrqBJ6I2MdL/g/rpDsfD+rIgu/lhmrZ6FJ0bLy0+lGwEthAzvoNByPGpWtMTTO4HjsBhtKvp36X2W25VpOBIPGtBm94xrNPaRobhrFb8QuJJYqHfWJkesnxDnoR1cmyUeGzirE9yMkaqncNCPFoLhr7L+1/UEVLjP2zUFbLFqbb4lf6tHtaGxLMY2arcA4028w2yn5E3eyMXR17jH6SlKhypYKR9e+FtoWaZB1S03bpLneyVQ2Ue4r7HTtDGjd7r1dCOKk/5zdsiXfaQN4XXUgqTR1v1GPaSjLqNH/n78eRhtuXUq9wVaQ6IJGd6pf7LrUJsbdj9E6jytIPGmDZNw/CXysf5gv5WPYF61JlS3s90h4QLQve/y3nqPchqGhZWqcr0VZlrYPwZkcaIPmq8bFfbAIeQUjh8ZiIeqKZhRYWBMk1WZfsGni5erma7es6fV8zUOtFAkCGR28wZ2YAv2w2psvNrIPdin26gLWGQwOKuuaYoiEZGyrk55suGpdjuJhcNJ+/9alZH6SzFS9ktzQc7vyLXlLnUJen3Dk9omttPsTbublifZk5pKwHMQwrcw1vnMrVqBf0eOW+fYFVW4QDbmEFz0tCyNAtcTu1yZLqNUYrk7pjCx6DIbYLCEb5ceriaKQiz2Mn1Oso5ahvow78HAZJlRqdjlrzz/kmpeMJ7oCjbVaretjhedyYMMIMydhrgYZrv0RuZmVs9OalK1CQXRGtS5LW40TIUHjv8gEWuquiedAAhMAsD9u6nrZ2r2qTSBdPeA4X80nZ9xQjMYQSdN5Rud4Ds9AX5LwwDGr/vc34no0RlyAukKsd8fvGkhVY7aUqUZnrNrjGJID4DvPK+FD2YoK3BesxS5h7dBSEZ//5gXrMcm9hOqhOlrjz9ZBFJtsWlbhF65vZgBC2QNi3ZNCXo7osNvI0RBssCYiDcFdpRUe2k+5NkoWVDUdQUw2BJlXeO9O0MgQ6B06wkh44vynVziyKNEU3+RwvrqNR3MXRtsqWNaeENCtPKT8Qpgbo1jvp3k6xQLJ3ToMPCshTxYarWVyITB8JN7wpRII5o1DPefg13Mb6Y+dW4pYQEuP3Z8kps0B51gL4GDvU+ozyGBrXrLT28d3hLutWsCfwJZMMpwaXElyUNnnv9WSI+DhM7N0P/Fvnb6DQ62u4sf72ZSfLcmQd4qhkqAJdUlt5yl+UoGLBs96XQoCay0WB9FMotWcviCYL/V/c943I5hxyuv8RPYpnozCKGJLgLUfeIqLYim48waWH0jFyxasWNG3QrPvbGxm18GQ8h/5M1YmqIidMapv0GAp9CKA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75b9fa93-2990-4395-e724-08d9a98102d5 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:21.4169 (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: H6ifUd91PYcvTJfgkM7L/l+787tNwCnFQ92OgBemlI0i9kRHVaJSeaWBq0gPlN/d67Yn8M3sUSiOgR/v4G7NvMiu5Ql6MO6x+hCrcI8bcAo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4036 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-ORIG-GUID: 8TYG2JtycQiiSzgSJjiT0DbQB0pxmIH1 X-Proofpoint-GUID: 8TYG2JtycQiiSzgSJjiT0DbQB0pxmIH1 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: df21062113850c5aaeaa38b5194ee4c64767fb7a During an attr rename operation, blocks are saved for later removal as rmtblkno2. The rmtblkno is used in the case of needing to alloc more blocks if not enough were available. However, in the case that no further blocks need to be added or removed, we can return as soon as xfs_attr_node_addname completes, rather than rolling the transaction with an -EAGAIN return. This extra loop does not hurt anything right now, but it will be a problem later when we get into log items because we end up with an empty log transaction. So, add a simple check to cut out the unneeded iteration. Signed-off-by: Allison Henderson Reviewed-by: Chandan Babu R Reviewed-by: Darrick J. Wong --- libxfs/xfs_attr.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 2957fd030423..53f4d546ed6e 100644 --- a/libxfs/xfs_attr.c +++ b/libxfs/xfs_attr.c @@ -412,6 +412,14 @@ xfs_attr_set_iter( if (error) return error; + /* + * If addname was successful, and we dont need to alloc + * or remove anymore blks, we're done. + */ + if (!args->rmtblkno && + !(args->op_flags & XFS_DA_OP_RENAME)) + return 0; + dac->dela_state = XFS_DAS_FOUND_NBLK; } trace_xfs_attr_set_iter_return(dac->dela_state, args->dp); From patchwork Wed Nov 17 04:16:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623659 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6D3D3C43219 for ; Wed, 17 Nov 2021 04:16:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 57F7761B64 for ; Wed, 17 Nov 2021 04:16:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233008AbhKQET3 (ORCPT ); Tue, 16 Nov 2021 23:19:29 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:35096 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232680AbhKQETY (ORCPT ); Tue, 16 Nov 2021 23:19:24 -0500 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH21HAT030389 for ; Wed, 17 Nov 2021 04:16:26 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-2021-07-09; bh=CRtaHDno6i6rXoyBQ1MYcApguD9WwabFyLUXilNdRJw=; b=gjHNn7myAPU6ivCgBriEXrRBkcnj7JpJQ58/3LB9+/hQZh/GH1TFR3nE4npDexbSW1Up J7neXlGG0SJNV7yv2HnL2qe0aXEqwp0PfBpVluPdU3Cr4o9mUb+aTxexTzhX5K3DBqgl tQwG4/VXb60Mir57S2h1pXTCirt87c7QmNV6ydEuv3gH2mMKHtCeLQyRkQOa/KWxj0NT T2VB6laD+diPRAMfqK4blYOQ+wnAe2th9fF/IyB9WQEXBbgWQQwtvxtYIEDah6rxy5DV 57MNwd/V6xNpEUC2MeOytAl1ddz9vhGTIxhekEK0BBZhqaSFkVQf9VoVtqLeSl1uJMFR 3A== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbhmnwx82-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:25 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4AEKl180636 for ; Wed, 17 Nov 2021 04:16:24 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by userp3030.oracle.com with ESMTP id 3ca2fx6ayv-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hc9sSMP+95QbBsRXpdZM1QtivBnPb5xKdHGCzwaIume3IQD64KeJD6pmm8SBEJ1g3b4I8E5C+nJxBYWqByBlgpgFMTnXX7sjOyuMDOJ+hjwqt6/iZpw0JJ+uVH3XC6u1GDEY6ZbH85/1dG4vzm83A3eiZm4A7uaOaIZeB23SwebZFNKDYgO9sX1BdKGSXY0Uk5yrqlnK5NrfmbfSqXEAYzNdqw+w7BicL39721vWVLyfX0UCQKFoDUcOMOnY7QHuEhjhMWtlrSv0Y7U2oXoCTpc+c9z1MekwsP6xNxT1ftNQbWw7v/mCBY7NnXgR3PtJTSjt70ZbZwt14QN/7bBuzw== 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=CRtaHDno6i6rXoyBQ1MYcApguD9WwabFyLUXilNdRJw=; b=ZFAemHYEocMNvXxfTre0cPomzq8q4GGendvyVKP/k67o9eomjL9A8OTRH4wVYwzl162FEOaD8aPui5AsJrxL4r/W1WFgadJJD24GBmaalbjdbTe9N6kvLR5Q8OU5a7KDch9UbcQDZspS96Vqu3fmfGPpmwD1zN7uF8Y3/kaIFCjcIBJRXeUrwJYdmsXGe47X7gItK0ji94EZe5XA3dD949JWN9Bj5ODdRxgF2eExt2oVghg5XnAaHvmgz96Yo1SoF6Nw+28UIrowoGNz72/MFNJu6qT+UdL6c6qJoCf5VTRbn7K08dsNVpvqUQ6L36+aVFYpUbU4pxpdMBTCFHMW8g== 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=CRtaHDno6i6rXoyBQ1MYcApguD9WwabFyLUXilNdRJw=; b=fY4B8O6ZTEZToOKom7tFNAAGmuwC7sMMpG9Elsi+HorhSLBqwH7f+w2cnK8je0fuX5tyKbKWZ791Khyr/os/7kGr/c398HFGnxMUHFdCMYQ5kgqZtc6xDL3AI3TiRy2p3X6gG25UvNJ1aLqCCygSz0BC4yKnrQpGeUb1TAWnJ/0= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BY5PR10MB4036.namprd10.prod.outlook.com (2603:10b6:a03:1b0::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov 2021 04:16:21 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:21 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 06/14] xfsprogs: Set up infrastructure for log attribute replay Date: Tue, 16 Nov 2021 21:16:05 -0700 Message-Id: <20211117041613.3050252-7-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:21 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 42b04aaf-7084-41b1-0fef-08d9a9810306 X-MS-TrafficTypeDiagnostic: BY5PR10MB4036: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: r3sZW5GNlx0iIDFi607RvX8dyvj72137R3QFapPutgWveOQLOdhf9W+uUvFHBTIiEB1NAK/Y6Zkpg6c9gumdEUNvSoA9hKSzO+GgQVVBuJSDBuisLDI2SZYfFK2SE3HlNChiuWKbT8uGaZ+dXnDa2Vhf3e9m/0U6L6fPLVeSVzmqbNJZlW9B5ygTyxIbvn0UIoM04KQcObrJCKZPS/4nplnFZqkjbMIr2dCiz3y7Sfh9+B0hrnX5oUsi5d1QrF3wTLPnqM29fI4NCq5bjUcGVt44aFWFx6r3IUf5LrW3aBK4snKUXt1JwODpuFb0QGKxXjQHrY2jVC5XlZYAeACYswoCVGCz+nhZURUVDfnWM1tpsDDQxjEzcPS6yf/elAJxe9GOHUZU9yRg65vi1ekIvRyw/CoB0L7fQvxxBXcnWYUFkZZkwo6d9/8BQlNNYx36uPg471jVZFOjsjc/GjbcGrCyVp5a+Uw/J/fe/UGl8CMY/8E1dwtMMyyVCrYQgvCGTwMPzMC+dlWp5OLSPanDz9lwYNDcLSo3uoLcS5m1PD7+7dUW/SyMP4d2QZtQPDXWm8pZBX+NJAYUKw9ui9tSYhYLGwqicmCd0eBPIRZ9SmTmPSrHCAGMhqE7/7XaiheHVE+NQOzEKVxKQF1rb9MfTFHYzJapDWNTvTe9SzaBUATvno4ec/WbUW0SwV65N3os1/GzfXlrrJqIhjyDeXghAw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(6916009)(956004)(8936002)(6486002)(26005)(44832011)(186003)(83380400001)(6506007)(8676002)(66946007)(1076003)(36756003)(2906002)(52116002)(6666004)(6512007)(38350700002)(38100700002)(5660300002)(316002)(508600001)(86362001)(66476007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: I/xGtJVo59z3703FeCyaYv/eeJClenRpiCY5fFw57Q44k4t2F2EIkrxiR6hovShAbj8z2KkXPRm4hj3TfwBLFGlpHWWawf9Q6H8dGvPN0SsqV5Rb99WGT3gvz50xxj1nxaAVtYmsZMrXsw1nQipfQNZHkLXOthwzsweetIi5t2ekwCfprBjqqIWzyU2p1V/Sw9F/n43PKiIsn43OcD00vRnjNRl9RYP9BZUACnCqGLEH8PT+UG43IW7KEkKA6kzj+mca5i+P1gMS+/31QwDFisRHQk6FR4b9/IXnNWvqap8E3wYq2JyCrWKtC4BKJwqxkmhe4hdqkqDiZ8mOIA3TXdNE02O98O1cvuHJfHHBhT493ahIzqbkkU/W6QvZhd+SfL1HZn1bKqDgbq1iZh85M/exEqtZXqxhILZeE6tQA0LeLxecUW0TZDEDs2BCKEhNbrLTZ98YPdC2dni3GVA96WXV5ROLeXwB0GNlX7mRkjCU/nkqFD8MiSDmIDkd1bx4Pgtu0Fu+C7MK+J8/fvltRPZh+n3BnWwRxZSbfMzQxugwKJzTN9Lm3YXAcdGLrxbI107jsmB5iJYObjUgRLO6US+6H08yHCCTzi0SoFRb6P35Y58A9AEQ0Yx+lDyA4TJPeXAix8ePBpAOfxgaoo4CTNkgWaTScSWN1/OHQW6vOXqUS7/oZ1Yi6hVSY9GHZi9+3ybDKN9f0ni4yCBYHGiuZw86GumIdjqrmoCSFSBbdWf54LQwdotrSaj2M77jfyPifOv873L5xKfzPnht0lEcl+w7hKyt0uC0+QsGd8sshp7fOCzxqljAwwtX+QxHLrnLa7gTfZqJ5fr/3Xva/WGEBUx8nH+80HU4MRqGr4vGIAPmSHVKCBvFp39FQDnJYXDq0umJ8AEbxT3895dVu4mTbm0b8/L/PXv1DMGbIxEU63m8ybqd83HnJBunrJtP7Rf4ndjGDRY2F77ocFPB0VPj6x5/Uyq6ycruia6sEevpryl85cdSXA0c3GnFM8FWVs1edizLRgFJHa5nSY5tXDO7jb8rvx6S5f59eqIkz1H4vPjwUQduiIAQCxmNh4a5uN+qAfOyexmqJ2gLo7ceeXl0fiZMQKmv8xu6NnnozTiNjOdMBcgoe062zpGDo3kb/8TmLTBS+yAP04w9dA9c5N00d16k8aih50vLFyS+mpAC03JBUrVByx5pE+1/L5clC9h/Y3z3H4mcF1YBdN/Ug0l/G2Ca4iwS35rDzbK8WIgRxzfEbEpI+hdm5GtzLY9Jc0zCHRSnW+9VRZZK/IHghjw7/5pnKKY/y6IeIpUolVzLSL7ZNGx8iqTA6jth0qqeRM1Gjf6jqY6Smf9bFKCrOFT3WE09VT2ciBrFMrcKnWuVHuUWHL0wqulPGRTJKqdl7RvFQPaj8ybTGWPVQ/yiIx6vew3fIC9jOD/yE8nTK7LA1R69bbC4XAFEi14Aw3q5vdNHjTQsJhC+NyCxALMxOwNGFknJO40h593XTZuNhF2krdiPOtmD/U673p20+kMihmwpZfV3YppnuCO4CQN16rdcJ54r7pp5TFUTqor2A/uTtoLQ0cqJsDaY+sciPhh7aAFW7EOihqAmowNbnvXfctvto/AJ28Rer1om2kna5Zn/Rsg1mR4wmLvL/z3kIDYe+ERhf88fswVZXChsBVAcrMZUcQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42b04aaf-7084-41b1-0fef-08d9a9810306 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:21.7624 (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: ML9MijpE5MFdoxbmFU4CWbFXDzyIdS2F4fCdCGRfbh1bsMswgRjekkSVUf84xkjuAPwRhwRTQe3n0yV17I9rHD9LHzd4Kk7OXQxUE43ooCc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4036 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-ORIG-GUID: TX-NKNMNgSVA9KJtghXaKJBaxrg2qUf9 X-Proofpoint-GUID: TX-NKNMNgSVA9KJtghXaKJBaxrg2qUf9 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Currently attributes are modified directly across one or more transactions. But they are not logged or replayed in the event of an error. The goal of log attr replay is to enable logging and replaying of attribute operations using the existing delayed operations infrastructure. This will later enable the attributes to become part of larger multi part operations that also must first be recorded to the log. This is mostly of interest in the scheme of parent pointers which would need to maintain an attribute containing parent inode information any time an inode is moved, created, or removed. Parent pointers would then be of interest to any feature that would need to quickly derive an inode path from the mount point. Online scrub, nfs lookups and fs grow or shrink operations are all features that could take advantage of this. This patch adds two new log item types for setting or removing attributes as deferred operations. The xfs_attri_log_item will log an intent to set or remove an attribute. The corresponding xfs_attrd_log_item holds a reference to the xfs_attri_log_item and is freed once the transaction is done. Both log items use a generic xfs_attr_log_format structure that contains the attribute name, value, flags, inode, and an op_flag that indicates if the operations is a set or remove. Signed-off-by: Allison Henderson Reviewed-by: Chandan Babu R --- libxfs/defer_item.c | 3 +++ libxfs/xfs_attr.c | 4 +--- libxfs/xfs_attr.h | 30 ++++++++++++++++++++++++++++ libxfs/xfs_defer.h | 1 + libxfs/xfs_log_format.h | 43 +++++++++++++++++++++++++++++++++++++++-- 5 files changed, 76 insertions(+), 5 deletions(-) diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index b18182e95ac8..a1f0d7e52ff3 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -20,6 +20,9 @@ #include "xfs_refcount.h" #include "xfs_bmap.h" #include "xfs_inode.h" +#include "xfs_da_format.h" +#include "xfs_da_btree.h" +#include "xfs_attr.h" /* Dummy defer item ops, since we don't do logging. */ diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 53f4d546ed6e..61cb7ea9ff5b 100644 --- a/libxfs/xfs_attr.c +++ b/libxfs/xfs_attr.c @@ -61,8 +61,6 @@ STATIC int xfs_attr_node_hasname(xfs_da_args_t *args, struct xfs_da_state **state); STATIC int xfs_attr_fillstate(xfs_da_state_t *state); STATIC int xfs_attr_refillstate(xfs_da_state_t *state); -STATIC int xfs_attr_set_iter(struct xfs_delattr_context *dac, - struct xfs_buf **leaf_bp); STATIC int xfs_attr_node_removename(struct xfs_da_args *args, struct xfs_da_state *state); @@ -166,7 +164,7 @@ xfs_attr_get( /* * Calculate how many blocks we need for the new attribute, */ -STATIC int +int xfs_attr_calc_size( struct xfs_da_args *args, int *local) diff --git a/libxfs/xfs_attr.h b/libxfs/xfs_attr.h index 8de5d1d2733e..26f67cc79082 100644 --- a/libxfs/xfs_attr.h +++ b/libxfs/xfs_attr.h @@ -28,6 +28,11 @@ struct xfs_attr_list_context; */ #define ATTR_MAX_VALUELEN (64*1024) /* max length of a value */ +static inline bool xfs_has_larp(struct xfs_mount *mp) +{ + return false; +} + /* * Kernel-internal version of the attrlist cursor. */ @@ -461,6 +466,11 @@ enum xfs_delattr_state { struct xfs_delattr_context { struct xfs_da_args *da_args; + /* + * Used by xfs_attr_set to hold a leaf buffer across a transaction roll + */ + struct xfs_buf *leaf_bp; + /* Used in xfs_attr_rmtval_set_blk to roll through allocating blocks */ struct xfs_bmbt_irec map; xfs_dablk_t lblkno; @@ -474,6 +484,23 @@ struct xfs_delattr_context { enum xfs_delattr_state dela_state; }; +/* + * List of attrs to commit later. + */ +struct xfs_attr_item { + struct xfs_delattr_context xattri_dac; + + /* + * Indicates if the attr operation is a set or a remove + * XFS_ATTR_OP_FLAGS_{SET,REMOVE} + */ + unsigned int xattri_op_flags; + + /* used to log this item to an intent */ + struct list_head xattri_list; +}; + + /*======================================================================== * Function prototypes for the kernel. *========================================================================*/ @@ -490,11 +517,14 @@ int xfs_attr_get_ilocked(struct xfs_da_args *args); int xfs_attr_get(struct xfs_da_args *args); int xfs_attr_set(struct xfs_da_args *args); int xfs_attr_set_args(struct xfs_da_args *args); +int xfs_attr_set_iter(struct xfs_delattr_context *dac, + struct xfs_buf **leaf_bp); int xfs_has_attr(struct xfs_da_args *args); int xfs_attr_remove_args(struct xfs_da_args *args); int xfs_attr_remove_iter(struct xfs_delattr_context *dac); bool xfs_attr_namecheck(const void *name, size_t length); void xfs_delattr_context_init(struct xfs_delattr_context *dac, struct xfs_da_args *args); +int xfs_attr_calc_size(struct xfs_da_args *args, int *local); #endif /* __XFS_ATTR_H__ */ diff --git a/libxfs/xfs_defer.h b/libxfs/xfs_defer.h index 05472f71fffe..7566f61cd1b3 100644 --- a/libxfs/xfs_defer.h +++ b/libxfs/xfs_defer.h @@ -63,6 +63,7 @@ extern const struct xfs_defer_op_type xfs_refcount_update_defer_type; extern const struct xfs_defer_op_type xfs_rmap_update_defer_type; extern const struct xfs_defer_op_type xfs_extent_free_defer_type; extern const struct xfs_defer_op_type xfs_agfl_free_defer_type; +extern const struct xfs_defer_op_type xfs_attr_defer_type; /* * This structure enables a dfops user to detach the chain of deferred diff --git a/libxfs/xfs_log_format.h b/libxfs/xfs_log_format.h index 2c5bcbc19264..f2cfa9724448 100644 --- a/libxfs/xfs_log_format.h +++ b/libxfs/xfs_log_format.h @@ -114,7 +114,11 @@ struct xfs_unmount_log_format { #define XLOG_REG_TYPE_CUD_FORMAT 24 #define XLOG_REG_TYPE_BUI_FORMAT 25 #define XLOG_REG_TYPE_BUD_FORMAT 26 -#define XLOG_REG_TYPE_MAX 26 +#define XLOG_REG_TYPE_ATTRI_FORMAT 27 +#define XLOG_REG_TYPE_ATTRD_FORMAT 28 +#define XLOG_REG_TYPE_ATTR_NAME 29 +#define XLOG_REG_TYPE_ATTR_VALUE 30 +#define XLOG_REG_TYPE_MAX 30 /* * Flags to log operation header @@ -237,6 +241,8 @@ typedef struct xfs_trans_header { #define XFS_LI_CUD 0x1243 #define XFS_LI_BUI 0x1244 /* bmbt update intent */ #define XFS_LI_BUD 0x1245 +#define XFS_LI_ATTRI 0x1246 /* attr set/remove intent*/ +#define XFS_LI_ATTRD 0x1247 /* attr set/remove done */ #define XFS_LI_TYPE_DESC \ { XFS_LI_EFI, "XFS_LI_EFI" }, \ @@ -252,7 +258,9 @@ typedef struct xfs_trans_header { { XFS_LI_CUI, "XFS_LI_CUI" }, \ { XFS_LI_CUD, "XFS_LI_CUD" }, \ { XFS_LI_BUI, "XFS_LI_BUI" }, \ - { XFS_LI_BUD, "XFS_LI_BUD" } + { XFS_LI_BUD, "XFS_LI_BUD" }, \ + { XFS_LI_ATTRI, "XFS_LI_ATTRI" }, \ + { XFS_LI_ATTRD, "XFS_LI_ATTRD" } /* * Inode Log Item Format definitions. @@ -869,4 +877,35 @@ struct xfs_icreate_log { __be32 icl_gen; /* inode generation number to use */ }; +/* + * Flags for deferred attribute operations. + * Upper bits are flags, lower byte is type code + */ +#define XFS_ATTR_OP_FLAGS_SET 1 /* Set the attribute */ +#define XFS_ATTR_OP_FLAGS_REMOVE 2 /* Remove the attribute */ +#define XFS_ATTR_OP_FLAGS_TYPE_MASK 0xFF /* Flags type mask */ + +/* + * This is the structure used to lay out an attr log item in the + * log. + */ +struct xfs_attri_log_format { + uint16_t alfi_type; /* attri log item type */ + uint16_t alfi_size; /* size of this item */ + uint32_t __pad; /* pad to 64 bit aligned */ + uint64_t alfi_id; /* attri identifier */ + uint64_t alfi_ino; /* the inode for this attr operation */ + uint32_t alfi_op_flags; /* marks the op as a set or remove */ + uint32_t alfi_name_len; /* attr name length */ + uint32_t alfi_value_len; /* attr value length */ + uint32_t alfi_attr_flags;/* attr flags */ +}; + +struct xfs_attrd_log_format { + uint16_t alfd_type; /* attrd log item type */ + uint16_t alfd_size; /* size of this item */ + uint32_t __pad; /* pad to 64 bit aligned */ + uint64_t alfd_alf_id; /* id of corresponding attri */ +}; + #endif /* __XFS_LOG_FORMAT_H__ */ From patchwork Wed Nov 17 04:16:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623661 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 53D3BC4321E for ; Wed, 17 Nov 2021 04:16:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3E1E661B5F for ; Wed, 17 Nov 2021 04:16:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233016AbhKQETa (ORCPT ); Tue, 16 Nov 2021 23:19:30 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:36328 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233030AbhKQETZ (ORCPT ); Tue, 16 Nov 2021 23:19:25 -0500 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH2e5tE030690 for ; Wed, 17 Nov 2021 04:16:27 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-2021-07-09; bh=/pR4wokD5Azel+3rdNIK75KpN/hWXyV5VuN20V1JDRc=; b=kiITfZzGJVGjvZbympUN+Ry53EKgRnPd0eMzSjmFaL8mMZJA9KX4F2+sBgKqpCrX9rqm 43F1pnaHco0ZKzQ1ZAhn/6Vg2l1znP9LK+OIBJRwCN+QQgTQCVvua+1MGcygA/2zZPD2 6Wc7ssdGkvMb9+z5pw0uuv8WMVHZRE0bigXNsNJxNWyfPxdnE+MhGMRW9sQBiXZZ529b is9BiWwa38p1THUr0KBbgJoznNfP0+ZgeWQH3+fSNTMNc861XvRtJfuVqL3d4zY2T7E5 qb2TZtav4iNCk/LNOoEMEuzK6x68i6X86GQNs7JICBvJl7E13ei1J3Fcf19PcLPWS/j7 9A== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbh3e5bhk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:26 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4AEKm180636 for ; Wed, 17 Nov 2021 04:16:25 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by userp3030.oracle.com with ESMTP id 3ca2fx6ayv-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d6sM1cOaVUUGjaGg5+ItHcxIfiWIumJwGIB8VPHzFIgqTabz2jaTsSSHt18W7I5GlNcFu7mUctf6ZtdDqS6qs6pubCfV1ckmjkqLqTj/KDzlz3GLE3gJLVLWS+i0R7TIebcc6hlUOZ5QjvYDowMiDzhpxJAr/jO5rRXUmh32WwEJUIElLRazwSOOj0HMGtPl7TMu7u63VWo5x9WTvqvKdaU/OVB07xY4KwHPsLCQ4FGXZY/gCmSBCb9n2qhZi92JpdwwbD0osu4NGg1FUsJvWZdA+nqxgEKPn6WrYTvGfQIehqkQtmMV2rMswseI2ePjXZivroDig/MDX8POHo7Dkw== 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=/pR4wokD5Azel+3rdNIK75KpN/hWXyV5VuN20V1JDRc=; b=TFrxeQ8gAzPWf+4u696SbfkyPHbezGQUodbk2YfMtGu/PNzaNqXSZ/YcA4lv3jYqiHh/e7yDaRpcvDSutpVR3gyvg3fzPwzR2sU/s1PzAJuNDOZr5DCMEi3WnOPzU09SbA8GsYI3pKFlOhfLDpV2CxSy8e/rU63IgwEPoTqxnsEo4cqW4M7s9S1Na2fy5v226stxXdAcSmFwNWN2C415oEAJa8kQCsNaZgA+tcXc++HtJhR/k6Lm7L/gyT/EIzIQ0grdZx1jL6WNOX93t4K77qRhA3v+axVull4E/1EfP+4fEKPVQ5rBtd/ICRhYl7SqnI2oAf/7wASOt9FplO+6jQ== 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=/pR4wokD5Azel+3rdNIK75KpN/hWXyV5VuN20V1JDRc=; b=ATNj1S4WOjvHdSCG3NXx7uA6sxDo9lKqD0ST4Tvi/tzGaMEDfXNP45gnnDIwoPWATvMmxh3HeACPbIYfwWlsgS3sLieHaFI6lPI8PKgvrose8EYv6lXUeg/817Dcb/OJNOW9M4t25TVvfOTvNuLhB3K8g/bwZZJPbvctQDYBeZk= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BY5PR10MB4036.namprd10.prod.outlook.com (2603:10b6:a03:1b0::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov 2021 04:16:22 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:22 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 07/14] xfsprogs: Implement attr logging and replay Date: Tue, 16 Nov 2021 21:16:06 -0700 Message-Id: <20211117041613.3050252-8-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:21 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 80b11849-0e00-4733-ee62-08d9a981033a X-MS-TrafficTypeDiagnostic: BY5PR10MB4036: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:913; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1HVR+TO8r5QrQjpQJX+LiZLr5NUlj1xtQq7EYRixnq//TWhoTG8PxY9vyUe/bVlwR7Bv9pJFKTtMbwxFVVdFgMjNkw6PiwKTXb44FHABlI51i8FpfLm8D9FSEutPI4YLKCz9bNzsB1etc7mfVmWjEwwEgl4h4YOAeMVP387WSwfTsZYrx1Gc7+aaxidTkK+IZHNG/ig/DkN8q/Uv2QBGF2FxgblNHyRfDtpdc8NkfyluzRr+ca5OSSqUG4tKyooW6ZIYUPQo0B9MUiaEbZFUZ3/6QIy3H+h8PUZQGvahC4RWmzqmuBEU3D+Y0WP5rDQuX/y4lQknDRMavsJwmw5wARhLYQjzAL6X7w5DZOXJ8CB68j/eFuapjYFcoBWIvhjlTS5Qt2bfdz3oY3q0BC26D85Vp1irt62iviYhkKMGKsIRv2euTezMpjkvleV3GKJ0PTjynwvCBhzXr4IAp5z6uZ2zOcf0jCJXFu4JrswvgPN4ESEVtbYdEosKhlwnFoas8q/Kx8DaMKAFjYP7IicPWfz9B9VMyvxhV1FvrFjXCt5b+Gy+O/hkcti51mdJl8SHL615JM4THMQebS7aneJzmVW5vbW5bg3KiOGh3zQOdeth03EDml9L2bbwvTxo4hAFGJ3orLsL0O2/u/AJqcpTN8lqdZZrBOfVkNvoe+Z1Ro4h+ht4s9Gr9MxaCR7qpne0uCmW+VYmMaWMdrsE6IG77w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(6916009)(956004)(8936002)(6486002)(26005)(44832011)(186003)(83380400001)(6506007)(8676002)(66946007)(1076003)(36756003)(2906002)(52116002)(6666004)(6512007)(38350700002)(38100700002)(5660300002)(316002)(508600001)(86362001)(66476007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LiEwjvYEIUCutp9hxBA5g7W3YNJhlefVWIfztfeOKdoddO4vXbSQQhwo+Mdr5CCoU58FwsJ/WuKbIthXvP5H2tedEPOggQuqT+PD0Q/FBZaWw3zPPFfl5v0QqC3rb4AbRUItF8khSgUojxxXIJtq7A2ES/Oqt6erDeh4pb0WfSj3vZt9eXkZtKosIBQazAW2h9j6x3PZ1j57Vc5OVZjj2KQTa8Zh9cYZr5oQMxsUvH7zI2lGqPHsscwI/+WX2Fk0p91GChcjAjHM9hSNnaRA+koXgVQxnePnZ+8pwX+JpHXyKhk2rXNrrwlBFlLtGR8ou5pvuwyH3yPZ8d/5aFyugMK0uu9aon0A7KsM2UfbSYsk3e2SH9xULJpsSZflc+FAQ6PoZZleOIpggo2/E9+Grvv9k7NPxnDR1yCIbDdIKGD0D8PeDihP2gT9WX5itN+xKeuqrQxZ62GaHnqySmkm/1iUYLlFeYI7vjmBFSB2/xPj0tB3Mw8CWyVgccqk3NL8pjYR0RWuzNUJA4ndBgQrfbok0VduT9mOajnLv6XOER7a+upTqfesEqcPjmbTzP3P/PftyyRwU6StDYbJC24/gZ9zAzqxIoDiQN034uNXdB4ORaKeZWvpfbqk9PTg5aHOO3t3lzhRq3K0nD4EGXiWHf4Vp/8iehGDE/rkWY2C+sjg4ojtHZsiBBhWmcQODhuIuqrFWt0f7E16f3jKexYC2QKM3+2S1NEx7LET0/f87zG4XRxgMPMkBgkPS8WYHP7QBsVnWqmfQ9eVdC59BCnUWau19a2HXwzS4H0CAUSecSRSLZRtY8Nk5PO0GuhwpcLSfFsAfZBMkHNFLPeZn35+4+sYFhxQaRx/WhnF4QvnKRgpGmcv35Vn3FKJIsLEKdp6y1XaG6UIARSfU0SH+ZHICNf9tSGUCrtTIQjQd3GSlNxns7bMSaaSGfq/yEh0qZPPetROH9G4z6N5wjFRoQUtdKoOAhzxA7ccOLm64MxXvqaGC251enbL/9biFhSCUWZOkn//Ef2sQ/vZIfSrDRNGtYuNLmtRPej5MspPK2TyUyGn7ZVHGaEWoGlZms9Vw3Rz470U/neQ3KhrHGxDw/GuQVNWjWH1a6oaQDzsGID8/UwqR+5IXtRuND8CB3GX3w4aulGXndSBv58OHou+E47n7/F8+lcOXhGxxSpdVuh2kbWpPY73cXXGa8rhZES/u0eqs3KpBh/D2j/4OwCvvNUL0fKAllcCxaCZcCmjJ43P+iMcgHTgPY1A3bLdSSjOKdFPKxqnZvc5HE6ErkyPI0dfBV347hYczuAi2CLCtwdwWYw6YjOvkv1ZY1N0UDm5NRsjyvrD5duzue3l2F18/EBMZ52yRuEz4Db58URGmOj20IIp2Dkl2todcGwUuKwhpD5e97XMSk9qRtO0q0P91abrpm3kHUxErpHIG1jKK4Tv6UbnjoNa2ChHdiIgWfEBJ+fKcwNAqUZD9eGQuI2yujrvtJEuxDLfpa0wBA11oACXLQKxL4r6fcEg3MClyIGBqh2CS/njZEVtnnKBzUgdmxZ4DpJUGV6Quz4IuLYbPIVmpqvcdTHVUyl4dQSCVvnwUVgG9UxAcscou/6IMYqF3ypGlm4k0qJ85E6aK+qYF27wQ7KnXfbCh/16WEu54oJO8qPZ1rIcQ8Gh0ILWlR0hrFhA9A== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80b11849-0e00-4733-ee62-08d9a981033a X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:22.1019 (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: QYhzoByT9bzDz1nK3+ia4K7KQUGKoKxUpo+ZtaInxx8lE4hcmTmvFMiedxTJrcSYmS5wAEwaRjnstNxr+lo98ug4oueQOGYeF6cxhUjvXOA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4036 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-GUID: 7hJp8CGasIWdRedYUg4Wiu8_4vXkFxfR X-Proofpoint-ORIG-GUID: 7hJp8CGasIWdRedYUg4Wiu8_4vXkFxfR Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This patch adds the needed routines to create, log and recover logged extended attribute intents. Signed-off-by: Allison Henderson Reviewed-by: Chandan Babu R --- libxfs/defer_item.c | 119 ++++++++++++++++++++++++++++++++++++++++++++ libxfs/xfs_defer.c | 1 + libxfs/xfs_defer.h | 1 + libxfs/xfs_format.h | 11 +++- 4 files changed, 131 insertions(+), 1 deletion(-) diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index a1f0d7e52ff3..46026084f44b 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -115,6 +115,125 @@ const struct xfs_defer_op_type xfs_extent_free_defer_type = { .cancel_item = xfs_extent_free_cancel_item, }; +/* + * Performs one step of an attribute update intent and marks the attrd item + * dirty.. An attr operation may be a set or a remove. Note that the + * transaction is marked dirty regardless of whether the operation succeeds or + * fails to support the ATTRI/ATTRD lifecycle rules. + */ +STATIC int +xfs_trans_attr_finish_update( + struct xfs_delattr_context *dac, + struct xfs_buf **leaf_bp, + uint32_t op_flags) +{ + struct xfs_da_args *args = dac->da_args; + unsigned int op = op_flags & + XFS_ATTR_OP_FLAGS_TYPE_MASK; + int error; + + switch (op) { + case XFS_ATTR_OP_FLAGS_SET: + error = xfs_attr_set_iter(dac, leaf_bp); + break; + case XFS_ATTR_OP_FLAGS_REMOVE: + ASSERT(XFS_IFORK_Q(args->dp)); + error = xfs_attr_remove_iter(dac); + break; + default: + error = -EFSCORRUPTED; + break; + } + + /* + * Mark the transaction dirty, even on error. This ensures the + * transaction is aborted, which: + * + * 1.) releases the ATTRI and frees the ATTRD + * 2.) shuts down the filesystem + */ + args->trans->t_flags |= XFS_TRANS_DIRTY; + + return error; +} + +/* Get an ATTRI. */ +static struct xfs_log_item * +xfs_attr_create_intent( + struct xfs_trans *tp, + struct list_head *items, + unsigned int count, + bool sort) +{ + return NULL; +} + +/* Abort all pending ATTRs. */ +STATIC void +xfs_attr_abort_intent( + struct xfs_log_item *intent) +{ +} + +/* Get an ATTRD so we can process all the attrs. */ +static struct xfs_log_item * +xfs_attr_create_done( + struct xfs_trans *tp, + struct xfs_log_item *intent, + unsigned int count) +{ + return NULL; +} + +/* Process an attr. */ +STATIC int +xfs_attr_finish_item( + struct xfs_trans *tp, + struct xfs_log_item *done, + struct list_head *item, + struct xfs_btree_cur **state) +{ + struct xfs_attr_item *attr; + int error; + struct xfs_delattr_context *dac; + + attr = container_of(item, struct xfs_attr_item, xattri_list); + dac = &attr->xattri_dac; + + /* + * Always reset trans after EAGAIN cycle + * since the transaction is new + */ + dac->da_args->trans = tp; + + error = xfs_trans_attr_finish_update(dac, &dac->leaf_bp, + attr->xattri_op_flags); + if (error != -EAGAIN) + kmem_free(attr); + + return error; +} + +/* Cancel an attr */ +STATIC void +xfs_attr_cancel_item( + struct list_head *item) +{ + struct xfs_attr_item *attr; + + attr = container_of(item, struct xfs_attr_item, xattri_list); + kmem_free(attr); +} + +const struct xfs_defer_op_type xfs_attr_defer_type = { + .max_items = 1, + .create_intent = xfs_attr_create_intent, + .abort_intent = xfs_attr_abort_intent, + .create_done = xfs_attr_create_done, + .finish_item = xfs_attr_finish_item, + .cancel_item = xfs_attr_cancel_item, +}; + /* * AGFL blocks are accounted differently in the reserve pools and are not * inserted into the busy extent list. diff --git a/libxfs/xfs_defer.c b/libxfs/xfs_defer.c index 006277cffdef..c03390643942 100644 --- a/libxfs/xfs_defer.c +++ b/libxfs/xfs_defer.c @@ -174,6 +174,7 @@ static const struct xfs_defer_op_type *defer_op_types[] = { [XFS_DEFER_OPS_TYPE_RMAP] = &xfs_rmap_update_defer_type, [XFS_DEFER_OPS_TYPE_FREE] = &xfs_extent_free_defer_type, [XFS_DEFER_OPS_TYPE_AGFL_FREE] = &xfs_agfl_free_defer_type, + [XFS_DEFER_OPS_TYPE_ATTR] = &xfs_attr_defer_type, }; static bool diff --git a/libxfs/xfs_defer.h b/libxfs/xfs_defer.h index 7566f61cd1b3..58cf4e290c3d 100644 --- a/libxfs/xfs_defer.h +++ b/libxfs/xfs_defer.h @@ -19,6 +19,7 @@ enum xfs_defer_ops_type { XFS_DEFER_OPS_TYPE_RMAP, XFS_DEFER_OPS_TYPE_FREE, XFS_DEFER_OPS_TYPE_AGFL_FREE, + XFS_DEFER_OPS_TYPE_ATTR, XFS_DEFER_OPS_TYPE_MAX, }; diff --git a/libxfs/xfs_format.h b/libxfs/xfs_format.h index 5d8a129150d5..37ef0e627292 100644 --- a/libxfs/xfs_format.h +++ b/libxfs/xfs_format.h @@ -485,7 +485,9 @@ xfs_sb_has_incompat_feature( return (sbp->sb_features_incompat & feature) != 0; } -#define XFS_SB_FEAT_INCOMPAT_LOG_ALL 0 +#define XFS_SB_FEAT_INCOMPAT_LOG_XATTRS (1 << 0) /* Delayed Attributes */ +#define XFS_SB_FEAT_INCOMPAT_LOG_ALL \ + (XFS_SB_FEAT_INCOMPAT_LOG_XATTRS) #define XFS_SB_FEAT_INCOMPAT_LOG_UNKNOWN ~XFS_SB_FEAT_INCOMPAT_LOG_ALL static inline bool xfs_sb_has_incompat_log_feature( @@ -590,6 +592,13 @@ static inline bool xfs_sb_version_hasbigtime(struct xfs_sb *sbp) (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_BIGTIME); } +static inline bool xfs_sb_version_haslogxattrs(struct xfs_sb *sbp) +{ + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5 && + (sbp->sb_features_log_incompat & + XFS_SB_FEAT_INCOMPAT_LOG_XATTRS); +} + /* * Inode btree block counter. We record the number of inobt and finobt blocks * in the AGI header so that we can skip the finobt walk at mount time when From patchwork Wed Nov 17 04:16:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623663 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BC245C4167B for ; Wed, 17 Nov 2021 04:16:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A343761B5F for ; Wed, 17 Nov 2021 04:16:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233025AbhKQETa (ORCPT ); Tue, 16 Nov 2021 23:19:30 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:36504 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233032AbhKQETZ (ORCPT ); Tue, 16 Nov 2021 23:19:25 -0500 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH2B8TR030343 for ; Wed, 17 Nov 2021 04:16:27 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-2021-07-09; bh=FpPiTYUbP74HDDJFOHuJalSEVmXcFXE/7gYYkPAIkuY=; b=mzC4rGfIGqMkbj/t6M0fQXQreyi8flSJmt0E68ggK8zZShEZQjn7/d4zvKywQvb44VOL aQEU+dKUmkFahBImAMpFFFBQyS4o2hNda79DtWNdlgVh9hxKYT0sSKLBUcxZ3jvglfx7 EQidCvMEAmhhn0bKSX36CUe22GradrHfApPQmuov1W2MSwXB4itvLgeuRThWrUA+GeP+ kcpSzWVG45/80OogATEYFBeZ/Vh6kIb+DzA1EWJ0OTILdBWxC1jZ+GVadubvvdcCkfCY j4VoaXKIZm/0oUxP2IU4jL7SfEkrMWonN7r2M2dXMMIzrizTPXHfW7LNWKdSKk4FL+Vo /g== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbhmnwx85-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:27 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4AEKn180636 for ; Wed, 17 Nov 2021 04:16:26 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by userp3030.oracle.com with ESMTP id 3ca2fx6ayv-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wx2k3rkQKVo6kxB00xbLF0+5AQ0ZUmzs818v8Y7wpvqiwjeWuWo/BBuNHc5EkqSK+I9NL9V8vLoLd0KkS8ZKQU6I4w82koNtGCA5Os/7+5WFEYcMtv7hDlGC6seG6bTDPvZXmi1Tl1FoqDXRWnwvY9r24KxRd2VbosF16hYHlvRluUWB19emLZmZ6CtxvyRV+bUbeolP7CWFIPPmrfH3YYX+gJ54MvMiWQ+4af7+fjEx0zX19ssj4kLkp+Cv/K7F6m/GSu/AUdoPxWguoQU33k7PJe35g+/Hh//XXwQ8GSQD2OA3HK/tSiyhkRCQnG64CbjaM0vqk9q3EvUA3CO5kg== 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=FpPiTYUbP74HDDJFOHuJalSEVmXcFXE/7gYYkPAIkuY=; b=KOoHiYfAWxH4w66Ps5KoUvR2LmfddPSaRA8B9oPS6SZ6WrLWREXTGSy9oF8FDBCFpdz/R90sf5TAJ7o/hnuCOg0bkCxae//TADBJwM5l97xgGuHiC7jcm0pzQXKbmG1Ul2FKiS54W6Yk6E7NW1IPVNQnep9YxAjAZupLBr57NqhsPEsjziiiVv/ubAej2CmAK+Q6wv0giHhO1iE907O3OEk1krqzaU7S9JmOgaMo1SKmz0QxLGe7lvUIBKwmK1maqpjSWj5RF3wapmAjRwC2sE0CvFxDjFouXAfX0LFk0DhOPAeUZXC4HLYPI8RXgvcySwIKuKilJtg+Wsy+M8AXGw== 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=FpPiTYUbP74HDDJFOHuJalSEVmXcFXE/7gYYkPAIkuY=; b=ZRC1RLpGXp+ZY0ghYCM6qyc2g1UzfUxTbazra1ncL4a73/9A/Vi4nJTNYfj1QF2r0/9uIOUI4aVIPDPx/o95pePBod+UFS2QlCoVtBKp0fZqp+Gvru8n6Zol00rovqqT/2W3K6qK/o8I/ViTxC/Tq8FIPPgaEK4Igk0C5Fgcp6A= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BY5PR10MB4036.namprd10.prod.outlook.com (2603:10b6:a03:1b0::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov 2021 04:16:22 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:22 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 08/14] xfsprogs: Skip flip flags for delayed attrs Date: Tue, 16 Nov 2021 21:16:07 -0700 Message-Id: <20211117041613.3050252-9-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:22 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3c9bb3ab-2d10-4dc6-277c-08d9a981036c X-MS-TrafficTypeDiagnostic: BY5PR10MB4036: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:792; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: O2y5H4ulQ1nR9QbCWwo9oxDNtjgUB7HpzjbFErsLE4GGgO6RVD0QspGIT6fcj9uAFl3q/7FHX5EEMOfUwyAx/7RnX2L50QRp51q9ioZyRUrx/hefb99PdwDAaGLyCpmnpubiv5hND4E9y7hIt7mcBsD5nNw5Jbj05mA4AlDv1iaXNQ9t5h//huTHdoaXQAgvONuwAGjTyLgMe7FRhGb7xZqdhVUZxS1WdAnGrL8HpXfDPFue3PFdB87mpZ8q1Y7rPbhy1FUVFPNyhbVcOhVNTl40OYZcAOCC9aUrhTz5zvz2X+5comUTED0/W0kasmWNT638t2qiR9KuSqF2wD+PUPcuH+OE0y7ZsjTBeUqMjNItNx+bPEDMdH0MyX0qGAECkGqeYZtmS+bOKT6o+U1wTpCZfKv5yCu+AtdDmm/xY0se2+8pYokzIGFdL6UhVp9c0x6xymZ8XJE3C4opksj0FPGsx1Tm+g6XKfGiChn3ENtXgxoHSUziKrM8XYchBNMQzAR1EwXsO29L7uQ+RctrPTj1IF2nzWogWgammmyiU9rdyVR1pSkXwHeK4XVFUcnfEIYY72kdoTtgbEiQq9bHnBGjG+6lcVv5PUJRVj8KhoZZs/qOwKtyBIl0Z5oeNvA5WG8UnsWdVwU5haWRrVBREH/8z++lU/3wZoh3yy9OM6TNc+K1JcHLi/jgpuaCOZ8gRyxOU0rODF/xZ+AQH4sPEg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(6916009)(956004)(8936002)(6486002)(26005)(44832011)(186003)(83380400001)(6506007)(8676002)(66946007)(1076003)(36756003)(2906002)(52116002)(6666004)(6512007)(38350700002)(38100700002)(5660300002)(316002)(508600001)(86362001)(66476007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: sJFnrA1WylKvAYCoZFvf3bcfRXJqKRp4p+aBy+5uSQeGVZoryTv4xnkAdmnYsNmUbyTKfx9DorDQwtcn2Cp4dyBi7XgF3ArKN4lONU/mej++hflZiCnkaFRQPj36XZPcxMhTip0LBKwlZGduVQPJHq31kmj7mBfL40TGKXJdCB33jdJYvwwcvqrwSzzFruKjdGNFoZWVV8wirNYCSdh4tahWXab7BN1nA61eeTobCQIKt6zvKOLIijjjU5i/KGkequmU/V8TPZe1krsWVAMFwCW80QYyeJZMvRyui5lIjpfMu+b5zI0Ri1D6svEpkd9QglxMIF55+n0O3aQNue7nn7ZFUPgK0OfdhgeQ1ZZd24WvmUKgvCRPUD0sm9vu//HyPySJlkkm6XkvVSvdAm1fcq9GAWB7plSB7dtE383IzT27PlPMn9vQLyTpfx3i3CyubdxUe5vxuOtV7Jbo9b91wsw4H3iWu95h6v5BSJAjKKrLs0BqVosWoOGZcGoHbW5AKD95/L0cY1E6QIGfRYLUsKsaEa51MSte/hvQI5OTCCuYnOFjkxyk9plj+K+3wPMB/EKDOR+rA3QOawMqcULjAHDrS6UvgGup42aEemSpT0Be6C9qqg2GD1U7h4Au3yRiWG+0bzU1wY64PdEJYvEcqNS6ycN6ZlFpCzq58Ar8UC0UnCkJdNsQSZGLGigOtOpu60LyOIFyFuMHIKc08KKKZSkl0CFH3ry4HpUHLjNQSItng1iumKpsuh/BhlpX1kbdosxLska6nXfCQ2BgI1FOVOY14m3c/CzQJ9O/3HLbd3cgnCwvNuGuXvtf0N/QRf1tBSVLDbhide78fWn7mZf6+wVSJZDIvkc+iqlqQPq+vwYi8zY+dgpNE5whlbZZ3/NBuEJYEZALwPeCchxK9NRhFTHvitNFh6KQ/OzWeYtsVKEpaUTTijC2lGva1ySeSl8S+t5up5qixKWp7CdHchb+BfbDcpxBmakYJ/eNLGS/WpNeqBTz9XKneRaSAKBIA32BsmqD869ghvd8P574lW2ZLIJRkOEUlo2uiKdh+2kHngaUL9uSgi7LpThaoT+JBDACeeM68dOTt2kkmQ2FrHaiVFguFonKIKw00yJyxCcueUPcU8LP3IVz/et+axTXZ0AeMBpzya+8ivz8vTN3yjO7hfL5DsGWxHaAOkgdFI1Q5yjqtXLHJ6RESOweWuEnVT9IpEO+ZvtaLIVFEXFkjwKmTYFxskWTZmzD0Xgcm8mrWNqQZmNrPpPuIsSWvq9GqVltCgGri2fmcTEzR+gZ8lHXw1Dc/laShaFXsnYibckzurWKXXQi5rG2bCTuoSpY6GluVBMv3qOg1bM9IowN2/Sz9QatYF1jzJUr2mUsqURnD/vLWGp26fbmqip2O+YaW4NJKsV/sBL4JIN6/0Afv+a6mTG0eq/Psx6j8nZcfg4fK8/Jh98PAlfX1UTmBqEptuUlZtMKpmls5TuB0R7ffEPU05rhaRw3pDUcssclaALk00QBPPyv/NNYrBZGmNFP+7eZ+lBX7YFgIOYJT68K1y0dDVa3xQlaYMbflLZ3yWoEFNla4Ql52Snz/ZkL2pvbz12p22B3I32Y0wDeaNPNxIV3aZx/DkaLs75qoabTxLaCspX808cMLUWM1EXKuA7Sjts/6voJ8eyoATbP8v/t1N38Tw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3c9bb3ab-2d10-4dc6-277c-08d9a981036c X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:22.4175 (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: CVZ8gAKUPWYppEWN5j8Qtnowu+7Z0Il1iqyGUGWsKPOP7ZOR+/X4nU5IU+n9mbfRya2mXjgYJ8e14jkKRXyXhYdoWwnpBo7iBrb6LeyNCJw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4036 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-ORIG-GUID: INWLxvi-iSDtiQMvoggel8hXs3lfjNhi X-Proofpoint-GUID: INWLxvi-iSDtiQMvoggel8hXs3lfjNhi Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: 2b1c81a8c3f453ba16b6db8dae256723bf53c051 This is a clean up patch that skips the flip flag logic for delayed attr renames. Since the log replay keeps the inode locked, we do not need to worry about race windows with attr lookups. So we can skip over flipping the flag and the extra transaction roll for it Signed-off-by: Allison Henderson Reviewed-by: Darrick J. Wong Reviewed-by: Chandan Babu R --- libxfs/xfs_attr.c | 54 ++++++++++++++++++++++++++---------------- libxfs/xfs_attr_leaf.c | 3 ++- 2 files changed, 35 insertions(+), 22 deletions(-) diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 61cb7ea9ff5b..6306bcf1d1ba 100644 --- a/libxfs/xfs_attr.c +++ b/libxfs/xfs_attr.c @@ -354,6 +354,7 @@ xfs_attr_set_iter( struct xfs_inode *dp = args->dp; struct xfs_buf *bp = NULL; int forkoff, error = 0; + struct xfs_mount *mp = args->dp->i_mount; /* State machine switch */ switch (dac->dela_state) { @@ -476,16 +477,21 @@ xfs_attr_set_iter( * In a separate transaction, set the incomplete flag on the * "old" attr and clear the incomplete flag on the "new" attr. */ - error = xfs_attr3_leaf_flipflags(args); - if (error) - return error; - /* - * Commit the flag value change and start the next trans in - * series. - */ - dac->dela_state = XFS_DAS_FLIP_LFLAG; - trace_xfs_attr_set_iter_return(dac->dela_state, args->dp); - return -EAGAIN; + if (!xfs_has_larp(mp)) { + error = xfs_attr3_leaf_flipflags(args); + if (error) + return error; + /* + * Commit the flag value change and start the next trans + * in series. + */ + dac->dela_state = XFS_DAS_FLIP_LFLAG; + trace_xfs_attr_set_iter_return(dac->dela_state, + args->dp); + return -EAGAIN; + } + + fallthrough; case XFS_DAS_FLIP_LFLAG: /* * Dismantle the "old" attribute/value pair by removing a @@ -588,17 +594,21 @@ xfs_attr_set_iter( * In a separate transaction, set the incomplete flag on the * "old" attr and clear the incomplete flag on the "new" attr. */ - error = xfs_attr3_leaf_flipflags(args); - if (error) - goto out; - /* - * Commit the flag value change and start the next trans in - * series - */ - dac->dela_state = XFS_DAS_FLIP_NFLAG; - trace_xfs_attr_set_iter_return(dac->dela_state, args->dp); - return -EAGAIN; + if (!xfs_has_larp(mp)) { + error = xfs_attr3_leaf_flipflags(args); + if (error) + goto out; + /* + * Commit the flag value change and start the next trans + * in series + */ + dac->dela_state = XFS_DAS_FLIP_NFLAG; + trace_xfs_attr_set_iter_return(dac->dela_state, + args->dp); + return -EAGAIN; + } + fallthrough; case XFS_DAS_FLIP_NFLAG: /* * Dismantle the "old" attribute/value pair by removing a @@ -1236,6 +1246,7 @@ xfs_attr_node_addname_clear_incomplete( { struct xfs_da_args *args = dac->da_args; struct xfs_da_state *state = NULL; + struct xfs_mount *mp = args->dp->i_mount; int retval = 0; int error = 0; @@ -1243,7 +1254,8 @@ xfs_attr_node_addname_clear_incomplete( * Re-find the "old" attribute entry after any split ops. The INCOMPLETE * flag means that we will find the "old" attr, not the "new" one. */ - args->attr_filter |= XFS_ATTR_INCOMPLETE; + if (!xfs_has_larp(mp)) + args->attr_filter |= XFS_ATTR_INCOMPLETE; state = xfs_da_state_alloc(args); state->inleaf = 0; error = xfs_da3_node_lookup_int(state, &retval); diff --git a/libxfs/xfs_attr_leaf.c b/libxfs/xfs_attr_leaf.c index cfb6bf171090..6c0997c51fd6 100644 --- a/libxfs/xfs_attr_leaf.c +++ b/libxfs/xfs_attr_leaf.c @@ -1479,7 +1479,8 @@ xfs_attr3_leaf_add_work( if (tmp) entry->flags |= XFS_ATTR_LOCAL; if (args->op_flags & XFS_DA_OP_RENAME) { - entry->flags |= XFS_ATTR_INCOMPLETE; + if (!xfs_has_larp(mp)) + entry->flags |= XFS_ATTR_INCOMPLETE; if ((args->blkno2 == args->blkno) && (args->index2 <= args->index)) { args->index2++; From patchwork Wed Nov 17 04:16:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623669 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F3761C4332F for ; Wed, 17 Nov 2021 04:16:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DA72F61B64 for ; Wed, 17 Nov 2021 04:16:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233030AbhKQETb (ORCPT ); Tue, 16 Nov 2021 23:19:31 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:3418 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233036AbhKQET0 (ORCPT ); Tue, 16 Nov 2021 23:19:26 -0500 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH48Yqv032056 for ; Wed, 17 Nov 2021 04:16:28 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-2021-07-09; bh=Vs2324VHlpiIDxMTcqs5VSxok4tl1SDy12HGHdNmNTg=; b=R1xN1Jx8vf5FDXOsaZAL9G9GRI62w/FjrEdWwX5nQhVvMiQhrsgH++vdmkeWA/SUxpWf CmTNK3fV8XlUtRUsH4bbt2q1+V94cgW/827tZbEQYu7RozfFKpEuh1AfehBwL3XCrnrP eYX75rup0vEDLBwyZ/h0iPkx+t8OHRTvF9K1J1R6dNJX+Ah63XJujCOlQL4qfLU13PS6 BcMjiHwFhll9js1xOn/gXAApEf5CehiJN48uMH0pHGdQ/1xOC4s5Sf56+iLH0lYFA2h4 v+6JXNHQrKGlbHDHK7LdAmz8HrG1EvCMuOKAooeRnk075nB4Y/9hT4JsHneCc6m4qB82 8w== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbhv86es3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:27 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4AEKo180636 for ; Wed, 17 Nov 2021 04:16:26 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by userp3030.oracle.com with ESMTP id 3ca2fx6ayv-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YLjjOEwJIysrHjdZbXhxljTLhPfdsdQhVcO7osWmVT4jpBEtXQL4c8ZVjw4ulgdRBaKODlF0tO2J3Pr82IA8qEj8K7Tcd+WDRzjLb2hWDYTwXrpWMLgi2GBRGJLbY/y4PSIGB1vmkvgFcCLHfXKCHFMnZqw7KzWQoCcBJFKcH6Osk4XJ7FIRitSh8xsG/eiR6WupR3fgyKDWfRXXFoild7LYm/Kaq7qHbJDATDaHif6wf/nlBk4N5j0VjIAuwpPdrk9mEM7Sn37PYo7pggLOYaAeKHvTtWLxzSkwl1wPN584xR2SC6y+Gp0dbaDexE1dL+FBOJNthEms1Fl7G6ir5g== 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=Vs2324VHlpiIDxMTcqs5VSxok4tl1SDy12HGHdNmNTg=; b=a+qPnrKc/VzIh836kRNaYqcNilxEIox0kLLZSQMQnwS1uwafrqtBe0YqJ4dbvRbNusaV+r0epFF5x/p9/RL68Z1U+GP2w5k6SvPzYO3oOQYCE43L0j2qB26bww1oVZymVV9dHVwK6IBVOSRtCc7v/37afjNxRAW4hds2AsNBabaqFABd4DVxZCXsc0OvDTjQKhoKDmYCONQMvuIfLAfYp6Jls5zG4gbxUI3CEpbj8tkyOFtwNy8D17/qNgLgvbt1OkCWWltoAtUvaZyw+JLY3gF/PlsCtRMxTDI4c8HNx4CHQa708k41F0no7jaVPoAhKXg86KSz+PAd15C09Nl9bg== 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=Vs2324VHlpiIDxMTcqs5VSxok4tl1SDy12HGHdNmNTg=; b=o5L15lyS9hEsyLd3OVTmng8N7y6SnAaw8pvnPBMSGqmSVa2XnLBNXwoIPKn5uQzTC3ijkVxt5Mui+xxqnVFhtVenQRV7iO1ITsLgIyOfUZ2ESrN9qGVXtXdi+GEhm3qnWS7xjDufpmLGMNziU6px/HPH1Ba2bySww3sSRGzY0KQ= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BY5PR10MB4036.namprd10.prod.outlook.com (2603:10b6:a03:1b0::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov 2021 04:16:22 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:22 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 09/14] xfsprogs: Add xfs_attr_set_deferred and xfs_attr_remove_deferred Date: Tue, 16 Nov 2021 21:16:08 -0700 Message-Id: <20211117041613.3050252-10-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:22 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 394d6dbc-39d2-4d04-7737-08d9a981039c X-MS-TrafficTypeDiagnostic: BY5PR10MB4036: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1079; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: E7YcazAQbU5PjotEzi2IgFJGN/SoLQ+QKJYa9h0lKWH+80MThyyt6AK4t7VQKcaCPFugI0+nh9WbBQg01qShXgLfK5jG6kZaXta/2R+Q5nNdGwEk0Ahz9FTgwkmpU9YIc+r4eTKzXjogR+1KEwX1BPSVaA5POqUTD+hCJX00I4TZjf06N/oK0uYYzKvel3TImQd02hC8pvr0JV4cMQl0jNvKidah8Hexs0XtuY4AuTToIl+uXRl4IqPx2revvfufBdAWDaHDSVqYwD1Ek2825CxCIOc/ij/SjjsKoJB1eNGnNo7pKviTnGzTaItsixwCHvJFrxrd8DYEG4+uT944E40YSyf9IMZ3fe9NQVqvKstqYyYKdirQgQezwKNf9hNOgI6noE+D0RltimTFGJLn21oIn5e4BDoi5BbIQ/JtTsbFG2NOczg8nZa9XNsx0d/Ma0KvAd5YM2M5Kdp4P3o8tlWjYsO+d8ZWFqNIXjoysd9eDkX9C70czEKpOeDD3WRMKgsJjheF+x/JghtSPrVbOr+ILhcnQu7RKE+A6eYlgM8fTHa4lMQkjYdfD8ElzBW5TMVsAYuBvTORBoS8bxTAwAVYWBaNV0AGumyUuG2mCQidmdMS2h2nxhRML75sufiWhxJ4V2vZjlUOcrUBPYjoPOYwmniJ5AH7ELotS6rk8M75yhxmPuvd3X8G7siwmzm4916LAzMrUUr2M6LMrvYJSw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(6916009)(956004)(8936002)(6486002)(26005)(44832011)(186003)(83380400001)(6506007)(8676002)(66946007)(1076003)(36756003)(2906002)(52116002)(6666004)(6512007)(38350700002)(38100700002)(5660300002)(316002)(508600001)(86362001)(66476007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ScgiB430Fkt4t+6L6nDel6DBtNTiyQRvZgUiKSXrsoBO1mKUFFyr5oJpnaMAuJstQZAWDFaxpa7avHdKI5K0P0AAhPBO9pTJTnHgywcDbxoxGoCQBTwOrfg+XniwJTjzXvF/JT4GuJ0NpbsoovtNofIRLzXj5bLBjBkqdi/yAstoy/EoJLyNdAy4uqVbbBCKXeQ+wKu3//u34l9UAbTRDFzV5WPiaA2AYpyb0v6NE9dL/Lro7CXErwyOoBO6spfQvGebgKcj0ExjohpA0FXgxj9FwMOihrN3n0BzHfjZHCxhbvKv/I9gAcz7Pc4lgClN3VXAWIzCgcZ1hmhjd0ZFtjdcxItDIGaZ+i2px88Aq2iDBSGeRChiPPqVP5kK9CRXAWsd/aEX7bkvijw/TXXf3ZPc+Q+hg9WUfZSpTeVMUlY7FPeSE9CecQYH1oBRML2LgnG4lD0qyW51UxGeVCeCnRelcQATrQzFDjDLrcXNWAfTocQ2cYDgpzzVXWNz+nOh732vYqU3oHNZre6rMXCdxBpgiQ3BvS0tFaxebeSEN9Wv70AKvNIsDoUnLccnTV7XSUVu/4qi7mEPiAlkSWUQFJURLzHbBSHeQeCDcVFeT+f49zXUp15O5eLpxZoqkkDLyo7G9lIiIzz9ezaLw2U8TMK7DE2KSryOyGlMDC/bigtXONygPpYGl/3reXdAprHWnYPmYrnch5yrY+bX0+PhwqTcJ71l18DW5T+q0jKaiUu2z/hnBu1ZrOIOuE+5NowdBi6vD9dv8ehOWecITC5BNpMdYQ/4ibZWA9giXRtAoOl9WkFhbSvbudY5PrT+ZxZZ9ui6sr/7xqD+COjJLknBq8hVbhw1nclPkuxKOMTJXkGHXz3so/Zxoqge7JmteOoSAf7ClyEmeJliVNlw3BGUgsWY2xnVjJyMbXChnkPzxoHP/sKN6w/pE29cSCVx/ROtP05Vo58kobRO9+r7EuIPeO6RYIVm/XV4Q2LC7p0chz1K9V7Ye7cnC1asyQ65oRHCJC4VLp1RUXQxiWxGA+2JcIejyq2nxAxobXMk5kxqrkwjvYH1wz/cPJIRcNSeGRkmLbt8po53oKFUACNCwSjW09Rn6uXrZUORWJ4U0tuU6IKpdtdzijrCj2zOuwfdRj4pQDMXziMjk9T/a9fx2hID5ipFwu7kiPRihMGEV4bHqUhSehkWnovry7ZLT1kg6kVa0H8eLJRosX1PcQOhvazIEzvvcVENd246O34CpIzDtztD0G9lk19bLYvKOFFf9GfGNxWTYDjMQ+CNdmfvt1Rgz4xBxpOpqfyzvNjxPQ7XDox0ikfem3wU6fdMVzQGHTmd0VltjZ+e76uu58JKmaEw0ryqPEwTlOYXZ0tDkyOpKD4Lku2vTTi4WrjVWDqLA8pHXS1/UqQeK+p8Kg69zWotkZyTL8UpwJlodGnBkJzouAoP7HADHmxUzm2iqy+DgLfTaW1hIlAy6qSOBiczUqWlpNx8Ikyr9ZWq6O4EtSgc9tTmiu69KsXjqS8bA66tl9n8pUQrzRR0jbziDkON2oCokainzKRAJjwu4evIT5r13c/4DdZp7wctxuaBvmZ5SRWtPukWKQPO1s4gnmad9S+8RSbhtk9ItXdjo/zKWbU9jthV7YcVbTmmsjORGzJMnKxNyWF//J2BaWwt4JMJJn+5lw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 394d6dbc-39d2-4d04-7737-08d9a981039c X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:22.7012 (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: fGLT9Rdw/FS4HtgB7iz5mbuEXo2zqKnK/qgWUWlh27UrxCuxh3u6LrREYeFD0kfZCLVjepBrMjcF9OhMTpF3PSpk9u4xPKe57sV6QY9xaZU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4036 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-GUID: k3fUHgZ5TC6ykYnzc8EpeYsP1rj_96Jo X-Proofpoint-ORIG-GUID: k3fUHgZ5TC6ykYnzc8EpeYsP1rj_96Jo Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org From: Allison Collins These routines set up and queue a new deferred attribute operations. These functions are meant to be called by any routine needing to initiate a deferred attribute operation as opposed to the existing inline operations. New helper function xfs_attr_item_init also added. Finally enable delayed attributes in xfs_attr_set and xfs_attr_remove. Signed-off-by: Allison Henderson Reviewed-by: Darrick J. Wong Reviewed-by: Chandan Babu R --- libxfs/libxfs_priv.h | 4 +++ libxfs/xfs_attr.c | 69 ++++++++++++++++++++++++++++++++++++++++++-- libxfs/xfs_attr.h | 2 ++ 3 files changed, 72 insertions(+), 3 deletions(-) diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h index 15bae1ffde88..7f6dc14e476f 100644 --- a/libxfs/libxfs_priv.h +++ b/libxfs/libxfs_priv.h @@ -609,9 +609,13 @@ typedef int (*xfs_rtalloc_query_range_fn)( int libxfs_zero_extent(struct xfs_inode *ip, xfs_fsblock_t start_fsb, xfs_off_t count_fsb); +/* xfs_log.c */ +struct xlog; bool xfs_log_check_lsn(struct xfs_mount *, xfs_lsn_t); void xfs_log_item_init(struct xfs_mount *, struct xfs_log_item *, int); +int xfs_attr_use_log_assist(struct xfs_mount *mp); +void xlog_drop_incompat_feat(struct xlog *log); #define xfs_log_in_recovery(mp) (false) /* xfs_icache.c */ diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 6306bcf1d1ba..806272017cb1 100644 --- a/libxfs/xfs_attr.c +++ b/libxfs/xfs_attr.c @@ -725,6 +725,7 @@ xfs_attr_set( int error, local; int rmt_blks = 0; unsigned int total; + int delayed = xfs_has_larp(mp); if (XFS_FORCED_SHUTDOWN(dp->i_mount)) return -EIO; @@ -781,13 +782,19 @@ xfs_attr_set( rmt_blks = xfs_attr3_rmt_blocks(mp, XFS_XATTR_SIZE_MAX); } + if (delayed) { + error = xfs_attr_use_log_assist(mp); + if (error) + return error; + } + /* * Root fork attributes can use reserved data blocks for this * operation if necessary */ error = xfs_trans_alloc_inode(dp, &tres, total, 0, rsvd, &args->trans); if (error) - return error; + goto drop_incompat; if (args->value || xfs_inode_hasattr(dp)) { error = xfs_iext_count_may_overflow(dp, XFS_ATTR_FORK, @@ -805,9 +812,10 @@ xfs_attr_set( if (error != -ENOATTR && error != -EEXIST) goto out_trans_cancel; - error = xfs_attr_set_args(args); + error = xfs_attr_set_deferred(args); if (error) goto out_trans_cancel; + /* shortform attribute has already been committed */ if (!args->trans) goto out_unlock; @@ -816,7 +824,7 @@ xfs_attr_set( if (error != -EEXIST) goto out_trans_cancel; - error = xfs_attr_remove_args(args); + error = xfs_attr_remove_deferred(args); if (error) goto out_trans_cancel; } @@ -838,6 +846,9 @@ xfs_attr_set( error = xfs_trans_commit(args->trans); out_unlock: xfs_iunlock(dp, XFS_ILOCK_EXCL); +drop_incompat: + if (delayed) + xlog_drop_incompat_feat(mp->m_log); return error; out_trans_cancel: @@ -846,6 +857,58 @@ out_trans_cancel: goto out_unlock; } +STATIC int +xfs_attr_item_init( + struct xfs_da_args *args, + unsigned int op_flags, /* op flag (set or remove) */ + struct xfs_attr_item **attr) /* new xfs_attr_item */ +{ + + struct xfs_attr_item *new; + + new = kmem_zalloc(sizeof(struct xfs_attr_item), KM_NOFS); + new->xattri_op_flags = op_flags; + new->xattri_dac.da_args = args; + + *attr = new; + return 0; +} + +/* Sets an attribute for an inode as a deferred operation */ +int +xfs_attr_set_deferred( + struct xfs_da_args *args) +{ + struct xfs_attr_item *new; + int error = 0; + + error = xfs_attr_item_init(args, XFS_ATTR_OP_FLAGS_SET, &new); + if (error) + return error; + + xfs_defer_add(args->trans, XFS_DEFER_OPS_TYPE_ATTR, &new->xattri_list); + + return 0; +} + +/* Removes an attribute for an inode as a deferred operation */ +int +xfs_attr_remove_deferred( + struct xfs_da_args *args) +{ + + struct xfs_attr_item *new; + int error; + + error = xfs_attr_item_init(args, XFS_ATTR_OP_FLAGS_REMOVE, &new); + if (error) + return error; + + xfs_defer_add(args->trans, XFS_DEFER_OPS_TYPE_ATTR, &new->xattri_list); + + return 0; +} + /*======================================================================== * External routines when attribute list is inside the inode *========================================================================*/ diff --git a/libxfs/xfs_attr.h b/libxfs/xfs_attr.h index 26f67cc79082..4c48bd46bb32 100644 --- a/libxfs/xfs_attr.h +++ b/libxfs/xfs_attr.h @@ -526,5 +526,7 @@ bool xfs_attr_namecheck(const void *name, size_t length); void xfs_delattr_context_init(struct xfs_delattr_context *dac, struct xfs_da_args *args); int xfs_attr_calc_size(struct xfs_da_args *args, int *local); +int xfs_attr_set_deferred(struct xfs_da_args *args); +int xfs_attr_remove_deferred(struct xfs_da_args *args); #endif /* __XFS_ATTR_H__ */ From patchwork Wed Nov 17 04:16:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623655 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6D91C4332F for ; Wed, 17 Nov 2021 04:16:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8E31761BE1 for ; Wed, 17 Nov 2021 04:16:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233020AbhKQET2 (ORCPT ); Tue, 16 Nov 2021 23:19:28 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:34590 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233016AbhKQETY (ORCPT ); Tue, 16 Nov 2021 23:19:24 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH253cA003491 for ; Wed, 17 Nov 2021 04:16:25 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-2021-07-09; bh=ZPgBEgt69pho+R1iT+ga/yFvidKEdlrOxrjL+vHTMYg=; b=x87zkj3N2XPEKfDgZYmH1Ah04cr/5YPiTr6j8UmSNbhYV/HC27tnhRKDwb5p7wFwB6/i j7pIU8w0iYaQD9mfzKYuZROZeCyfWZEs0wq+N2dcp0Yzei93pfmFSpbHQDmX2CtKfwAe 2mO8aqMOEhCQ3pc82kuAn86TZ7whOt+V8u7+cv/hDcfCbwjNids7uY17eSzjexhX/Loz 9M+75B34JFf8KdyEb7HQlthZTN+fNeBBbpwwP5XazzUeQ5EuRzcDB39AmN0BD1ONh/9U VZEBfX6ZM5BWGLkkUZY1p6oI1eSI6rkr2QzNLWU2+df+hdO8AY9BhgH4HUBOCssZNnKL MQ== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbhv5dru5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:25 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4Aehd037362 for ; Wed, 17 Nov 2021 04:16:24 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2176.outbound.protection.outlook.com [104.47.58.176]) by aserp3020.oracle.com with ESMTP id 3ca566dagu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KsfqJ7Mnutydezcfh5keI+FfdpK+1bfq6yvOTSg7K7Lzb4Zl0I1EnI7P6giQZijjmPk3ifan1qPeVI6JvH2A25OmGEhb+aDa4OhQOuadMkC2mlcX0dnpzB22d19AgTR0ank0/d1Nd8gbIuW6YvWvRUXIE71TcEyoqk4z4Z7J3rTxLBTLeFcZ4oleBRLldGbufmWV2xEYhM6L+bBSq+wThK8g8KxJ29Nt5c0Jo6PvYJEcVEDWNNML/KQyc40IkyOmsxpY6Qlec6FCo2SWONuiz1nbGRtHxFCBbUL3jeJgi4klMvivgOllBmbDI4rHUPTQkWFIWsRC+rLf3GXrmJzbjQ== 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=ZPgBEgt69pho+R1iT+ga/yFvidKEdlrOxrjL+vHTMYg=; b=a/orGolRex3CsC30adigdn1v8P23TY5dkSk1PmlmtlcFHcJTiqFl54Y5pv6xV0PSYP76sFwt5qkGc5fEra7QCwoRjVHHwg4Xg0gLdV8TDQO7j/EYLJWszuxUArP2JnW/s+BMwS4sxZ+yJKMViEA4l/9ozPtCkpiqwX+/I1XrZe+98YZBn53KK0ySoov/ygohCjddP2zOFMPDqUPOdBxzz7mypspHkbYXsVbbxxYB8wUPdNtGHLf9/2WBV4Pbl9reB1IpKTzhHUaUa13Vy4cvMQL8mHJl1LvMKQ3Ctz8WQTfhuxTIqx+HuDvhs14aZ9R3/lLcYvR4qGDmDo8X14pP8A== 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=ZPgBEgt69pho+R1iT+ga/yFvidKEdlrOxrjL+vHTMYg=; b=aeeLjiUaAm8a6ZA2VxFTAB26khK1MO6Aw6si+MRM7bBNGJqibjrqwxvcdqHlw1XcUot5JRPeC5egEPNg6O+MrL0XgBFD/ijFj/jzg7418fDr+PHrCMFpFjfxMTDgTFnid0zasYTXaRWiAwkARMiqjnnpZEEfjopEdX+QWkxd9Kg= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by SJ0PR10MB4446.namprd10.prod.outlook.com (2603:10b6:a03:2d9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov 2021 04:16:23 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:23 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 10/14] xfsprogs: Remove unused xfs_attr_*_args Date: Tue, 16 Nov 2021 21:16:09 -0700 Message-Id: <20211117041613.3050252-11-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:22 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 18036009-f54a-4fe4-24e8-08d9a98103ce X-MS-TrafficTypeDiagnostic: SJ0PR10MB4446: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9E9ac+T0uuBu838rQcRTTPAbmL70DXUedk/91gHtUeUGYwAfek5cxS4h307MWCIKlER7GgF+GKmRA9+NYf9tXDv1i70uczHjq8Jg3sBjmotTULeVLvnXEmFgNmiZtD4wI5l+YVMYREh8EoDJb+LU5T/ejeuPj8zbaQGYz1iW/UFqPHVUfmIQxxYODq28zZeqAzKt6J8fhzBXpje+AyTphsBxrvnL7owoiXtB1hLJihf0WZ1+e9TvJVvQwhnBd7hqac7T6amNBcvPPTfli1bCsWBDDbtheAdPRzWV9O4mVsaiY6EDqF+O2bFTxJD9LMptpQRzfhvVEw+IwV61gJxGKuMvkCPCdTJ8DobwLjPy+dunXlarpQmLni79yH5/+D/9xGoUXV2EqRARCiSMaouKmveNyJu+LlSwza//KBPPumWCOO+Ys5IpukBt4hzDdVHu6Lv433qPeqkse+QeSxkbh8+5I7fjOVfMDhEF6kQ/esrQEmKcxwz4kqu+LHKdkUvtvMkvggv6cjYfA4GN9NbhERux7PCsS7fXFVOgHQ+WQ5Tx410d0+rD7hivXDJsGn/D0JMbljQJbtGKx00R/05X59jIlYlrcdEGMp0WNcux5dCuAJbICQEo5Ke66Owt75mHqY4nZQW69W8RK22zSDaLmF7fe8bZm8Tp6IT9b2X1ZWXXemX4tro6ULtg6PgEF31RiRH54pgqICn5n9y1evqj4g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(2906002)(956004)(2616005)(83380400001)(38350700002)(38100700002)(26005)(52116002)(5660300002)(316002)(6486002)(6512007)(44832011)(6666004)(8676002)(8936002)(1076003)(66946007)(66476007)(66556008)(6916009)(186003)(508600001)(86362001)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xjwKYDT8C4DbgeBDMobOfmjalV7hTbq7rOvjTuBNpBwt1nXMaqcOTbRQ9ygNeCKSpWeqI7mzCebYuJg9F4bhMxFS+w6nroVSFTqBw89W2YPa/oS3aOYs6mgfTv+4Dy2KyxK2uHdjVf1qrgNAeI8yANo+fyZeJYwPwm+pNawlrpEKhXYg1Tp3RICAWECrwIEjQHhgMfKuI/QY+GQz+BDq84WXNuJm6bLPtZj5Qge2zAjyfjHaFoZ4Q+molNHZlPc82cvyO4ttvv/FgLnc9ShoMYYwil5+CSq0oph107MCJpuOZ1g6mS3RJFXJ2HJUeNaqHZlwGzjPqcRN5Oh2Z02aLDYZNWTDSRIMiJn3LTKd9/wPFoG586lBid6nroIw/gePsuA9UmN59bAffgjJ/4ow6G6gHn89Wl7rqeMCqH460b3HtHLNFIcmGDOzQnIXqzuVMeS23MWjcVWqhzK3pEgncbm3vtY0zMjTpjU4HvbYCsdwHh6bpW0ZgynlGJaevAvwnfllIy7BcOeQpwKRk+2NM8Op5Dt36NUkzRGG6PrSk1p+/S2JZC+gL/pqQC57NxdjmYq8mdADksfxfxa1zGfzXnwBjkjpodaUGFM7kH5DOJe5Gmycywf4xp6RwgFlIgvyAp+3l0SXUIOkI/aK1EQhxaYNVcp/thePvdPVmtjucUUVik+vCywdaT20YX/5XSKbgJg7Vf1Mqx238dySsFjzehzUTztbs+VSEKaLGJ4xE5YBfvvqSKKzcTPLC7QEtOgGrC3aoPqi4XbY1EI6D0dngkj2Ul4aDATw4ULbyVjXsLXkrDXxW/ySeAs/gDSfjo7/05n3wNh2wxicKPVK6VlWdq+6FzyuXL+wNl6mu8NstnOIPKye+Dshk4micYMbYgC/PsTo2AkxWvzGcEj99lXu3cJIaz068C2Jp+eF2VUojVKVCD78VkH0+bSyil0ZXa3onl/aWCzj824NBYeyuX4x+C16+1S+DYlsaLTZfTsgnvXrVUJGoFYEm2+LxxrU4CKAk9JUjiVICg0mmDXdPy5G6W02p2ZleWWVchWFmbpQtEiE4Ofv/0nAZJgxm0FveoqkgimfAFA2vicJeF6s2cF31mUhhs7+jwZHKnv8W4h6McEv6X3fYsWGJkOPHT6vX7sTtPx+N43hiA4KcEDMOnZ0Pz6kD1xRb8Zbfo17LxuJrS4aYkdQQZov0TEHrReoz/z/VooiaGGuMbSFefwRa9lPxwI6rz7tAPGnT34HAGc3WmStWKsT/WfaM6Lk98Hug++I/TXInopZpCDQkaUr3ayQ29J61+XWD29GVDJN4jed3vg03WjnL5QOfOy15Qzexv8wG7As/UpWC8Hns8cb/a15NUKR4w+8NIIZ+fgJ1ippsao16nmTRV4bhhFrjEl2zDDvy3A3Q0cJi9lSiqqyj+3iZHSPXaYM5o8BTaQYwA9du8N4SgcJNgODTplzzTC5kVsmns0PRRPeqt820wT+tTExHBp8tpbjpRdoYf7wK/sobrSFB+Cy2aSY1Q2kEtQZis+VB3wEdXJSTnfw88GiQuSwSrP2b/rxC55xrlBwCgU+jO5ZhNyDVDqo4/tL2/r4BZIhKLyyua33bCxuOEctahPJgpv5OsZY2K80JE9a0mS60PDZSP1WhEsq8mCxc5x/pLfadTLzpaTmdmZ8ACkyw/4sWQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18036009-f54a-4fe4-24e8-08d9a98103ce X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:23.0507 (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: oFiQL6lNHXTi9EZhC0eZB5sJiboqP5IhlN6wqxXtHRJ5OD+FX7drh24Oz25Bc58wpwBuVk9o6Z8D+/2dsnsYJxL6QhAROLZNsKh+uhc/hDY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4446 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-ORIG-GUID: 6d0OjcAqxNA_qm-BdB0kmul2M_6KbVnm X-Proofpoint-GUID: 6d0OjcAqxNA_qm-BdB0kmul2M_6KbVnm Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Remove xfs_attr_set_args, xfs_attr_remove_args, and xfs_attr_trans_roll. These high level loops are now driven by the delayed operations code, and can be removed. Additionally collapse in the leaf_bp parameter of xfs_attr_set_iter since we only have one caller that passes dac->leaf_bp Signed-off-by: Allison Henderson Reviewed-by: Darrick J. Wong Reviewed-by: Chandan Babu R --- libxfs/defer_item.c | 6 +-- libxfs/xfs_attr.c | 106 ++++----------------------------------- libxfs/xfs_attr.h | 8 +-- libxfs/xfs_attr_remote.c | 1 - 4 files changed, 13 insertions(+), 108 deletions(-) diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index 46026084f44b..594f5e92e668 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -124,7 +124,6 @@ const struct xfs_defer_op_type xfs_extent_free_defer_type = { STATIC int xfs_trans_attr_finish_update( struct xfs_delattr_context *dac, - struct xfs_buf **leaf_bp, uint32_t op_flags) { struct xfs_da_args *args = dac->da_args; @@ -134,7 +133,7 @@ xfs_trans_attr_finish_update( switch (op) { case XFS_ATTR_OP_FLAGS_SET: - error = xfs_attr_set_iter(dac, leaf_bp); + error = xfs_attr_set_iter(dac); break; case XFS_ATTR_OP_FLAGS_REMOVE: ASSERT(XFS_IFORK_Q(args->dp)); @@ -206,8 +205,7 @@ xfs_attr_finish_item( */ dac->da_args->trans = tp; - error = xfs_trans_attr_finish_update(dac, &dac->leaf_bp, - attr->xattri_op_flags); + error = xfs_trans_attr_finish_update(dac, attr->xattri_op_flags); if (error != -EAGAIN) kmem_free(attr); diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 806272017cb1..7d28914894ce 100644 --- a/libxfs/xfs_attr.c +++ b/libxfs/xfs_attr.c @@ -241,64 +241,9 @@ xfs_attr_is_shortform( ip->i_afp->if_nextents == 0); } -/* - * Checks to see if a delayed attribute transaction should be rolled. If so, - * transaction is finished or rolled as needed. - */ -STATIC int -xfs_attr_trans_roll( - struct xfs_delattr_context *dac) -{ - struct xfs_da_args *args = dac->da_args; - int error; - - if (dac->flags & XFS_DAC_DEFER_FINISH) { - /* - * The caller wants us to finish all the deferred ops so that we - * avoid pinning the log tail with a large number of deferred - * ops. - */ - dac->flags &= ~XFS_DAC_DEFER_FINISH; - error = xfs_defer_finish(&args->trans); - } else - error = xfs_trans_roll_inode(&args->trans, args->dp); - - return error; -} - -/* - * Set the attribute specified in @args. - */ -int -xfs_attr_set_args( - struct xfs_da_args *args) -{ - struct xfs_buf *leaf_bp = NULL; - int error = 0; - struct xfs_delattr_context dac = { - .da_args = args, - }; - - do { - error = xfs_attr_set_iter(&dac, &leaf_bp); - if (error != -EAGAIN) - break; - - error = xfs_attr_trans_roll(&dac); - if (error) { - if (leaf_bp) - xfs_trans_brelse(args->trans, leaf_bp); - return error; - } - } while (true); - - return error; -} - STATIC int xfs_attr_sf_addname( - struct xfs_delattr_context *dac, - struct xfs_buf **leaf_bp) + struct xfs_delattr_context *dac) { struct xfs_da_args *args = dac->da_args; struct xfs_inode *dp = args->dp; @@ -317,7 +262,7 @@ xfs_attr_sf_addname( * It won't fit in the shortform, transform to a leaf block. GROT: * another possible req'mt for a double-split btree op. */ - error = xfs_attr_shortform_to_leaf(args, leaf_bp); + error = xfs_attr_shortform_to_leaf(args, &dac->leaf_bp); if (error) return error; @@ -326,7 +271,7 @@ xfs_attr_sf_addname( * push cannot grab the half-baked leaf buffer and run into problems * with the write verifier. */ - xfs_trans_bhold(args->trans, *leaf_bp); + xfs_trans_bhold(args->trans, dac->leaf_bp); /* * We're still in XFS_DAS_UNINIT state here. We've converted @@ -334,7 +279,6 @@ xfs_attr_sf_addname( * add. */ trace_xfs_attr_sf_addname_return(XFS_DAS_UNINIT, args->dp); - dac->flags |= XFS_DAC_DEFER_FINISH; return -EAGAIN; } @@ -347,8 +291,7 @@ xfs_attr_sf_addname( */ int xfs_attr_set_iter( - struct xfs_delattr_context *dac, - struct xfs_buf **leaf_bp) + struct xfs_delattr_context *dac) { struct xfs_da_args *args = dac->da_args; struct xfs_inode *dp = args->dp; @@ -367,14 +310,14 @@ xfs_attr_set_iter( * release the hold once we return with a clean transaction. */ if (xfs_attr_is_shortform(dp)) - return xfs_attr_sf_addname(dac, leaf_bp); - if (*leaf_bp != NULL) { - xfs_trans_bhold_release(args->trans, *leaf_bp); - *leaf_bp = NULL; + return xfs_attr_sf_addname(dac); + if (dac->leaf_bp != NULL) { + xfs_trans_bhold_release(args->trans, dac->leaf_bp); + dac->leaf_bp = NULL; } if (xfs_attr_is_leaf(dp)) { - error = xfs_attr_leaf_try_add(args, *leaf_bp); + error = xfs_attr_leaf_try_add(args, dac->leaf_bp); if (error == -ENOSPC) { error = xfs_attr3_leaf_to_node(args); if (error) @@ -393,7 +336,6 @@ xfs_attr_set_iter( * be a node, so we'll fall down into the node * handling code below */ - dac->flags |= XFS_DAC_DEFER_FINISH; trace_xfs_attr_set_iter_return( dac->dela_state, args->dp); return -EAGAIN; @@ -684,32 +626,6 @@ xfs_has_attr( return xfs_attr_node_hasname(args, NULL); } -/* - * Remove the attribute specified in @args. - */ -int -xfs_attr_remove_args( - struct xfs_da_args *args) -{ - int error; - struct xfs_delattr_context dac = { - .da_args = args, - }; - - do { - error = xfs_attr_remove_iter(&dac); - if (error != -EAGAIN) - break; - - error = xfs_attr_trans_roll(&dac); - if (error) - return error; - - } while (true); - - return error; -} - /* * Note: If args->value is NULL the attribute will be removed, just like the * Linux ->setattr API. @@ -1273,7 +1189,6 @@ xfs_attr_node_addname( * this. dela_state is still unset by this function at * this point. */ - dac->flags |= XFS_DAC_DEFER_FINISH; trace_xfs_attr_node_addname_return( dac->dela_state, args->dp); return -EAGAIN; @@ -1288,7 +1203,6 @@ xfs_attr_node_addname( error = xfs_da3_split(state); if (error) goto out; - dac->flags |= XFS_DAC_DEFER_FINISH; } else { /* * Addition succeeded, update Btree hashvals. @@ -1542,7 +1456,6 @@ xfs_attr_remove_iter( if (error) goto out; dac->dela_state = XFS_DAS_RM_NAME; - dac->flags |= XFS_DAC_DEFER_FINISH; trace_xfs_attr_remove_iter_return(dac->dela_state, args->dp); return -EAGAIN; } @@ -1570,7 +1483,6 @@ xfs_attr_remove_iter( if (error) goto out; - dac->flags |= XFS_DAC_DEFER_FINISH; dac->dela_state = XFS_DAS_RM_SHRINK; trace_xfs_attr_remove_iter_return( dac->dela_state, args->dp); diff --git a/libxfs/xfs_attr.h b/libxfs/xfs_attr.h index 4c48bd46bb32..60806dcd5e5d 100644 --- a/libxfs/xfs_attr.h +++ b/libxfs/xfs_attr.h @@ -457,8 +457,7 @@ enum xfs_delattr_state { /* * Defines for xfs_delattr_context.flags */ -#define XFS_DAC_DEFER_FINISH 0x01 /* finish the transaction */ -#define XFS_DAC_LEAF_ADDNAME_INIT 0x02 /* xfs_attr_leaf_addname init*/ +#define XFS_DAC_LEAF_ADDNAME_INIT 0x01 /* xfs_attr_leaf_addname init*/ /* * Context used for keeping track of delayed attribute operations @@ -516,11 +515,8 @@ bool xfs_attr_is_leaf(struct xfs_inode *ip); int xfs_attr_get_ilocked(struct xfs_da_args *args); int xfs_attr_get(struct xfs_da_args *args); int xfs_attr_set(struct xfs_da_args *args); -int xfs_attr_set_args(struct xfs_da_args *args); -int xfs_attr_set_iter(struct xfs_delattr_context *dac, - struct xfs_buf **leaf_bp); +int xfs_attr_set_iter(struct xfs_delattr_context *dac); int xfs_has_attr(struct xfs_da_args *args); -int xfs_attr_remove_args(struct xfs_da_args *args); int xfs_attr_remove_iter(struct xfs_delattr_context *dac); bool xfs_attr_namecheck(const void *name, size_t length); void xfs_delattr_context_init(struct xfs_delattr_context *dac, diff --git a/libxfs/xfs_attr_remote.c b/libxfs/xfs_attr_remote.c index b781e44d9c5a..42943b3542c4 100644 --- a/libxfs/xfs_attr_remote.c +++ b/libxfs/xfs_attr_remote.c @@ -694,7 +694,6 @@ xfs_attr_rmtval_remove( * the parent */ if (!done) { - dac->flags |= XFS_DAC_DEFER_FINISH; trace_xfs_attr_rmtval_remove_return(dac->dela_state, args->dp); return -EAGAIN; } From patchwork Wed Nov 17 04:16:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623657 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 01AC1C433EF for ; Wed, 17 Nov 2021 04:16:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E251E61B5F for ; Wed, 17 Nov 2021 04:16:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230227AbhKQET3 (ORCPT ); Tue, 16 Nov 2021 23:19:29 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:64936 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233023AbhKQETY (ORCPT ); Tue, 16 Nov 2021 23:19:24 -0500 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4C1SF032037 for ; Wed, 17 Nov 2021 04:16:26 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-2021-07-09; bh=bdaYttU5zKADtZoeJlODrhsr/rVdtU8cv4nfOX0sfEs=; b=vCHFBZaAFLN1WZM0yhx3XpETJJPGUlOMTu2yfrZO00twm3w5fFa+Wc5bbvquH+106yQK ukAAfwalByYdrR2G1OGMtPbx2TytTyJHYbMgHIDdfHyzibtEB2EjOHvDcdH9AVK509n5 vmkJBS9fR7CuqaDmUfK7aIa2c+aMdowtmWu1gFikKeBEZ0BSpRjXlngUQ0URAhuMIFXb 2frtUQx3DoodZMi+6KAmz1dRc7vVCNvpxXCIEbS0cu4vjpIUywaCT9eS4CGZOQyP24S6 ocbibzv3RD0s2zhMu9V3AYAR4QrrIpqR7i4T25ItVlfNW8ItbNHajMAyxA0g2h4pP/+w RA== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbhv86ery-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:26 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4Aehe037362 for ; Wed, 17 Nov 2021 04:16:25 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2176.outbound.protection.outlook.com [104.47.58.176]) by aserp3020.oracle.com with ESMTP id 3ca566dagu-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CrMGEqCABd2TpAiSSvWdFt2w/cifMNZZvQPeuzig3MO2RqQb9UOgM2vJ8w35ASv4lhCZm/DMdYNHM5ipJ4rIGOvCuRmoOhelaJsOqB22EvM3OIjO6uqv6HCFKJWWSFsJpHDnaSSUCQw7GNgiXnuXbkkvtJ/+zE2DBZTn/FblAY7RZmBRLcb0AHcnWc3+SxEOxRnLo4LO8otvzPeqCywLPXXtl4g8BPEBFYGK3qHoGw/oMYZVomQ4+22h95m4z3NIubnMkUpR6L1JnJ+G7q39RAe7UaqPzI2xcVvPxFUYDi7140jL3qTchwMUXxmz+2N+fSrRB9zHygmbFo5uIpY2BA== 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=bdaYttU5zKADtZoeJlODrhsr/rVdtU8cv4nfOX0sfEs=; b=QwgRX7y3O7j/+WQk59qYDcWP/IfKkYAZ7GkDgiYlzTBFJDYOG0B0/qVXeWwTDzPOmXZ2wJcvLdGrEeTwG3qFYqPytoo9xzIqrAPUV1ihCnXqt37zBNaKmjvtUIIE5VAyRll3gEm6qJdylI5i0pUNUjkGb7ltdm1lRmbvLC4WVvyGmEb6NvOBwwlXDbY5SL1shcjB0y1mibN6S/0e32MdRCipt/SIKFk+KhZ8nHyL69Lcf2Jg9J+OYtUKbpEWowUujMt/zEG6C4jCqEs7RHdbaZ1HfDJWgimHvRpoBVnrycOwdsewYS/DKCD7byGGRAj7Bq8ipc+NdrSe908Yuj72/Q== 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=bdaYttU5zKADtZoeJlODrhsr/rVdtU8cv4nfOX0sfEs=; b=CAkXk/UE5i8ICbxj3mMjwuY81uA5e2aHP/0/+j7R83mvH4yeWLkT/u+ttzNRJzJ2JAvdp1wYsalQwQAvuK5wCa8guSXTubaNooWJNtp4r0RpvY3fXoWnZKEI/SPxwmFGhbAAe8hFAJ0XNAidzUUgH1wjnbvzbUZ+V+Me2OE6QVo= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by SJ0PR10MB4446.namprd10.prod.outlook.com (2603:10b6:a03:2d9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov 2021 04:16:23 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:23 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 11/14] xfsprogs: Add log attribute error tag Date: Tue, 16 Nov 2021 21:16:10 -0700 Message-Id: <20211117041613.3050252-12-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:23 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5f5fe846-4921-4653-7b04-08d9a98103fc X-MS-TrafficTypeDiagnostic: SJ0PR10MB4446: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2150; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1NoWQ3c2dd3+M/bIDkXNH4aa3zV5CIf6tHNRXrp79OdlVtIkWLwjGIxdyMUNyWX0yBmCpRp6BW2neMqCumHRa3VTqiXXW8gq15FQ3NZmaC+2nMu1dYvLrAeVMp38YAzIv3rqZKa189qa5+0vnigpH3yotLrCrqU/OBb5qRq+rdUb5hyRTHQ3+iL5DFTOkYWTaefrZk9sfbdNVqnUURgQrgNqnAHuGA/KjrtJsxH1MzdMtGgRxwk4D5R70aNHvJitiBuF67PZgdKGvo6lZUu+q4yL1K+91kft7t00EIsfCf0MZ+w6IylCWwo4YyTvYhT+WwSLsiKrpI4BiIQkuEsobVYx4dyOQ58Eovbg/aATzHRDk2XqOLWAx9ML9sjRHFNgaa4q2ngK8AVIsoFNHZ1fkGzH/AW74v9JGE8hpuDkF8K9S1/adsg2x3C6hZbCVoC8KfJAq4MogmgfqjT4o6Ja4QAcYOTUAV2aLEalBnSRxyGLi7COXmdJMhW49b7M0Uvj5fITDzFbImxc8d8DHFys+5yyc/pRDdQbx7GyNtYt58AF6oTG+8BxLIjydNcQbHdC+0IWcesjRxyfi1WXFi9hReqEefp+G1yNUUMiyBZueBqwxl1JhZxiv969gTFNz656b+NAjkmfvXubtt63tyVMVHAN+/colnOc7uBb7npLKYKSrvAS6SLreyJdVWzYO5AO0I2ua3K7XWddWIiponeRJw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(2906002)(956004)(2616005)(83380400001)(38350700002)(38100700002)(26005)(52116002)(5660300002)(316002)(6486002)(6512007)(44832011)(6666004)(8676002)(8936002)(1076003)(66946007)(66476007)(66556008)(6916009)(186003)(508600001)(86362001)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: lKd4NiKtWwIPIKg87Rurs7rAICqQ3P5lRyZ+NW9TSaFEn2Kj9OyOplGmbyrqnt7waWz+F+22LGkuru7J9kUfAp1DVN7NJQGiMYXK2yps6vOAyq69rrh6RpHT52zzXZNJcYFaxXq9taHBZbuM13RixguMrIVvlhoF67Kn4nrrZJq/1xJBeRRv5sobnOQJKuBqrvXJfHg8vxbHZ/1cmctsYdXfYtF3f1Kna1bn96qEW2fbrDwqqtGJ0Lb01PQxAOaTYC1y+s+MET9348/dcLtmg5jose7iFbuN3WgS+hPphdRQ8KNpv3CABBrzGvKcD1N7JNKwpho6JPVNYcLoHtMz8HiTC+0HiCuENxbECtlzYtwUIe+tcCWVOCXqMjaF8EF13GdDgSsFf7p0RpZjzEEbaydrAF2IYPHKlYnWhIUCN5fleIeFDbm9VZT6imo0c23D3BDDTtPykQe4g0MUI6D+xjmbD725Wk6Hugz2eBgZNW2DQwcLMzcRydzUaVUEVAc8/t4dASMoDcm1ntkh+mGujJM7OUsl/OuRKs5oIp/K2O9ml/kdugQIZvVbtmRf6szQAl/l7df9Cy/CeM/qQ/PgkrIBmuclIoXcQ7syiRoe/h/rsUnRS1OO9VrS0PqXrvtnT0MVwGwocni7zSOx/+N9DATuhtECbxl0MZ2tmEW/gvsaolzonhQkH+gGOaT9m915wnMsC5+SqAXIVB4oqbJTuib9Nn1l0TBKoCsXIlmaoII6KzJmuTWwTqSrBZqq6eLfUBm0U8CfzumooD109vacNOZUJlg6nXtSWHVy7gJLU90S6htaWRjwWL4E9TbuRLgBv/mLaiVtmoOUNB+WX/RzLLTWJOivQ0lbWhSg5jxnsGTqmxLB7HuqNMppN3A3oswo50jCfnaIXmvWyICUTZPQllTouEx8L7Iga76VsdMOSpI/ekW1j7WOE4pxEVl2/dhufAZChL2frjvqIpumHySgKa9wxKCl7YpbsTW60kZn9U0nx2Al7zpbVgG7RXHryEBcTvoTIJUQ5UTEOu5vHTkIUzRCP5SEw38TXyQrx6H97vZmtoNHDuwNuHWmQBXEwq+/6dnRdWFJsDaI+b6reyAS5gnZGTSswcLlN3QCK0FXxOMdzanbcOOB486kQbxa5U3hKzulMTMSgQPULmfTA6426ZtZowOAI8DqK8hjgnL6oTlWpRQdyAcPa1yO+r/JeCVZqrJWntkaEDzfXDdLAh6hks5sYEeTVgv/+hjTwahIaBxpt/5Ten2jAgog/nkZkfgg5fZENcHh3LvIn5Y5wZDUDrXVEfU/T8YMWV74RyOIQG+BmkXSgtY5OYnaAe1iScMESVZxrzVCyQNuv31B8WkOmz/MxyTOip45Zu96MN32Cvo0a6gupQhNuTlHa8vlqir0ATwEQidUa6QqZmydjS46qGCb6MUCFpLvpOKU+kCAjxNOYfl2WnuR9JSqw95OnnMHvRmuuU/aByCZgvEdujOxQu/7p2mCcLFIDHdspYx12cBUs6n+YeBCKgEihA6nwTpnr4R8E7YN2gES2o/2ab2h7LrwA796H9eMk8zNhsJNwtTYAyeHl7UECEelimBx0htKFGyQfzuY+QyUovh806f+hAN3yislhm7AD6RcwPpSb72EPURTPOdzxvfmSwPYQlFLBO3h6EwGISIIlwC/5qRzpA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5f5fe846-4921-4653-7b04-08d9a98103fc X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:23.3544 (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: uY6eP/iA2dKwNExPCrSjDRT2sOoR3TzIBXxyLLPjJZIeou9oVq2VBQz7EnJHKZtB+h5+uTIp6FGLXY2xE2gBoozbeUY4jYemx7bAiIz/jdo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4446 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-GUID: kVLybbf2EeK4MEw1YE2AyLB8dA7yDuyV X-Proofpoint-ORIG-GUID: kVLybbf2EeK4MEw1YE2AyLB8dA7yDuyV Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This patch adds an error tag that we can use to test log attribute recovery and replay Signed-off-by: Allison Henderson Reviewed-by: Darrick J. Wong Reviewed-by: Chandan Babu R --- io/inject.c | 1 + libxfs/defer_item.c | 6 ++++++ libxfs/xfs_errortag.h | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/io/inject.c b/io/inject.c index b8b0977e139e..43b51db5b9cc 100644 --- a/io/inject.c +++ b/io/inject.c @@ -58,6 +58,7 @@ error_tag(char *name) { XFS_ERRTAG_REDUCE_MAX_IEXTENTS, "reduce_max_iextents" }, { XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT, "bmap_alloc_minlen_extent" }, { XFS_ERRTAG_AG_RESV_FAIL, "ag_resv_fail" }, + { XFS_ERRTAG_LARP, "larp" }, { XFS_ERRTAG_MAX, NULL } }; int count; diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index 594f5e92e668..5392a1bcb961 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -131,6 +131,11 @@ xfs_trans_attr_finish_update( XFS_ATTR_OP_FLAGS_TYPE_MASK; int error; + if (XFS_TEST_ERROR(false, args->dp->i_mount, XFS_ERRTAG_LARP)) { + error = -EIO; + goto out; + } + switch (op) { case XFS_ATTR_OP_FLAGS_SET: error = xfs_attr_set_iter(dac); @@ -144,6 +149,7 @@ xfs_trans_attr_finish_update( break; } +out: /* * Mark the transaction dirty, even on error. This ensures the * transaction is aborted, which: diff --git a/libxfs/xfs_errortag.h b/libxfs/xfs_errortag.h index a23a52e643ad..c15d2340220c 100644 --- a/libxfs/xfs_errortag.h +++ b/libxfs/xfs_errortag.h @@ -59,7 +59,8 @@ #define XFS_ERRTAG_REDUCE_MAX_IEXTENTS 36 #define XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT 37 #define XFS_ERRTAG_AG_RESV_FAIL 38 -#define XFS_ERRTAG_MAX 39 +#define XFS_ERRTAG_LARP 39 +#define XFS_ERRTAG_MAX 40 /* * Random factors for above tags, 1 means always, 2 means 1/2 time, etc. @@ -103,5 +104,6 @@ #define XFS_RANDOM_REDUCE_MAX_IEXTENTS 1 #define XFS_RANDOM_BMAP_ALLOC_MINLEN_EXTENT 1 #define XFS_RANDOM_AG_RESV_FAIL 1 +#define XFS_RANDOM_LARP 1 #endif /* __XFS_ERRORTAG_H_ */ From patchwork Wed Nov 17 04:16:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623665 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00094C433F5 for ; Wed, 17 Nov 2021 04:16:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DA52561B5F for ; Wed, 17 Nov 2021 04:16:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233006AbhKQET3 (ORCPT ); Tue, 16 Nov 2021 23:19:29 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:1754 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233026AbhKQETZ (ORCPT ); Tue, 16 Nov 2021 23:19:25 -0500 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH44w7K031988 for ; Wed, 17 Nov 2021 04:16:27 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-2021-07-09; bh=JfzO3UtFegTPaUBfLv5LF15rBcn4nfi6NU8LiXOOsPk=; b=NrT83q40iPdao6P9LLaYzx74IK2w0xG76ei5XwYNeKvnCdKBitFgpzvX/W7kvLgmopVc tIMxfKWV+zsGNphizb5Ahy4MXeZd+g1zCoYhx8shEFC3lJv8+Z88ekCOU1jwcW9BK0J6 pVTD7sVjY9aPOP50bK7rQkmYOcUpL1xYNA9qci6bTusczqz/EeQAEY5cQccTjwqNPqcZ hxfsP6Bo0tvmqZVCuU6YA6hOh5tSL3g1PEhDlk+ZLfj2ySoK4hkhX81L27WVb+UxdWr4 FT4ToN1Da3GLIbtbJm4PEzy68bnoJL2ASY731b1h/VKag354s8bRN9IpLvrCa/4+Xmyn Cw== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbhv86es1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:26 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4Aehf037362 for ; Wed, 17 Nov 2021 04:16:25 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2176.outbound.protection.outlook.com [104.47.58.176]) by aserp3020.oracle.com with ESMTP id 3ca566dagu-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZBWIDvjxxn+YUDBcNenI5I7dA8eMMEhnF/u5YKZ9HzHPazHDMhWORvru6gCI3YpG5+QBWpTmxo1GHAoTHZx9K9WSGlItAw64T7nbxH45L5IvtjP0iU/td5tq77wYyHlKkWAVqM2A1J8m6PwBt92DZ1kuMef+mvNUyYKJWbqvIJ+kpBlJyUB38aBf2GUqSkeBauxuAglyZzDpc6a9s3lqMshVXK+F/hZyBzstZ0fkJ+bc0OYlAgrTqcKSmhGqVQnm00gGevIxpjKKq/S3vz+AeWHPSCKS/NbtDc76Yz+DnRFqF2K0PB45DEZtCLOzCXhMbw9+j2oOavt0A++6d/wCYA== 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=JfzO3UtFegTPaUBfLv5LF15rBcn4nfi6NU8LiXOOsPk=; b=gPu+9rdr6RSz4M0J8ThNBI+OYV0HcPMkG9hylDmDLTjkY1wRZxsEVPJsCOZ8tnPMWyUkcgASniu6Wz67zrdS7J61wibh/w1w9Bwf4Kx5CqM5wc0xfOUbmJT7XUt5I0yxuWAlThF0x5yEdomS69svccVub0wAB9x53Qmmh0XhJogWZRuUTdoil0jDDnjDOoI312nSuBd5DC2dR7rfyLbldZVGvOMMANfS4qrxjpmivgCQF+pI63G639pEW7JJgn3gokDiY3yWUErPZ0vd1xgP/IjjF/YRrSEbgrhlufIU5M4DGXljz5V6NZvcQDlOd+AQ5H540YuxiGqJZVVyhmpNJg== 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=JfzO3UtFegTPaUBfLv5LF15rBcn4nfi6NU8LiXOOsPk=; b=BfhWWGLPTj+tI9RXaywDOMuq1t36ayrdFyvBosIt6r3nCLK/AlzqXL4lIkHXpVZXP1PNXRr/GLgORJXio5BZQvh96zmDO9tZuAlJxK0/Hg0VuYSxxdSdUToOyaSV70YOu1AFSzJxz93Auu8i2BvfBqkaU6M+YdFHJY4kE1+0LQk= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by SJ0PR10MB4446.namprd10.prod.outlook.com (2603:10b6:a03:2d9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov 2021 04:16:23 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:23 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 12/14] xfsprogs: Merge xfs_delattr_context into xfs_attr_item Date: Tue, 16 Nov 2021 21:16:11 -0700 Message-Id: <20211117041613.3050252-13-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:23 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7a1e258f-2bd5-450c-2f27-08d9a981042c X-MS-TrafficTypeDiagnostic: SJ0PR10MB4446: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:773; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kOrrxrRaw3aEl8MKZDoMnkDQVPpfGkppeZkmXnoRapw8Z1qSOuY/nSTpNC1PMhJ5wC6lqIlf0vaZ6ChC94qRie+ojvvZnOs/DWUQBRkSnNe38iGtwZscijxog6O33lbUdc7LxY+CLBe89HA0BXjf2AcLh06WN6rM3Sfnjbj0hyDE4lH8O2FtLyuohElmicF1juldDzI/GGXMF78KM8ZlgeGaw7PJpnvwxjMrbLGmZgVEq/cadEoCDQ6wqZABnhD9CStR85N1eszII84Chw6+ruKZ1lSTHf+reJ/ITcDjONo/chrYzqMFvpyzrLFsWD0LSeWiUHXqKyXxN0BFt5ENLjCyXm1zxpC5A4cGYdBUb/fblRxZy9fDNrl+gGfdvkXP23CBfCxjIMEJNtWNHpbyabOCiom6xEVKZ5w2+mT+GLKuHPgt4D6eSeAO94fGEY/cX1FYdOpf5kHOHm/vVObg3aYD6hsLh3abaXhPLXolPG15l2XRwa7HjW15trOYk62v0/KCAbv0a7BWVP1WKNqJvy5fA5N28I4Zzq/XmqfGggVQS/4eAacHqnArv9AolKDBJ27EfZE8SZoLgxfJohKdMAB+gCcJN2sVWh+nvLlIFqr3w+QJNEWuoF2zuw1QpU0xabOuoL8IAsZGGT5Pk18OWZiRU4L9JR9Oc0w69coWNtuRg+2QJkRfKmYTgDzt+ZBdgjjfcyH6rqlIOTighXx79A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(2906002)(956004)(2616005)(83380400001)(38350700002)(38100700002)(26005)(52116002)(5660300002)(316002)(6486002)(6512007)(44832011)(6666004)(8676002)(8936002)(30864003)(1076003)(66946007)(66476007)(66556008)(6916009)(186003)(508600001)(86362001)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: J9kVWZe74XW8HoSeNYhIeNv80q8Vs4NAgcf7UNHYDvMiQ+oEylLSkv6fPe3p0Mvyf3w014WnuUk855LEPLoSGPPd6zlDazYdrbXAb+pX2FRl83RuMbz6lLrS4O1yLRUOnjnX3vhCczcylUESDxLEdT7tL3KudHj5vtnel3jDQxcEii/psdmcBuG8oc86xYvm4FURVcWtRYRUASqOCx5PRUkIPUxWwSZ4NS/0zCgiVC9VxrxeTM8e/JJ24x6T2iAL+Mkx+CvfKISCpSn/YGrylmCl8oSvT6G7GPG0m6FEdJEN4WEu5pAypknaKaYHHZdfNK27CG3ObwYEbZLcLew0+GoPfLErp801zAKiut4ynar9kPMwykPJaFr9RniOVbxCN5lIM2so8CntQOOYeB58sh20FR99PXWR8+mIsMNXinFn7WoxBH/c1cCKvSHZPqnvpMkjOJzxeqops6bdaEWzeWRhg/6zVoCU1WhOmY3j3LookFxDaprKNjlWDFXsc2vNdiU5KZjy2N5XkcS/piQRoZs47MFx6yqRcIkPqV2RMWQfefAnQqytaexomMWYz+F1Nnrs/GEqc2it18UEg9pGvVE/a/RNOnDcM4phyK6M7UOroiPIuFeAC1xzo47wT4M7gV9eXyXNSx2gA2Yr0iizpd6o/ieKRNrFiNlBPPIr55VZ3c19V59bSRbs+xVMZnhBizb024oE+1NZ941+CgCt1aeWaiBRJeVaN89qil4O9l4rgv4l8eatbAP0lsKqL1L7oCS7HRChcwHTb7/Tcv+yckhvgEozL+mBy1pHJCfIqtca4s3lENOdo4wk7/kDi7G5ic0Pt+HBpgOPDJ8Uo+LqmJmYy+yTVyv96Q9PV81kdmAfzlenP308SLdz5XCVN0CbuaAwQnqnvp3yD4W9uhisuHYPuZUYSc/OFVE27NNNDJihc6orfc8pvmTUEVbJWhoxUFj5C7D/aMa3aJGZrs0qrySYGgBvz5YwQ2Ud4pkYX7IiMHDlxvAKs1CvqC+bAt6u6/+4i0sDc1G2Rj89WoN2pGGV15DoAMNBdxF3gLjgg7b1XumLBwJiN3YJCRYh9j7YolhFtTbqalOIYZAJNI4zddfYhOkF9xRaMXwsIiChe1rVGeEWSxteAR5DFuigwJ17oTtCXKgnEY2q2r2RKD/gJwKouLm89R5Fdcjf/mZB7cTodS9gImkJ3n/8nEgUrthFEJZJ1SmqhXWv6zIfopPC/VfDwAetKJhcWh7h/oDd60LJR8biTzWdBYYCH1jgls2ORp13KNNzZbSb7YtnCB9+5qdA3gkLMtexbWuVDXTDpeBoswwlEoxqo4bP3yeZS3vcnAtHUrWfApkw+rBp8oEUXsfyxsmPJHdp9Jzb0wkPBW5AX6T2jjZpb3V+3zA6pXHjiGjdJrLJNzyC7KDvWf/FSLdpXAG12u54V86iyDkZsBHxydhksw10wyMkwIKYSXMl6KCI1ILREogcWYixgWmLtUwbnQB9hgh0zDKZnU4wbFUqo66OmM+H8HPXIAW5+o91qBppn0oPvhcUfWhXfg4jZxRbzLdE2TMBmrc5PbI8RM8sDxnGuTsbDAgrSEGM/dT0CPLZCcz1vSk8lJEUo19OhEsiBCXbrEpa/X+EEO42MlRf8RR4PBbMwWZDyR67G+ieKodWZFUuLAr98FSuEUsUQg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a1e258f-2bd5-450c-2f27-08d9a981042c X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:23.6740 (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: z3CVqYzRCO4qNWAJEW5tOLvcByLBf+RodrBZkGkVc08qt0lHkCjipFzqoSlDTf8pTnAJ9DX82cyHPtUVciKYTRXgRrp3RngRUUpiLD7AAbM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4446 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-GUID: UCSwkJRSF4u_cQBu6JD8re0UgCaxwL7b X-Proofpoint-ORIG-GUID: UCSwkJRSF4u_cQBu6JD8re0UgCaxwL7b Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This is a clean up patch that merges xfs_delattr_context into xfs_attr_item. Now that the refactoring is complete and the delayed operation infrastructure is in place, we can combine these to eliminate the extra struct Signed-off-by: Allison Henderson Reviewed-by: Darrick J. Wong Reviewed-by: Chandan Babu R --- libxfs/defer_item.c | 14 ++-- libxfs/xfs_attr.c | 161 ++++++++++++++++++++------------------- libxfs/xfs_attr.h | 40 +++++----- libxfs/xfs_attr_remote.c | 36 ++++----- libxfs/xfs_attr_remote.h | 6 +- 5 files changed, 128 insertions(+), 129 deletions(-) diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index 5392a1bcb961..4b669b769968 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -123,10 +123,10 @@ const struct xfs_defer_op_type xfs_extent_free_defer_type = { */ STATIC int xfs_trans_attr_finish_update( - struct xfs_delattr_context *dac, + struct xfs_attr_item *attr, uint32_t op_flags) { - struct xfs_da_args *args = dac->da_args; + struct xfs_da_args *args = attr->xattri_da_args; unsigned int op = op_flags & XFS_ATTR_OP_FLAGS_TYPE_MASK; int error; @@ -138,11 +138,11 @@ xfs_trans_attr_finish_update( switch (op) { case XFS_ATTR_OP_FLAGS_SET: - error = xfs_attr_set_iter(dac); + error = xfs_attr_set_iter(attr); break; case XFS_ATTR_OP_FLAGS_REMOVE: ASSERT(XFS_IFORK_Q(args->dp)); - error = xfs_attr_remove_iter(dac); + error = xfs_attr_remove_iter(attr); break; default: error = -EFSCORRUPTED; @@ -200,18 +200,16 @@ xfs_attr_finish_item( { struct xfs_attr_item *attr; int error; - struct xfs_delattr_context *dac; attr = container_of(item, struct xfs_attr_item, xattri_list); - dac = &attr->xattri_dac; /* * Always reset trans after EAGAIN cycle * since the transaction is new */ - dac->da_args->trans = tp; + attr->xattri_da_args->trans = tp; - error = xfs_trans_attr_finish_update(dac, attr->xattri_op_flags); + error = xfs_trans_attr_finish_update(attr, attr->xattri_op_flags); if (error != -EAGAIN) kmem_free(attr); diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 7d28914894ce..c5b0abb5df20 100644 --- a/libxfs/xfs_attr.c +++ b/libxfs/xfs_attr.c @@ -53,10 +53,9 @@ STATIC int xfs_attr_leaf_try_add(struct xfs_da_args *args, struct xfs_buf *bp); */ STATIC int xfs_attr_node_get(xfs_da_args_t *args); STATIC void xfs_attr_restore_rmt_blk(struct xfs_da_args *args); -STATIC int xfs_attr_node_addname(struct xfs_delattr_context *dac); -STATIC int xfs_attr_node_addname_find_attr(struct xfs_delattr_context *dac); -STATIC int xfs_attr_node_addname_clear_incomplete( - struct xfs_delattr_context *dac); +STATIC int xfs_attr_node_addname(struct xfs_attr_item *attr); +STATIC int xfs_attr_node_addname_find_attr(struct xfs_attr_item *attr); +STATIC int xfs_attr_node_addname_clear_incomplete(struct xfs_attr_item *attr); STATIC int xfs_attr_node_hasname(xfs_da_args_t *args, struct xfs_da_state **state); STATIC int xfs_attr_fillstate(xfs_da_state_t *state); @@ -243,9 +242,9 @@ xfs_attr_is_shortform( STATIC int xfs_attr_sf_addname( - struct xfs_delattr_context *dac) + struct xfs_attr_item *attr) { - struct xfs_da_args *args = dac->da_args; + struct xfs_da_args *args = attr->xattri_da_args; struct xfs_inode *dp = args->dp; int error = 0; @@ -262,7 +261,7 @@ xfs_attr_sf_addname( * It won't fit in the shortform, transform to a leaf block. GROT: * another possible req'mt for a double-split btree op. */ - error = xfs_attr_shortform_to_leaf(args, &dac->leaf_bp); + error = xfs_attr_shortform_to_leaf(args, &attr->xattri_leaf_bp); if (error) return error; @@ -271,7 +270,7 @@ xfs_attr_sf_addname( * push cannot grab the half-baked leaf buffer and run into problems * with the write verifier. */ - xfs_trans_bhold(args->trans, dac->leaf_bp); + xfs_trans_bhold(args->trans, attr->xattri_leaf_bp); /* * We're still in XFS_DAS_UNINIT state here. We've converted @@ -291,16 +290,16 @@ xfs_attr_sf_addname( */ int xfs_attr_set_iter( - struct xfs_delattr_context *dac) + struct xfs_attr_item *attr) { - struct xfs_da_args *args = dac->da_args; + struct xfs_da_args *args = attr->xattri_da_args; struct xfs_inode *dp = args->dp; struct xfs_buf *bp = NULL; int forkoff, error = 0; struct xfs_mount *mp = args->dp->i_mount; /* State machine switch */ - switch (dac->dela_state) { + switch (attr->xattri_dela_state) { case XFS_DAS_UNINIT: /* * If the fork is shortform, attempt to add the attr. If there @@ -310,14 +309,16 @@ xfs_attr_set_iter( * release the hold once we return with a clean transaction. */ if (xfs_attr_is_shortform(dp)) - return xfs_attr_sf_addname(dac); - if (dac->leaf_bp != NULL) { - xfs_trans_bhold_release(args->trans, dac->leaf_bp); - dac->leaf_bp = NULL; + return xfs_attr_sf_addname(attr); + if (attr->xattri_leaf_bp != NULL) { + xfs_trans_bhold_release(args->trans, + attr->xattri_leaf_bp); + attr->xattri_leaf_bp = NULL; } if (xfs_attr_is_leaf(dp)) { - error = xfs_attr_leaf_try_add(args, dac->leaf_bp); + error = xfs_attr_leaf_try_add(args, + attr->xattri_leaf_bp); if (error == -ENOSPC) { error = xfs_attr3_leaf_to_node(args); if (error) @@ -337,19 +338,19 @@ xfs_attr_set_iter( * handling code below */ trace_xfs_attr_set_iter_return( - dac->dela_state, args->dp); + attr->xattri_dela_state, args->dp); return -EAGAIN; } else if (error) { return error; } - dac->dela_state = XFS_DAS_FOUND_LBLK; + attr->xattri_dela_state = XFS_DAS_FOUND_LBLK; } else { - error = xfs_attr_node_addname_find_attr(dac); + error = xfs_attr_node_addname_find_attr(attr); if (error) return error; - error = xfs_attr_node_addname(dac); + error = xfs_attr_node_addname(attr); if (error) return error; @@ -361,9 +362,10 @@ xfs_attr_set_iter( !(args->op_flags & XFS_DA_OP_RENAME)) return 0; - dac->dela_state = XFS_DAS_FOUND_NBLK; + attr->xattri_dela_state = XFS_DAS_FOUND_NBLK; } - trace_xfs_attr_set_iter_return(dac->dela_state, args->dp); + trace_xfs_attr_set_iter_return(attr->xattri_dela_state, + args->dp); return -EAGAIN; case XFS_DAS_FOUND_LBLK: /* @@ -374,10 +376,10 @@ xfs_attr_set_iter( */ /* Open coded xfs_attr_rmtval_set without trans handling */ - if ((dac->flags & XFS_DAC_LEAF_ADDNAME_INIT) == 0) { - dac->flags |= XFS_DAC_LEAF_ADDNAME_INIT; + if ((attr->xattri_flags & XFS_DAC_LEAF_ADDNAME_INIT) == 0) { + attr->xattri_flags |= XFS_DAC_LEAF_ADDNAME_INIT; if (args->rmtblkno > 0) { - error = xfs_attr_rmtval_find_space(dac); + error = xfs_attr_rmtval_find_space(attr); if (error) return error; } @@ -387,11 +389,11 @@ xfs_attr_set_iter( * Repeat allocating remote blocks for the attr value until * blkcnt drops to zero. */ - if (dac->blkcnt > 0) { - error = xfs_attr_rmtval_set_blk(dac); + if (attr->xattri_blkcnt > 0) { + error = xfs_attr_rmtval_set_blk(attr); if (error) return error; - trace_xfs_attr_set_iter_return(dac->dela_state, + trace_xfs_attr_set_iter_return(attr->xattri_dela_state, args->dp); return -EAGAIN; } @@ -427,8 +429,8 @@ xfs_attr_set_iter( * Commit the flag value change and start the next trans * in series. */ - dac->dela_state = XFS_DAS_FLIP_LFLAG; - trace_xfs_attr_set_iter_return(dac->dela_state, + attr->xattri_dela_state = XFS_DAS_FLIP_LFLAG; + trace_xfs_attr_set_iter_return(attr->xattri_dela_state, args->dp); return -EAGAIN; } @@ -447,17 +449,18 @@ xfs_attr_set_iter( fallthrough; case XFS_DAS_RM_LBLK: /* Set state in case xfs_attr_rmtval_remove returns -EAGAIN */ - dac->dela_state = XFS_DAS_RM_LBLK; + attr->xattri_dela_state = XFS_DAS_RM_LBLK; if (args->rmtblkno) { - error = xfs_attr_rmtval_remove(dac); + error = xfs_attr_rmtval_remove(attr); if (error == -EAGAIN) trace_xfs_attr_set_iter_return( - dac->dela_state, args->dp); + attr->xattri_dela_state, args->dp); if (error) return error; - dac->dela_state = XFS_DAS_RD_LEAF; - trace_xfs_attr_set_iter_return(dac->dela_state, args->dp); + attr->xattri_dela_state = XFS_DAS_RD_LEAF; + trace_xfs_attr_set_iter_return(attr->xattri_dela_state, + args->dp); return -EAGAIN; } @@ -488,7 +491,7 @@ xfs_attr_set_iter( * state. */ if (args->rmtblkno > 0) { - error = xfs_attr_rmtval_find_space(dac); + error = xfs_attr_rmtval_find_space(attr); if (error) return error; } @@ -501,14 +504,14 @@ xfs_attr_set_iter( * after we create the attribute so that we don't overflow the * maximum size of a transaction and/or hit a deadlock. */ - dac->dela_state = XFS_DAS_ALLOC_NODE; + attr->xattri_dela_state = XFS_DAS_ALLOC_NODE; if (args->rmtblkno > 0) { - if (dac->blkcnt > 0) { - error = xfs_attr_rmtval_set_blk(dac); + if (attr->xattri_blkcnt > 0) { + error = xfs_attr_rmtval_set_blk(attr); if (error) return error; trace_xfs_attr_set_iter_return( - dac->dela_state, args->dp); + attr->xattri_dela_state, args->dp); return -EAGAIN; } @@ -544,8 +547,8 @@ xfs_attr_set_iter( * Commit the flag value change and start the next trans * in series */ - dac->dela_state = XFS_DAS_FLIP_NFLAG; - trace_xfs_attr_set_iter_return(dac->dela_state, + attr->xattri_dela_state = XFS_DAS_FLIP_NFLAG; + trace_xfs_attr_set_iter_return(attr->xattri_dela_state, args->dp); return -EAGAIN; } @@ -565,18 +568,19 @@ xfs_attr_set_iter( fallthrough; case XFS_DAS_RM_NBLK: /* Set state in case xfs_attr_rmtval_remove returns -EAGAIN */ - dac->dela_state = XFS_DAS_RM_NBLK; + attr->xattri_dela_state = XFS_DAS_RM_NBLK; if (args->rmtblkno) { - error = xfs_attr_rmtval_remove(dac); + error = xfs_attr_rmtval_remove(attr); if (error == -EAGAIN) trace_xfs_attr_set_iter_return( - dac->dela_state, args->dp); + attr->xattri_dela_state, args->dp); if (error) return error; - dac->dela_state = XFS_DAS_CLR_FLAG; - trace_xfs_attr_set_iter_return(dac->dela_state, args->dp); + attr->xattri_dela_state = XFS_DAS_CLR_FLAG; + trace_xfs_attr_set_iter_return(attr->xattri_dela_state, + args->dp); return -EAGAIN; } @@ -586,7 +590,7 @@ xfs_attr_set_iter( * The last state for node format. Look up the old attr and * remove it. */ - error = xfs_attr_node_addname_clear_incomplete(dac); + error = xfs_attr_node_addname_clear_incomplete(attr); break; default: ASSERT(0); @@ -784,7 +788,7 @@ xfs_attr_item_init( new = kmem_zalloc(sizeof(struct xfs_attr_item), KM_NOFS); new->xattri_op_flags = op_flags; - new->xattri_dac.da_args = args; + new->xattri_da_args = args; *attr = new; return 0; @@ -1097,16 +1101,16 @@ xfs_attr_node_hasname( STATIC int xfs_attr_node_addname_find_attr( - struct xfs_delattr_context *dac) + struct xfs_attr_item *attr) { - struct xfs_da_args *args = dac->da_args; + struct xfs_da_args *args = attr->xattri_da_args; int retval; /* * Search to see if name already exists, and get back a pointer * to where it should go. */ - retval = xfs_attr_node_hasname(args, &dac->da_state); + retval = xfs_attr_node_hasname(args, &attr->xattri_da_state); if (retval != -ENOATTR && retval != -EEXIST) return retval; @@ -1134,8 +1138,8 @@ xfs_attr_node_addname_find_attr( return 0; error: - if (dac->da_state) - xfs_da_state_free(dac->da_state); + if (attr->xattri_da_state) + xfs_da_state_free(attr->xattri_da_state); return retval; } @@ -1156,10 +1160,10 @@ error: */ STATIC int xfs_attr_node_addname( - struct xfs_delattr_context *dac) + struct xfs_attr_item *attr) { - struct xfs_da_args *args = dac->da_args; - struct xfs_da_state *state = dac->da_state; + struct xfs_da_args *args = attr->xattri_da_args; + struct xfs_da_state *state = attr->xattri_da_state; struct xfs_da_state_blk *blk; int error; @@ -1190,7 +1194,7 @@ xfs_attr_node_addname( * this point. */ trace_xfs_attr_node_addname_return( - dac->dela_state, args->dp); + attr->xattri_dela_state, args->dp); return -EAGAIN; } @@ -1219,9 +1223,9 @@ out: STATIC int xfs_attr_node_addname_clear_incomplete( - struct xfs_delattr_context *dac) + struct xfs_attr_item *attr) { - struct xfs_da_args *args = dac->da_args; + struct xfs_da_args *args = attr->xattri_da_args; struct xfs_da_state *state = NULL; struct xfs_mount *mp = args->dp->i_mount; int retval = 0; @@ -1325,10 +1329,10 @@ xfs_attr_leaf_mark_incomplete( */ STATIC int xfs_attr_node_removename_setup( - struct xfs_delattr_context *dac) + struct xfs_attr_item *attr) { - struct xfs_da_args *args = dac->da_args; - struct xfs_da_state **state = &dac->da_state; + struct xfs_da_args *args = attr->xattri_da_args; + struct xfs_da_state **state = &attr->xattri_da_state; int error; error = xfs_attr_node_hasname(args, state); @@ -1387,16 +1391,16 @@ xfs_attr_node_removename( */ int xfs_attr_remove_iter( - struct xfs_delattr_context *dac) + struct xfs_attr_item *attr) { - struct xfs_da_args *args = dac->da_args; - struct xfs_da_state *state = dac->da_state; + struct xfs_da_args *args = attr->xattri_da_args; + struct xfs_da_state *state = attr->xattri_da_state; int retval, error = 0; struct xfs_inode *dp = args->dp; trace_xfs_attr_node_removename(args); - switch (dac->dela_state) { + switch (attr->xattri_dela_state) { case XFS_DAS_UNINIT: if (!xfs_inode_hasattr(dp)) return -ENOATTR; @@ -1415,16 +1419,16 @@ xfs_attr_remove_iter( * Node format may require transaction rolls. Set up the * state context and fall into the state machine. */ - if (!dac->da_state) { - error = xfs_attr_node_removename_setup(dac); + if (!attr->xattri_da_state) { + error = xfs_attr_node_removename_setup(attr); if (error) return error; - state = dac->da_state; + state = attr->xattri_da_state; } fallthrough; case XFS_DAS_RMTBLK: - dac->dela_state = XFS_DAS_RMTBLK; + attr->xattri_dela_state = XFS_DAS_RMTBLK; /* * If there is an out-of-line value, de-allocate the blocks. @@ -1437,10 +1441,10 @@ xfs_attr_remove_iter( * May return -EAGAIN. Roll and repeat until all remote * blocks are removed. */ - error = xfs_attr_rmtval_remove(dac); + error = xfs_attr_rmtval_remove(attr); if (error == -EAGAIN) { trace_xfs_attr_remove_iter_return( - dac->dela_state, args->dp); + attr->xattri_dela_state, args->dp); return error; } else if (error) { goto out; @@ -1455,8 +1459,9 @@ xfs_attr_remove_iter( error = xfs_attr_refillstate(state); if (error) goto out; - dac->dela_state = XFS_DAS_RM_NAME; - trace_xfs_attr_remove_iter_return(dac->dela_state, args->dp); + attr->xattri_dela_state = XFS_DAS_RM_NAME; + trace_xfs_attr_remove_iter_return( + attr->xattri_dela_state, args->dp); return -EAGAIN; } @@ -1466,7 +1471,7 @@ xfs_attr_remove_iter( * If we came here fresh from a transaction roll, reattach all * the buffers to the current transaction. */ - if (dac->dela_state == XFS_DAS_RM_NAME) { + if (attr->xattri_dela_state == XFS_DAS_RM_NAME) { error = xfs_attr_refillstate(state); if (error) goto out; @@ -1483,9 +1488,9 @@ xfs_attr_remove_iter( if (error) goto out; - dac->dela_state = XFS_DAS_RM_SHRINK; + attr->xattri_dela_state = XFS_DAS_RM_SHRINK; trace_xfs_attr_remove_iter_return( - dac->dela_state, args->dp); + attr->xattri_dela_state, args->dp); return -EAGAIN; } diff --git a/libxfs/xfs_attr.h b/libxfs/xfs_attr.h index 60806dcd5e5d..089a39a6bc7d 100644 --- a/libxfs/xfs_attr.h +++ b/libxfs/xfs_attr.h @@ -430,7 +430,7 @@ struct xfs_attr_list_context { */ /* - * Enum values for xfs_delattr_context.da_state + * Enum values for xfs_attr_item.xattri_da_state * * These values are used by delayed attribute operations to keep track of where * they were before they returned -EAGAIN. A return code of -EAGAIN signals the @@ -455,39 +455,32 @@ enum xfs_delattr_state { }; /* - * Defines for xfs_delattr_context.flags + * Defines for xfs_attr_item.xattri_flags */ #define XFS_DAC_LEAF_ADDNAME_INIT 0x01 /* xfs_attr_leaf_addname init*/ /* * Context used for keeping track of delayed attribute operations */ -struct xfs_delattr_context { - struct xfs_da_args *da_args; +struct xfs_attr_item { + struct xfs_da_args *xattri_da_args; /* * Used by xfs_attr_set to hold a leaf buffer across a transaction roll */ - struct xfs_buf *leaf_bp; + struct xfs_buf *xattri_leaf_bp; /* Used in xfs_attr_rmtval_set_blk to roll through allocating blocks */ - struct xfs_bmbt_irec map; - xfs_dablk_t lblkno; - int blkcnt; + struct xfs_bmbt_irec xattri_map; + xfs_dablk_t xattri_lblkno; + int xattri_blkcnt; /* Used in xfs_attr_node_removename to roll through removing blocks */ - struct xfs_da_state *da_state; + struct xfs_da_state *xattri_da_state; /* Used to keep track of current state of delayed operation */ - unsigned int flags; - enum xfs_delattr_state dela_state; -}; - -/* - * List of attrs to commit later. - */ -struct xfs_attr_item { - struct xfs_delattr_context xattri_dac; + unsigned int xattri_flags; + enum xfs_delattr_state xattri_dela_state; /* * Indicates if the attr operation is a set or a remove @@ -495,7 +488,10 @@ struct xfs_attr_item { */ unsigned int xattri_op_flags; - /* used to log this item to an intent */ + /* + * used to log this item to an intent containing a list of attrs to + * commit later + */ struct list_head xattri_list; }; @@ -515,12 +511,10 @@ bool xfs_attr_is_leaf(struct xfs_inode *ip); int xfs_attr_get_ilocked(struct xfs_da_args *args); int xfs_attr_get(struct xfs_da_args *args); int xfs_attr_set(struct xfs_da_args *args); -int xfs_attr_set_iter(struct xfs_delattr_context *dac); int xfs_has_attr(struct xfs_da_args *args); -int xfs_attr_remove_iter(struct xfs_delattr_context *dac); +int xfs_attr_set_iter(struct xfs_attr_item *attr); +int xfs_attr_remove_iter(struct xfs_attr_item *attr); bool xfs_attr_namecheck(const void *name, size_t length); -void xfs_delattr_context_init(struct xfs_delattr_context *dac, - struct xfs_da_args *args); int xfs_attr_calc_size(struct xfs_da_args *args, int *local); int xfs_attr_set_deferred(struct xfs_da_args *args); int xfs_attr_remove_deferred(struct xfs_da_args *args); diff --git a/libxfs/xfs_attr_remote.c b/libxfs/xfs_attr_remote.c index 42943b3542c4..72461bd47f3b 100644 --- a/libxfs/xfs_attr_remote.c +++ b/libxfs/xfs_attr_remote.c @@ -567,14 +567,14 @@ xfs_attr_rmtval_stale( */ int xfs_attr_rmtval_find_space( - struct xfs_delattr_context *dac) + struct xfs_attr_item *attr) { - struct xfs_da_args *args = dac->da_args; - struct xfs_bmbt_irec *map = &dac->map; + struct xfs_da_args *args = attr->xattri_da_args; + struct xfs_bmbt_irec *map = &attr->xattri_map; int error; - dac->lblkno = 0; - dac->blkcnt = 0; + attr->xattri_lblkno = 0; + attr->xattri_blkcnt = 0; args->rmtblkcnt = 0; args->rmtblkno = 0; memset(map, 0, sizeof(struct xfs_bmbt_irec)); @@ -583,8 +583,8 @@ xfs_attr_rmtval_find_space( if (error) return error; - dac->blkcnt = args->rmtblkcnt; - dac->lblkno = args->rmtblkno; + attr->xattri_blkcnt = args->rmtblkcnt; + attr->xattri_lblkno = args->rmtblkno; return 0; } @@ -597,17 +597,18 @@ xfs_attr_rmtval_find_space( */ int xfs_attr_rmtval_set_blk( - struct xfs_delattr_context *dac) + struct xfs_attr_item *attr) { - struct xfs_da_args *args = dac->da_args; + struct xfs_da_args *args = attr->xattri_da_args; struct xfs_inode *dp = args->dp; - struct xfs_bmbt_irec *map = &dac->map; + struct xfs_bmbt_irec *map = &attr->xattri_map; int nmap; int error; nmap = 1; - error = xfs_bmapi_write(args->trans, dp, (xfs_fileoff_t)dac->lblkno, - dac->blkcnt, XFS_BMAPI_ATTRFORK, args->total, + error = xfs_bmapi_write(args->trans, dp, + (xfs_fileoff_t)attr->xattri_lblkno, + attr->xattri_blkcnt, XFS_BMAPI_ATTRFORK, args->total, map, &nmap); if (error) return error; @@ -617,8 +618,8 @@ xfs_attr_rmtval_set_blk( (map->br_startblock != HOLESTARTBLOCK)); /* roll attribute extent map forwards */ - dac->lblkno += map->br_blockcount; - dac->blkcnt -= map->br_blockcount; + attr->xattri_lblkno += map->br_blockcount; + attr->xattri_blkcnt -= map->br_blockcount; return 0; } @@ -672,9 +673,9 @@ xfs_attr_rmtval_invalidate( */ int xfs_attr_rmtval_remove( - struct xfs_delattr_context *dac) + struct xfs_attr_item *attr) { - struct xfs_da_args *args = dac->da_args; + struct xfs_da_args *args = attr->xattri_da_args; int error, done; /* @@ -694,7 +695,8 @@ xfs_attr_rmtval_remove( * the parent */ if (!done) { - trace_xfs_attr_rmtval_remove_return(dac->dela_state, args->dp); + trace_xfs_attr_rmtval_remove_return(attr->xattri_dela_state, + args->dp); return -EAGAIN; } diff --git a/libxfs/xfs_attr_remote.h b/libxfs/xfs_attr_remote.h index d72eff30ca18..62b398edec3f 100644 --- a/libxfs/xfs_attr_remote.h +++ b/libxfs/xfs_attr_remote.h @@ -12,9 +12,9 @@ int xfs_attr_rmtval_get(struct xfs_da_args *args); int xfs_attr_rmtval_stale(struct xfs_inode *ip, struct xfs_bmbt_irec *map, xfs_buf_flags_t incore_flags); int xfs_attr_rmtval_invalidate(struct xfs_da_args *args); -int xfs_attr_rmtval_remove(struct xfs_delattr_context *dac); +int xfs_attr_rmtval_remove(struct xfs_attr_item *attr); int xfs_attr_rmt_find_hole(struct xfs_da_args *args); int xfs_attr_rmtval_set_value(struct xfs_da_args *args); -int xfs_attr_rmtval_set_blk(struct xfs_delattr_context *dac); -int xfs_attr_rmtval_find_space(struct xfs_delattr_context *dac); +int xfs_attr_rmtval_set_blk(struct xfs_attr_item *attr); +int xfs_attr_rmtval_find_space(struct xfs_attr_item *attr); #endif /* __XFS_ATTR_REMOTE_H__ */ From patchwork Wed Nov 17 04:16:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623667 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 65DACC433EF for ; Wed, 17 Nov 2021 04:16:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4CE5061B64 for ; Wed, 17 Nov 2021 04:16:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233026AbhKQETb (ORCPT ); Tue, 16 Nov 2021 23:19:31 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:36574 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233034AbhKQETZ (ORCPT ); Tue, 16 Nov 2021 23:19:25 -0500 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH21HAV030389 for ; Wed, 17 Nov 2021 04:16:27 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-2021-07-09; bh=MOOc+/6a4wdQnjFSXi7P0EMO4POCUWqZ4kXnAdizGy8=; b=1HamDhziIonnSBYTjKjYp0UKBIKB4jqlh4rbNOfmuK2ZUYzL0MxuIiqy+8a5U+6xdkWQ 0BiMY+Np9SoqOddUMuzgbE5GGJAy8M3Tl+WByXifXHhUrw7ZX6EOuE2e5PNYZom5IULw uD+qR3YXzA7h6hwjhnEtQ7wfuDMrB2b+el7C1mdoi5nMTJYp8mZbfDzqMsvUWrbGaMEX 5aJF9MWOY0rjMp81nfsYTx5NFVh9VIeoUAMkm1pkfUYA/KXxl1OTMiK1wECdLj9bWiG9 xlMofqh9KTpr0vvtpYSy8QbI/Oi3j+OIAPm1XHAqUQDk4PPopeb9CsHL/ew0K1bvlJG8 wg== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbhmnwx86-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:27 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4Aehg037362 for ; Wed, 17 Nov 2021 04:16:26 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2176.outbound.protection.outlook.com [104.47.58.176]) by aserp3020.oracle.com with ESMTP id 3ca566dagu-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WB8AZTVW6AxrMIVTRdWGlr8tWh4hIBPekz61tbQy8sg3ipGWHTYnROhV6XRoEpf1DmILFoP8yndrieXl9p8mBiYgUfRosqgApMmV+tlpRBkdwPSxQ5smo32DnYf51RPX5Pv9Tncd4YAaHCtiLDdvk1cWUFSnWQL+7qK2+WK4TQejtamhZxY6c9XuJcPGJDllTciRkdYozmuvxhxU6mA25GOvSaLqW3RKNdpJVubu/VpW8hZe9B+COk2FUGxgT5zSWJKO8CUi/OGT0fR6uSqBKPMQIomAslNl2HHLfu4h2kLCCsizy/IxSEzaXAk0JSlSyVaCgntwqIYxJHboml7HoA== 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=MOOc+/6a4wdQnjFSXi7P0EMO4POCUWqZ4kXnAdizGy8=; b=P9SuG6u+eoB+1S6T1F5Oh/0Ra9p8YDv7cS3CRTH8zdD2fDOAMVaKscvjjqbRAydUvcGATHUAqmU77AxmtJfGypnbrvSAjrAYSwFyvASYx3X9eu3ktvAfdKr9rCHiZrLGSlb/ChiSjt3yM+9S2mqX0bwjmDWGRdCS0qkLfpUjSboPra4IxOtoAKVn8nkvpwf4x7JOGbu8CuvJ8l2Afzhg8Z8k1UgoB5pUZ4VP/gZ8g1MPU74GCqU+2cggj8dGYKVrjeI0jJkcfgRbpFi54lQLS9GAn4k35tXvEMRZqwA6PoCJskFLYs9zJkxgRJWT/9ybqqLZlZPX6o+nvUjrk4flJA== 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=MOOc+/6a4wdQnjFSXi7P0EMO4POCUWqZ4kXnAdizGy8=; b=zjMq8hZ5kyUFD9KTysB+UCVhtwRMxdSm3IDZrscWEAOIhqFa4hg452GtM0CxdIUlrSLMV754+jJADvOcoEhTYnRbScJdvXDaNg2YIq8P9y4g7BXeCKoxWMPIu/Fmm9OBR1t3fWDSjkDLQRTampZL9lmOrmM/emFJyAwGgpGqY4U= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by SJ0PR10MB4446.namprd10.prod.outlook.com (2603:10b6:a03:2d9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov 2021 04:16:24 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:24 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 13/14] xfsprogs: Add helper function xfs_attr_leaf_addname Date: Tue, 16 Nov 2021 21:16:12 -0700 Message-Id: <20211117041613.3050252-14-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:23 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9f45288e-f671-4e1d-bc65-08d9a981045b X-MS-TrafficTypeDiagnostic: SJ0PR10MB4446: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jVRJ2vQT0d9vyH08pEznP/N/z7RGUZhEkbc9zf0i4BxkgoyoVnlisJW6IVqj0TF81i99xLdYLAy8ldz1nds7+l0o/WpUPAsjGIYWCV2KAuox/0N2Yozim6h9dsOA3HXE2jqlM1jYviKu+BaGe4sye1EzQ3A/zuuSi817lHhzbKUFOCkn9BkhB0XzozEKywGcfZg/HI5h3aFeVKZeNyDlD46wU8wV9cJ8Wk4osCi+t16sGIrikfhafH7okOcOVzm8y84E4hyBiIXkxtCOxNMDH55AgkTCNnXcGLQ11uTLnCJ8wahovAh27ZoaVi3PR0/OVKpsjY2eqATIj6rlPh95ANvi0ImqeTe7e/T6KWnzUbc6dTxO+laVkLhw+jlQyOka/ixkXuJvntt7epog8ul8LaBWezM/26rA7jYjmmpVAZFKHPrn70t8OyCh1xJS1jiUB/7hB9JxSn8i6AnKGkX3J4MeP3gYMgt5V5T8IxQHlYPWSVwmrNKwxuel+ZcSmDjiX3qN+bDCMbZUd/x+SYSO02tGRukOHQD2ztXxQcooxbTJ/1iEsR8Y03qQ9lYUPoeS/tcx/iczC+BwLgGmx/U7IrVmPVCLJXDlG5O34kBU6zO2QN+iwmo84X+3dIwEBp/uO4Vs8p9PmLy+h1/vtNuECZKsi5GlzoBlEpA+DmxAuver2dJgxFZi9f+epkaXnQ9k X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(2906002)(956004)(2616005)(83380400001)(38350700002)(38100700002)(26005)(52116002)(5660300002)(316002)(6486002)(6512007)(44832011)(6666004)(8676002)(8936002)(1076003)(66946007)(66476007)(66556008)(6916009)(186003)(508600001)(86362001)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: mTJZfQVePuN7nI+9UchmXnXNNI5VrPPRjb70G2PhVhd6xujGzM/H54q/qKmHzSkgAQeLoksbHm0Ht21yCuTtPs9Pqo0PEv11sz+Xs/YoYeM1XaPMYNmPd6kjNZSR8gJ6WT3vjTvnytCyWCe6y6gNqQ2Wmzl8KOODO4rohh0V/zw2AC5TXT6iziXZSvFxfzHor5JlJHl1IuDXEuzjMaTyngGnDbe7HjZdz1B+Oe/j0UbwVleohASzmxdhmyBnksBiC09lgiOPAqb6AI8ITh3e7ET4o70E8DQaJCBa+Cn0D4u35nhEmTu1J/nO66sy7rlmTZ5L0eqPaVTBm8g8mhjbOSkn41Pmga6Ood+pcvZ1ZszQsoQsWN7ttrkCmk+B5xbgGY0ltwHNbDxsahFaRiqM2qx3vi6KKTDeQY/CYS3RRJ0Gg7LhfXQKGQBoO/vR+n0BcojNEuszN5peObtK+WiMPYH0ByLC3oESNaxrGjtqpbSishBAZQeJfDPv3+u+JIThVzEj+EGMN/7a74Ol0hGfHk5jM7wNziU8wGI/G6u6rip7xo9AwPtXIagBlceCuCJGmUw+Dzn4UzgTbdXBoJGFQHiuEnXM2N5BHgIH2rSQdq0XLe23dbEqDJGRmxTwZfvjhwmi/BbYTtY5qsKlxH5n1dnomxgNigd1L2fSUen8+5W08gEZ1JwdeBsQHi7Yl97JcsyeSLhj0AfYioc1RBLdxf7FqsFvZhWK6oc/YLI0OduFNvKsEtN1YFCHAjwRiHA2HQ1zB02j9CkiSvDnNzbSNjWTgm1j+XvZFVzYbn4JytxVnJkp6GqCXrUiBxJFt8oTcyq8Zr3y/SwyEtps8V7Yv9+C/LhfaGJ8mhxwr+hJRv9cWAKF9i45K17dLHBvgNXIP9VMmJ7/Q4zTu8LTWBBnHchn0+b6xAKhLJub8mtJBjW+ANHKrN+notiG7uLjhPM6tHrTK140kGZBfTY7xACiComfdCPKW+O+yVL3wbwSErtQrYbyQ1zLLL5DvHphJjb5W5H378Yv5MeSnHmh52Sas+Tm3xoqALIEi91cA6In0nHHx1Eoq95bKzPGCy1tpQLduNWPyfdfGAQt3Ia/2Yeh1YyHtUSLry+BzhoUjX3miauW7DCAeX37pYu28QIH5jC3r4Tj/bxcw3J/GeZ/zm1yQw6BJ/buWMpDWDmAa4wmrAISyHVST0aafpSeePlpgh0V+OmV0c50iUHfEDgyZqnIIh9YGghtxP7nDsB3xY6H/682gIppHvMaJoQPkcny6z38W6PxmoTR9OUIp5DKUj3E0M53lVpPsYngGjTvCH/Rr2eYYK5TTYLlq3i+5ollEdPcI76rVTOtPKtUVL8MPD4F33BVP2wF59yUiWg0BIWHxFrnBPMzcVNNtnuFnJQ1fVszpf1PelgiEjzLeg26xCwRmz7z5qhemNr614yJJ6JgcKcpRjmaCA+PasKj3Yh4L0tQFtADeOoUY0BNZD8AsB12w6xbRoymI7KboTPApeWqA6JBPBoU8Lcx0XzEGH+jRNQ33ZJVodF0m16XxdEex1m3togd/sJJxFgoglowhZKLBwFAtXhtSal7KLKLW8Ci4r4r9ThbPpYperbOyrbT/zvI0qeDA0EZU9bWKZQ7TXaxXX2doSvH8xebYQcFpAdbL7LoWg5URPBwacsc76vjDJI1dg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f45288e-f671-4e1d-bc65-08d9a981045b X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:23.9866 (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: HwuDWny+ttOkBypxMLULNo1l1jF3nerGvHZSIJMI4CvKh0Xuyp2dvTcRUaPngfv1CwHPHHMN9mRvbJRWjvRb1PjKQ5xB9vI27+OPVJYnE8M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4446 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-ORIG-GUID: 5pUegwW9GDKeeGqWAjuhy8L92PmjXVYJ X-Proofpoint-GUID: 5pUegwW9GDKeeGqWAjuhy8L92PmjXVYJ Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: 6d9d518192a3f633fce0821601847966280857f7 This patch adds a helper function xfs_attr_leaf_addname. While this does help to break down xfs_attr_set_iter, it does also hoist out some of the state management. This patch has been moved to the end of the clean up series for further discussion. Suggested-by: Darrick J. Wong Signed-off-by: Allison Henderson Reviewed-by: Darrick J. Wong Reviewed-by: Chandan Babu R --- include/xfs_trace.h | 1 + libxfs/xfs_attr.c | 110 ++++++++++++++++++++++++-------------------- 2 files changed, 61 insertions(+), 50 deletions(-) diff --git a/include/xfs_trace.h b/include/xfs_trace.h index 227193a1e8fa..e920e4b0db8e 100644 --- a/include/xfs_trace.h +++ b/include/xfs_trace.h @@ -316,6 +316,7 @@ #define trace_xfs_attr_sf_addname_return(a,b) ((void) 0) #define trace_xfs_attr_set_iter_return(a,b) ((void) 0) +#define trace_xfs_attr_leaf_addname_return(a,b) ((void) 0) #define trace_xfs_attr_node_addname_return(a,b) ((void) 0) #define trace_xfs_attr_remove_iter_return(a,b) ((void) 0) #define trace_xfs_attr_rmtval_remove_return(a,b) ((void) 0) diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index c5b0abb5df20..0f90d5897c8d 100644 --- a/libxfs/xfs_attr.c +++ b/libxfs/xfs_attr.c @@ -281,6 +281,65 @@ xfs_attr_sf_addname( return -EAGAIN; } +STATIC int +xfs_attr_leaf_addname( + struct xfs_attr_item *attr) +{ + struct xfs_da_args *args = attr->xattri_da_args; + struct xfs_inode *dp = args->dp; + int error; + + if (xfs_attr_is_leaf(dp)) { + error = xfs_attr_leaf_try_add(args, attr->xattri_leaf_bp); + if (error == -ENOSPC) { + error = xfs_attr3_leaf_to_node(args); + if (error) + return error; + + /* + * Finish any deferred work items and roll the + * transaction once more. The goal here is to call + * node_addname with the inode and transaction in the + * same state (inode locked and joined, transaction + * clean) no matter how we got to this step. + * + * At this point, we are still in XFS_DAS_UNINIT, but + * when we come back, we'll be a node, so we'll fall + * down into the node handling code below + */ + trace_xfs_attr_set_iter_return( + attr->xattri_dela_state, args->dp); + return -EAGAIN; + } + + if (error) + return error; + + attr->xattri_dela_state = XFS_DAS_FOUND_LBLK; + } else { + error = xfs_attr_node_addname_find_attr(attr); + if (error) + return error; + + error = xfs_attr_node_addname(attr); + if (error) + return error; + + /* + * If addname was successful, and we dont need to alloc or + * remove anymore blks, we're done. + */ + if (!args->rmtblkno && + !(args->op_flags & XFS_DA_OP_RENAME)) + return 0; + + attr->xattri_dela_state = XFS_DAS_FOUND_NBLK; + } + + trace_xfs_attr_leaf_addname_return(attr->xattri_dela_state, args->dp); + return -EAGAIN; +} + /* * Set the attribute specified in @args. * This routine is meant to function as a delayed operation, and may return @@ -316,57 +375,8 @@ xfs_attr_set_iter( attr->xattri_leaf_bp = NULL; } - if (xfs_attr_is_leaf(dp)) { - error = xfs_attr_leaf_try_add(args, - attr->xattri_leaf_bp); - if (error == -ENOSPC) { - error = xfs_attr3_leaf_to_node(args); - if (error) - return error; - - /* - * Finish any deferred work items and roll the - * transaction once more. The goal here is to - * call node_addname with the inode and - * transaction in the same state (inode locked - * and joined, transaction clean) no matter how - * we got to this step. - * - * At this point, we are still in - * XFS_DAS_UNINIT, but when we come back, we'll - * be a node, so we'll fall down into the node - * handling code below - */ - trace_xfs_attr_set_iter_return( - attr->xattri_dela_state, args->dp); - return -EAGAIN; - } else if (error) { - return error; - } - - attr->xattri_dela_state = XFS_DAS_FOUND_LBLK; - } else { - error = xfs_attr_node_addname_find_attr(attr); - if (error) - return error; + return xfs_attr_leaf_addname(attr); - error = xfs_attr_node_addname(attr); - if (error) - return error; - - /* - * If addname was successful, and we dont need to alloc - * or remove anymore blks, we're done. - */ - if (!args->rmtblkno && - !(args->op_flags & XFS_DA_OP_RENAME)) - return 0; - - attr->xattri_dela_state = XFS_DAS_FOUND_NBLK; - } - trace_xfs_attr_set_iter_return(attr->xattri_dela_state, - args->dp); - return -EAGAIN; case XFS_DAS_FOUND_LBLK: /* * If there was an out-of-line value, allocate the blocks we From patchwork Wed Nov 17 04:16:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12623671 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9768BC433FE for ; Wed, 17 Nov 2021 04:16:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 79B3261B6F for ; Wed, 17 Nov 2021 04:16:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233023AbhKQETc (ORCPT ); Tue, 16 Nov 2021 23:19:32 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:37678 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233035AbhKQET0 (ORCPT ); Tue, 16 Nov 2021 23:19:26 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AH253cB003491 for ; Wed, 17 Nov 2021 04:16:28 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-2021-07-09; bh=GR4XCYXvLgbL1fxPmTvIzDj3iT8+SxOiNbFMIA5Wbo0=; b=EUK6KHTBVYLb1XnbZbbo7ov4PnFEwy8lS3/xe+QLBW7aEvxHui6kpVbhEQUIT+JH37Dj 7QRWSVrrTX7kpLAK1x4Q5DlCU49lU9xV2SDxWLuLKuJbE5nZAgJS0kM5PaeWIkckA5Jj 8vhYTLk1dq8kSu1tuM6PqGMAD+lQfX/iCdEipk0jCsixSFXe0bSoZDhzJT7LTNGMw5ig YsnmUucNrjP2ziM2e22KkefGCe9X5arvYdsFhXoFsvnYL6YRf9nQv01KXdX0QR+PytCs hY8ptTl8ePCvesDaaR+y4qStjMIB8Ev8ddU47M5KrsH3G20DLq7LfBC8uhlWhvJymObD PA== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbhv5dru8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:27 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AH4Aehh037362 for ; Wed, 17 Nov 2021 04:16:26 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2176.outbound.protection.outlook.com [104.47.58.176]) by aserp3020.oracle.com with ESMTP id 3ca566dagu-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 17 Nov 2021 04:16:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=la0xolBa5z8Us1yMsMliQku35DHNZ8nifOiMjcEBYNDRBaybvLYJTwffBtTuhCcIynqGtgs19XzPYn4BHyjMDdDVy/mbMWNW9T8KMEzheGOjgNt32jKV0jLXAiu+ihCsyqBEJUpP2yqw3IOcmY8mp5oFAma1eAeGBPPHsxVFCsQfFhTU/LDFc+/i5A+vhpMO36JD9+WLJyKb4oixHzNLkqV6vwwpaia8fwltpQXK0E0qLHz4hT9Ash/gKtX6eavT570yPQxqZURA953hc0rNMGUGik4cTqtUz/H06n7olEGeRx2uLF4IrCowusqxQU51ep7XtP5I1h22sm7CN4ldEQ== 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=GR4XCYXvLgbL1fxPmTvIzDj3iT8+SxOiNbFMIA5Wbo0=; b=DxtgLBHiomxSBCY5pAt+xE4/+JbJvUylnbALTZ7voAOHH7oFMW0yjH+IMRkZD9w5l3t4qWQ5irehx8dW5vo2dIhRmfVMetvicCM8vCMRi39Y4oki/oGQeMKRmx5LjkRaJGj+zbm/Unl/oIoaYbe9fBbwNkHt55hSrrJfvBrPSVlO97wptJWBEfUqGgRxLSM4psyABSLoAOG19dOou7g8fISRzUkuaWymd1y9+oSm12n6TMINwvgmzLWhyQAMKC2N72Z3Xxgr+MWQuvF6onbDTzWvIiEO3s8a/OTuTH4J/kt1jKn02JhVdDSWIVw55g4TyykOfXPxutDFM1u83TcbjQ== 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=GR4XCYXvLgbL1fxPmTvIzDj3iT8+SxOiNbFMIA5Wbo0=; b=ttbpUNkRaUiXKj3Gc5XRVKzkh9yJ3RVEESJu5vUUqjw+0PwpJJFrRuf//hFHwk7mx5uDFy/forLjsggQTt9VsPRIRFjMIIjMjSDovkSNkeLjrgBQTEsLFMljZicYIXzcEpwsXhCZU0QLD7OXoKHPPnG5hVmNKiQKgtpjkJpKPC0= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by SJ0PR10MB4446.namprd10.prod.outlook.com (2603:10b6:a03:2d9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov 2021 04:16:24 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::fdae:8a2c:bee4:9bb2%9]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021 04:16:24 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v25 14/14] xfsprogs: Add log item printing for ATTRI and ATTRD Date: Tue, 16 Nov 2021 21:16:13 -0700 Message-Id: <20211117041613.3050252-15-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211117041613.3050252-1-allison.henderson@oracle.com> References: <20211117041613.3050252-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 Received: from localhost.localdomain (67.1.243.157) by BY3PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:217::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 04:16:24 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dcd6377d-ca3e-4a87-7088-08d9a981048b X-MS-TrafficTypeDiagnostic: SJ0PR10MB4446: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:311; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SG3uMHt6CJqDjmqtn3cDFuoSKHrGZqjOLNqHXq4b+zJ82aSKvX0djUkOixKozUY2wcOxc9oA8Q9Fihb0M86PSkwQi9orWSN9kIFKacirm/ghmXyszv6JFqfHTvhnEVSBJwB1blN5S8KN4Qtp3fJGa2AEFIIn9FQu5OCOZdQNcxct/tSrZne42HkgASusClBkX6SlABwmTmET35hOdSy66Z8pnb5/Mv8XltdmTZl9k3wiUfe1jweAmM2Rkxs4Tr3p8gzxsKNtDxpbcHj+fLQQTyWURISwaRm9ajul7lC6LY3Bd8i0Ut4JkbM1QPfOW35PjPqneFltQkNiP/F/UfREirp99F/djAFA48jC135kixDKww2LX3ThnbV6aKRR6DNyUuoOiNP3xkWgT+8rZDpeToqVT0+pj/6n2qR37sFdzoeyvSkKq/XTorZvJRz5Sga5UEbFjdy77pIfkMMEBNOw2cxn8krAWiMJksjMiO6yeIw9q6WwAVyHkpa+amcaCGEbCtCabB9paubYntTPqePab0017ypNWEjNH9UD+veXg6H6Nq5T6GQOgLw5We+lXZGICH49Dmp6xNKQQ5MYyGWQs2yZ+eM0H46I5T5r+lChfl1aEA5eiAYvkrMifZfWRAPA2FrLW+dAZfzo4BnhXgrqgPpO3SIHEEfFzO7iAgtgsq+suuSX8LWjwTL0KITRA2IDU26EqNxltzf8T0zf/EIyEA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(2906002)(956004)(2616005)(83380400001)(38350700002)(38100700002)(26005)(52116002)(5660300002)(316002)(6486002)(6512007)(44832011)(6666004)(8676002)(8936002)(1076003)(66946007)(66476007)(66556008)(6916009)(186003)(508600001)(86362001)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MJkefEkVq1vxyc/yiHGlyuv32pNuR4PbxT7HMbcF48TmoH3GJkAg6shhhMe/JeaTCzbb/wtcuR87drjAG6fsx05YXrJ2FXCSykGFY4BVW/Tibw/ATJ/Skd8McTYfjOQycMGBkUi2sYUwx4Io0V4j7IrNKAy+OF2/zhzm0igJXGDTMhvwhONEDkSlVaUR9+cjRW8UuwvMlpmNLu/t0tyAwfJnCsjXgyNgVzMygQ9q0gC9OBScB9sovGVsFjGoAnGf2ilJ5Z+VTWOBaxyT/40Sw+K6n+FsuiSRlq56BrgH0QRH2ehhR8HdEqFMp8/80MwPskjK+yx+Y/hlZQxDs6JimhjRIQ8lRv6VCUNA7b8BkoN7rsyF9qeFr5NCEpfoMar28TOE6hl9ZAtkvD+Na5o8QMjrvFnjy0/8AmJP8sZNTzQVcuVbiEq8zYsRWIR0NrTdelzgl5FruVTsZD5IhrhCFMMcU19VE5QY5+hVr+bNALv9n8kgPNZtTWEFTa9yMSAi9cgwf/fmixGsBPSGV/FjALTtUqev8kobnIRclTVSf3CYwAI+qft1ucuac0nz77itoeoVnH88xX8LvjAPN/u5ijT1b3AfOn+KkQzoyPcCmpiGJ62275TQ8ZvbA9V35FCTLpx/kr8nxO0hqjSE1pPaG7lk/n6hvoHjzafD69AzCxApLbs6ASopISTPPEAlyoX3MMSTcJL+iREZxpH7ic3d2M7XGKY1N88c5apE2o+yIdaQFsLq8D3byNgtKo1u5tf/AUtYWEIJdU2Ei5z+McVrlssNaJh48Ma4o03cA4SfKSxHDiHZcX7ow3QYjr/1jTjpwMbsroXJSCbZ9jek4LuCKSS2/Qw/1S1RXmFMLGyP4dRHMRxIOVgFmbLIAPhXqeJvRRxzMcyqDntXtqYJbBp+bBdmxJ8MJAWq6kJfZHxNE1m9KmYiuloAs0nf5ZoChqoLgLOg14Ut4hNNieIefyG6UIIN+9qpKWsnpNS0m5WcCIsnDCMZTtn1x53ycxXGUg5G7Px9mmnUjwBMx5yvqhTNr1AmfhVkmzZH7dkTSOj6KpeeE64dNjaikMCUtZdNTnPNUDdi3ziXYRsaJFmGXA+PrDyoa4llKzb3INEgpc9ebk0ldxymiA7fz00p3scIgIR59LS3Mf2CgSLqnduJyqr89r3Fgn97dYH5NgJsLuU6Z6li+tD3NahyvXB6EP5xJ9ebagecYhRFIu5BGVwNCl2cI2lDHa2I0vOPmAlo5hvg/MY/eIG5qHbGE1m8YPSsfiNQCU3DQY6XfQVPBBNRkXBEzNJxfDM7Ti5PFe5pS9MWtEfmR1mn4IWmfSgKyEYnX8OpAK26AUNL9TZhCQL0vUip3OXyL2WNVyrxP6Sw4SkCWQBaFFlzkyYeCCfnc2LrVfK527z88VfCZvzqmCiT/WFpcvIWZL4yuKRlgDl4vP/NddQomwfHd1FRFxBN6Gm0oOjQVh2TvQ/5Rwm6jFWole9sEFcmTRMhRZHyBH8OyQ+RKp3QTMTgtp/IncZkiUl/Km3yAlaazoGnbKC9PPoXN/rW4MEUKSIdbn/wApVQdRVeq8BbXblvqGUTEmxsfZvHX/j7DY5KR/lYpVBGr0ZDG0F7WQRm/n0lnm+JhKSDpj/nYTcYykHHgPxxtrYGxfZUexXE6owGMOmittgKqorP29eXhQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: dcd6377d-ca3e-4a87-7088-08d9a981048b X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 04:16:24.2654 (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: QECuBe5yiKZkRA4UAto9tBruAdLX78r6rVVuedidtlpyhVwwv9FI/ti3iZFzcjcWLAO0T6BVFy//E4athfG18auGY98xcQ7PFsl/+IAiFDo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4446 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111170019 X-Proofpoint-ORIG-GUID: 4AlXXZMyJqkRkNpnRRGMe_MQZrTCnD7t X-Proofpoint-GUID: 4AlXXZMyJqkRkNpnRRGMe_MQZrTCnD7t Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This patch implements a new set of log printing functions to print the ATTRI and ATTRD items and vectors in the log. These will be used during log dump and log recover operations. RFC: Though most attributes are strings, the attribute operations accept any binary payload, so we cannot assume them printable. This was done intentionally in preparation for parent pointers. And until parent pointers get here, attributes have no discernible format. So the print routines are just a simple hex dump for now. It's not pretty, but works for now. Signed-off-by: Allison Henderson --- logprint/log_misc.c | 48 +++++++++- logprint/log_print_all.c | 12 +++ logprint/log_redo.c | 197 +++++++++++++++++++++++++++++++++++++++ logprint/logprint.h | 12 +++ 4 files changed, 268 insertions(+), 1 deletion(-) diff --git a/logprint/log_misc.c b/logprint/log_misc.c index 35e926a3baec..d8c60388375b 100644 --- a/logprint/log_misc.c +++ b/logprint/log_misc.c @@ -54,11 +54,46 @@ print_stars(void) "***********************************\n"); } /* print_stars */ +void +print_hex_dump(char *ptr, int len) { + int i = 0; + + for (i = 0; i < len; i++) { + if (i % 16 == 0) + printf("%08x ", i); + + printf("%02x", ptr[i]); + + if ((i+1)%16 == 0) + printf("\n"); + else if ((i+1)%2 == 0) + printf(" "); + } + printf("\n"); +} + +bool +is_printable(char *ptr, int len) { + int i = 0; + + for (i = 0; i < len; i++) + if (!isprint(ptr[i]) ) + return false; + return true; +} + +void print_or_dump(char *ptr, int len) { + if (is_printable(ptr, len)) + printf("%.*s\n", len, ptr); + else + print_hex_dump(ptr, len); +} + /* * Given a pointer to a data segment, print out the data as if it were * a log operation header. */ -static void +void xlog_print_op_header(xlog_op_header_t *op_head, int i, char **ptr) @@ -961,6 +996,17 @@ xlog_print_record( be32_to_cpu(op_head->oh_len)); break; } + case XFS_LI_ATTRI: { + skip = xlog_print_trans_attri(&ptr, + be32_to_cpu(op_head->oh_len), + &i); + break; + } + case XFS_LI_ATTRD: { + skip = xlog_print_trans_attrd(&ptr, + be32_to_cpu(op_head->oh_len)); + break; + } case XFS_LI_RUI: { skip = xlog_print_trans_rui(&ptr, be32_to_cpu(op_head->oh_len), diff --git a/logprint/log_print_all.c b/logprint/log_print_all.c index c9c453f6086d..89cb6492d027 100644 --- a/logprint/log_print_all.c +++ b/logprint/log_print_all.c @@ -404,6 +404,12 @@ xlog_recover_print_logitem( case XFS_LI_EFI: xlog_recover_print_efi(item); break; + case XFS_LI_ATTRD: + xlog_recover_print_attrd(item); + break; + case XFS_LI_ATTRI: + xlog_recover_print_attri(item); + break; case XFS_LI_RUD: xlog_recover_print_rud(item); break; @@ -456,6 +462,12 @@ xlog_recover_print_item( case XFS_LI_EFI: printf("EFI"); break; + case XFS_LI_ATTRD: + printf("ATTRD"); + break; + case XFS_LI_ATTRI: + printf("ATTRI"); + break; case XFS_LI_RUD: printf("RUD"); break; diff --git a/logprint/log_redo.c b/logprint/log_redo.c index 297e203d0976..502345d1a842 100644 --- a/logprint/log_redo.c +++ b/logprint/log_redo.c @@ -653,3 +653,200 @@ xlog_recover_print_bud( f = item->ri_buf[0].i_addr; xlog_print_trans_bud(&f, sizeof(struct xfs_bud_log_format)); } + +/* Attr Items */ + +static int +xfs_attri_copy_log_format( + char *buf, + uint len, + struct xfs_attri_log_format *dst_attri_fmt) +{ + uint dst_len = sizeof(struct xfs_attri_log_format); + + if (len == dst_len) { + memcpy((char *)dst_attri_fmt, buf, len); + return 0; + } + + fprintf(stderr, _("%s: bad size of attri format: %u; expected %u\n"), + progname, len, dst_len); + return 1; +} + +int +xlog_print_trans_attri( + char **ptr, + uint src_len, + int *i) +{ + struct xfs_attri_log_format *src_f = NULL; + xlog_op_header_t *head = NULL; + uint dst_len; + int error = 0; + + dst_len = sizeof(struct xfs_attri_log_format); + if (src_len != dst_len) { + fprintf(stderr, _("%s: bad size of attri format: %u; expected %u\n"), + progname, src_len, dst_len); + return 1; + } + + /* + * memmove to ensure 8-byte alignment for the long longs in + * xfs_attri_log_format_t structure + */ + src_f = malloc(src_len); + if (!src_f) { + fprintf(stderr, _("%s: xlog_print_trans_attri: malloc failed\n"), + progname); + exit(1); + } + memmove((char*)src_f, *ptr, src_len); + *ptr += src_len; + + printf(_("ATTRI: #regs: %d name_len: %d, value_len: %d id: 0x%llx\n"), + src_f->alfi_size, src_f->alfi_name_len, src_f->alfi_value_len, + (unsigned long long)src_f->alfi_id); + + if (src_f->alfi_name_len > 0) { + printf(_("\n")); + (*i)++; + head = (xlog_op_header_t *)*ptr; + xlog_print_op_header(head, *i, ptr); + error = xlog_print_trans_attri_name(ptr, be32_to_cpu(head->oh_len)); + if (error) + goto error; + } + + if (src_f->alfi_value_len > 0) { + printf(_("\n")); + (*i)++; + head = (xlog_op_header_t *)*ptr; + xlog_print_op_header(head, *i, ptr); + error = xlog_print_trans_attri_value(ptr, be32_to_cpu(head->oh_len), + src_f->alfi_value_len); + } +error: + free(src_f); + + return error; +} /* xlog_print_trans_attri */ + +int +xlog_print_trans_attri_name( + char **ptr, + uint src_len) +{ + printf(_("ATTRI: name len:%u\n"), src_len); + print_or_dump(*ptr, src_len); + + *ptr += src_len; + + return 0; +} /* xlog_print_trans_attri */ + +int +xlog_print_trans_attri_value( + char **ptr, + uint src_len, + int value_len) +{ + int len = value_len; + + if (len > MAX_ATTR_VAL_PRINT) + len = MAX_ATTR_VAL_PRINT; + + printf(_("ATTRI: value len:%u\n"), value_len); + print_or_dump(*ptr, len); + + *ptr += src_len; + + return 0; +} /* xlog_print_trans_attri_value */ + +void +xlog_recover_print_attri( + struct xlog_recover_item *item) +{ + struct xfs_attri_log_format *f, *src_f = NULL; + uint src_len, dst_len; + + int region = 0; + + src_f = (struct xfs_attri_log_format *)item->ri_buf[0].i_addr; + src_len = item->ri_buf[region].i_len; + + /* + * An xfs_attri_log_format structure contains a attribute name and + * variable length value as the last field. + */ + dst_len = sizeof(struct xfs_attri_log_format); + + if ((f = ((struct xfs_attri_log_format *)malloc(dst_len))) == NULL) { + fprintf(stderr, _("%s: xlog_recover_print_attri: malloc failed\n"), + progname); + exit(1); + } + if (xfs_attri_copy_log_format((char*)src_f, src_len, f)) + goto out; + + printf(_("ATTRI: #regs: %d name_len: %d, value_len: %d id: 0x%llx\n"), + f->alfi_size, f->alfi_name_len, f->alfi_value_len, (unsigned long long)f->alfi_id); + + if (f->alfi_name_len > 0) { + region++; + printf(_("ATTRI: name len:%u\n"), f->alfi_name_len); + print_or_dump((char *)item->ri_buf[region].i_addr, + f->alfi_name_len); + } + + if (f->alfi_value_len > 0) { + int len = f->alfi_value_len; + + if (len > MAX_ATTR_VAL_PRINT) + len = MAX_ATTR_VAL_PRINT; + + region++; + printf(_("ATTRI: value len:%u\n"), f->alfi_value_len); + print_or_dump((char *)item->ri_buf[region].i_addr, len); + } + +out: + free(f); + +} + +int +xlog_print_trans_attrd(char **ptr, uint len) +{ + struct xfs_attrd_log_format *f; + struct xfs_attrd_log_format lbuf; + uint core_size = sizeof(struct xfs_attrd_log_format); + + memcpy(&lbuf, *ptr, MIN(core_size, len)); + f = &lbuf; + *ptr += len; + if (len >= core_size) { + printf(_("ATTRD: #regs: %d id: 0x%llx\n"), + f->alfd_size, + (unsigned long long)f->alfd_alf_id); + return 0; + } else { + printf(_("ATTRD: Not enough data to decode further\n")); + return 1; + } +} /* xlog_print_trans_attrd */ + +void +xlog_recover_print_attrd( + struct xlog_recover_item *item) +{ + struct xfs_attrd_log_format *f; + + f = (struct xfs_attrd_log_format *)item->ri_buf[0].i_addr; + + printf(_(" ATTRD: #regs: %d id: 0x%llx\n"), + f->alfd_size, + (unsigned long long)f->alfd_alf_id); +} diff --git a/logprint/logprint.h b/logprint/logprint.h index 38a7d3fa80a9..b4479c240d94 100644 --- a/logprint/logprint.h +++ b/logprint/logprint.h @@ -29,6 +29,9 @@ extern void xfs_log_print_trans(struct xlog *, int); extern void print_xlog_record_line(void); extern void print_xlog_op_line(void); extern void print_stars(void); +extern void print_hex_dump(char* ptr, int len); +extern bool is_printable(char* ptr, int len); +extern void print_or_dump(char* ptr, int len); extern struct xfs_inode_log_format * xfs_inode_item_format_convert(char *, uint, struct xfs_inode_log_format *); @@ -53,4 +56,13 @@ extern void xlog_recover_print_bui(struct xlog_recover_item *item); extern int xlog_print_trans_bud(char **ptr, uint len); extern void xlog_recover_print_bud(struct xlog_recover_item *item); +#define MAX_ATTR_VAL_PRINT 128 + +extern int xlog_print_trans_attri(char **ptr, uint src_len, int *i); +extern int xlog_print_trans_attri_name(char **ptr, uint src_len); +extern int xlog_print_trans_attri_value(char **ptr, uint src_len, int value_len); +extern void xlog_recover_print_attri(struct xlog_recover_item *item); +extern int xlog_print_trans_attrd(char **ptr, uint len); +extern void xlog_recover_print_attrd(struct xlog_recover_item *item); +extern void xlog_print_op_header(xlog_op_header_t *op_head, int i, char **ptr); #endif /* LOGPRINT_H */