From patchwork Fri May 20 19:00:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857361 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 878F3C433FE for ; Fri, 20 May 2022 19:00:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237963AbiETTAp (ORCPT ); Fri, 20 May 2022 15:00:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49052 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233482AbiETTAo (ORCPT ); Fri, 20 May 2022 15:00:44 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 412D5D1 for ; Fri, 20 May 2022 12:00:43 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KIdUuG010259 for ; Fri, 20 May 2022 19:00:42 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=A9lItAokeprONJDF4NbviTVay4G3IVc9IYH3ljFIs5k=; b=mKY8kqld5lxE/tdUzlYg2+BizBdEVmzV9KwdF57UVVw3T5ezwz0gYtmQdAZ2e3HmfRMY ztkrWAuH8gNAQgwo4QyChrsBKLcRsGusQiJ1G6Yi62P1y7QNxbtngd62cXQ13MrwKKQK 9DB4A3jrPXgo/cz1B4+jl7Xv7CBYBv6KCTBPeWGhVK3dfrH7wIuZBwiNRwlbk9bxPLZm 4VFOYtc9NFDD7OkoJImtf+JpDkzdYgfs+4Eu59+9OfCSboBZTdEPU33r8gxOTY8J34/j LaK6rkzDS6cb+A7PfTSnlhTOOYC10w/MxaCaS1ZzWtiC1IO2ilfo2wOHSt1EMh+oKNLi OQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g241sfvp1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:41 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KInuZN009768 for ; Fri, 20 May 2022 19:00:40 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2041.outbound.protection.outlook.com [104.47.56.41]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6rkwr-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=STOC4TDKsgGSB+98+drjt7EIDVs76S8pZM3+i0eXJlce1cwle7hst31Ci28uuPK8hdyhMOtNW/qXnREvbbsBCU++sCjWHQBWI+YBUkBl4iFkDhroOjG5CBmEaqoUxGwAirIwmTH6CgKaw/d1n0Nc5n41hkuVaQVSy8RE8zKN2vVo4+1JjLjnpgQKT+VmAeYh4iEX37QF6YF8eYTG3gEXxh6VeBxr45M1qqJtKALKENe4kzQDGYP0TZ3pyIDbUNWVZQD4MZSo8bhFh4DxBudsG9LGIKB12g+cC5+fXtSy4QGQmbRotCBAk213Ui0TqcGFBJsbU7a8RMEeQUUiuTA7BA== 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=A9lItAokeprONJDF4NbviTVay4G3IVc9IYH3ljFIs5k=; b=PlXZ2oWg+RiuGUzdYWYL46TW2VUeYySAHqLoyTNUEzgggTHPr4tweclYhOYX4ZfDRMonpi7M0nnbcf5JwJ4IXpfI8gkd8dN18D7ZjAkf58ef74hJyiNyIvG+XcwgkFXxx9LoT0V5pG5Se6q/+rZtVFeJwCyMC/PU8xtpeDyq470YJg7wX7bgYikskK2Q17ARkeMK9TeNwoV9a9dTapPNDEiKT4QuRL3UD7QUYxGKV7KxbbIJ4OQ53UUhODuBJtARj8t1lrpOni/v0NC/fkIeLZ0dW0DkswMijxVFsVkEGxdaePDtesveY7+d9ngoJGD2hOZb15UShsPvdU8MTZ734w== 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=A9lItAokeprONJDF4NbviTVay4G3IVc9IYH3ljFIs5k=; b=v5lQ5GoBIl4c4hRmvy8mQ4x29aHLSHVxEw44o93KrUnoEjjN0na17KF0/i6URa4OWKrn7q/yRyKJmN9e1D9SsuIllANgJvRncKRizVqsA8zOrhhHEy3dfqZ4X3vwwgMjqpFg244duxYoDXMmdREUe5D2uHYumG8ZsrcBCXbLZ6c= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:38 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:38 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 01/18] xfsprogs: zero inode fork buffer at allocation Date: Fri, 20 May 2022 12:00:14 -0700 Message-Id: <20220520190031.2198236-2-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 29c583e5-295f-4a23-56d4-08da3a9306e3 X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Uc9HnAb1h+l8kn7PlvEUuqhF+VUhX8N7wwjmBK8aQWi3yfugcD4FoK/KHMRMJ8ESDv6xeBW4kJrI3/BXI8ElhgD9t+SzoIYtiuT6rX9vbUr1rI1J5zbY7wP4YObhT9DAcxoCuxToYpLXnHiluYYEKjqOQQF+ig7iiickPija8gG0dn3NmyGmcXsqSgvTsTk+GRdFTWVzZswUnxz/FN7R+TCtcp1FP/7As3+ZEt5AHFEj4r4UN+PT7v++Xmu/Ql0eivfkDioZT5c04ljm7jSqUSIiVzXylElO5u1yqABWwq0+0NiHOHWHqJY7c9km2qUzX+1c84ks9f5UbO3s3X6A2Rx7I1S373N5EvkEFMJIAgJIxABG2CtDTAZnKMfetoTtNuA5Tcf4rqetD73HVazaNzLiRXK6Um7RDv4T356XuSUjB1cTsO5zOS1bBc3nvU0j6czER1wx/t0OdBiTP0P6i6nkO2H9L8zqVPip8e1FTcg8ty/io8TQmq5FcnDNGGWbp3OVK9NbuGijZfRap8E7R1eIE77iA5Dqwf/Or0+mv960+Ux1Cc+JJmuVJNM5kEIilkVqOAfjrTLiIJdA9fqfr17hSPzR/KWR+jsfWlFHn5stUg7SNxSNf8jvsJn1n+q5WpgFXfyBEJfECYnzLrjVNqIA81zq1uczCn6SS1D1JVejWUSst6rrSaMGhFg6k5wXvUWACKtSR2bTQ83Gi1CYYg== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: b6MjxnbiCOteCOG+11KyAJXkHYT1o0QPi4fv3odhm8MeWy4vW5VRRK+T0vGYUQhvWRasGun656kCWgopZg+54TqzOnudEwgprSHgHNNRjMHFKHfaNDQhmmnVTLfmDtCl2oSHSTvyHQzERI5UZGynLyzzmzvRp2+Qt4PCN0i2uJjfB7jjzhtiBwRn634inrqO0sSnXURjauB1UMz7geU/t2GMOvX/g6o0emi6ABs+Oeykj0TqIJYp37AgmqUwoVdp5tS6srtwy7gjbzHBmemEwuc5JaJqEG1sxg2niCWh8/5n1k7kx4BHRJsUcA8YxmqSUZ/IdTj+uIZ+QancG8rnBIIASLLPiKBhdZNnSHUeI2ZPmv1mvkVBwfw0O5owWQi5h1hWX76fi4FmfZqUjxLobD+piIi+YN25fFse7VxNGXtnNI1115YG/0A+9vH4b7KoZNTJtOhpPuyoCs5rTnubF/R0GFRZrCLtqacGmTv+mO+s/WxD9or3cqRrBYmsElx/w+WLqKUG5AR0+t8vxGDLbOq6tuA1MHp2uetS24/fDcYdxbgi6leqNKOf2hzB3dPPdDFKyO3ljeRLih5rctCoeE0DqSgt3eUwlU7zPr9O4j1yBhxtDjWmzxdhE8VJOQtq2MAu0m1b9qWA4LgBxDYZ04AuoSQn78gWu4XYZ9WCn0FhEIRk7lpLuVSOR9f83eX2rMKeOFCIFpbfeHMg/mrfRivV4+h1nXZoWoaP5wzZNj3RXBA1nOyjhFwiro3CSPvS+yrDZM0qKw0nCq+qetf5Qgd+CP3o+JH5+lIJvjaPy8aMAjzkE58vrbJiy3riSVrZ85bXU0V5HqhSW5N3voId6Fia/l+S1Hsic0eWOrVGbC9KsM44vYA3yJ0374uSMB0Y+gtcVxjwO5OOIqEIoojQKUOfU3RegWCMz1suus1TBOTlqgu9md4ly4Zo64z8VDYWMViEFeKcOZw/Qzygzup5gcdd2Uv5DbixJJ45SuxIgEBcPvVus8hiAHN0RLf29KiqdkSVGBD6B2LxWZopLHONliSaPl0b0HDh6/+aLiVHPVOkL24k87037P+aAuS6z2a9Tb1NXEGWv1HDxkTq6s5rHRv/zripjzLYo7Uo/yKcAaevw3EtoRqu0d1Wqqgy+AF3Ic4XuuOxBXaTVSTjhZrgEopCczYp9WWfbANHYb0StlQjYSVfC7CnjRpu4PQGEq95wa4bZwiJcPJzecTU/tb/f/B3kkfO36V6zlqKSjZvTgUnfGYNwZtDOJF0mQlxKb1K53l/6F7XQQ30euOrsOtDB9c9gqmN6ZCi4vRadmgsXivnAz6HpAN6A7nKzfd66gIytgejBLPsTXp8bTXSsBV3A6/QcP5zSAgkUuiboI1KBLk7FeNjrgc+sVlkGCO58B5Zafp6vrVrFQWq4e+0StDKti6txVXnaGbat+YAnQMD8laYT22NJEujFDqZS6iCrNVm3N1gZNmLsnLZAosuP2puwAeGt6p+CpwG+sRIj0QLbKKpwgrUiDmjbA0uEfLaY9Hyzhp5OcKaS4BSqE9Y55OohJoGIKWYSKQpv5ZRCRi3aO/kBeSp1JMzuPVBRNo4g5j4Gmc/9yPEtI7wI5mGYUdFb+N/1TDibYYdJuIFAgEUDjt636xNu971ejL/BOAoIGLg1217qEfgsvTkrisukjozl/SLNEWckqfY01W21q08pSo8Oa5aIHmaWuUkEXgugg91MFs81jUqdk+/G0Oe2QPEKoK1Yy0fKx6DLN2zFNsXkTo= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29c583e5-295f-4a23-56d4-08da3a9306e3 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:37.7449 (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: fDTids3XpHuXVOIbINa2HIGo5XT4oClb/XPfjUlHBZiTb6itHYtALVmxi3hxI4l4AuBujP4RyqbYVblGbkMGIPPl7utct2LiXi4K+Oe/u0k= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 mlxlogscore=999 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: 6R4ydRq72lRI-SmAPN5lBtv_ACaPfEG9 X-Proofpoint-ORIG-GUID: 6R4ydRq72lRI-SmAPN5lBtv_ACaPfEG9 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org From: Dave Chinner Source kernel commit: cb512c921639613ce03f87e62c5e93ed9fe8c84d When we first allocate or resize an inline inode fork, we round up the allocation to 4 byte alingment to make journal alignment constraints. We don't clear the unused bytes, so we can copy up to three uninitialised bytes into the journal. Zero those bytes so we only ever copy zeros into the journal. Signed-off-by: Dave Chinner Reviewed-by: Darrick J. Wong Reviewed-by: Allison Henderson Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- libxfs/xfs_inode_fork.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libxfs/xfs_inode_fork.c b/libxfs/xfs_inode_fork.c index d6ac13eea764..a2af6d71948e 100644 --- a/libxfs/xfs_inode_fork.c +++ b/libxfs/xfs_inode_fork.c @@ -48,8 +48,13 @@ xfs_init_local_fork( mem_size++; if (size) { + /* + * As we round up the allocation here, we need to ensure the + * bytes we don't copy data into are zeroed because the log + * vectors still copy them into the journal. + */ real_size = roundup(mem_size, 4); - ifp->if_u1.if_data = kmem_alloc(real_size, KM_NOFS); + ifp->if_u1.if_data = kmem_zalloc(real_size, KM_NOFS); memcpy(ifp->if_u1.if_data, data, size); if (zero_terminate) ifp->if_u1.if_data[size] = '\0'; @@ -498,10 +503,11 @@ xfs_idata_realloc( /* * For inline data, the underlying buffer must be a multiple of 4 bytes * in size so that it can be logged and stay on word boundaries. - * We enforce that here. + * We enforce that here, and use __GFP_ZERO to ensure that size + * extensions always zero the unused roundup area. */ ifp->if_u1.if_data = krealloc(ifp->if_u1.if_data, roundup(new_size, 4), - GFP_NOFS | __GFP_NOFAIL); + GFP_NOFS | __GFP_NOFAIL | __GFP_ZERO); ifp->if_bytes = new_size; } From patchwork Fri May 20 19:00:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857363 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 55EACC433EF for ; Fri, 20 May 2022 19:00:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233482AbiETTAr (ORCPT ); Fri, 20 May 2022 15:00:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49058 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347982AbiETTAp (ORCPT ); Fri, 20 May 2022 15:00:45 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D842DE5A for ; Fri, 20 May 2022 12:00:43 -0700 (PDT) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KIeRZO022596 for ; Fri, 20 May 2022 19:00:43 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=zo4h1a8Dmi3hrySNBjPGfgop+JYGOVWf3w8RAjoZryo=; b=k9BP6GtkRIa4dkofYJAM/8YeWmvcqpX6Ydc+d8JApw9UPdi5YP7jne2u07X0HzaPCxy4 LI8epKg4qEEbFcSBbeUUFBGStnNOO1DEXVZCk6Pl0l95RoCjwLOlehwKdatqUw9kaLIj /3WPNhIH7+oPXTVluQ4g5nUPVRFwBlWvxDREptNli/8N+lBAGTB+QPTSfv1xpTrQnxr8 VutmzB/YQap/CilLlbJ1M24gcR6DARX98ZN8druazYvtw/VTvBL1s1b7STlQ1YwxBYyG pnjoox5kL23GPsp/pSicyJYfgrMlKGJKzI7VGV9QsX/u1zYTZbuSFYBi9Ka2VIMXJI6s LQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g24ytyx7x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:41 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KInuZO009768 for ; Fri, 20 May 2022 19:00:41 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2041.outbound.protection.outlook.com [104.47.56.41]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6rkwr-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=efaJUxps0Leln5ageEpoEIAc3EjsDwHMpAItj8g1EoZzZT8xxRcwJeyXEAwm6pbmXJASMlEfK1Pr8BMha6ILqjX7q1iKKcR2/LamPQX8steh2nPnUc+RPDV5ICTcpzLBVSdunwP5KFUCFqPv/drmprSCj8TY9nrSrtHlfuM5kySC0E4PbhptfISJKn9wXe5N7L2CZJQigUBWyLCRaMoLXbth5ovKKdpaw60CKC/7kFNua/FXh4jC8KxSOrrPmI9OZ5O/ihbAfT+r3gckob1Ez12oZGml3F2y2mVPVrD6RaIThYXrmp/QrKKTXlrd6qDitEsIgTf2+iVpa9og4kRCig== 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=zo4h1a8Dmi3hrySNBjPGfgop+JYGOVWf3w8RAjoZryo=; b=R0IpICTDITN4tKHnpAtmA6PDH8Hz47z4o0LXimuZ1Xlzelag0TdS26bCJFwpk1LKBqStwiTvO2TPeLhVv5G6zhMTFszPoT+6KcdVVVmZ8yuzMPSIhEkTjCmp4Q86PQDPx0XQMgZQOuwKSLtRLGK+6oT0Hdplgcu1Y5G1YpQ3h393Wt5flwdVGYiQslyeZysoI24WYwoO2Ttm9Y+4b1Sfa4kLpX0StdzBic7iBSrb/MmTVsKfqMONhdmBUemZcpTGKnPpvCcnnhzhOCrORvw+wlZLiYYTIJw1/AtereR8dHwb2eGABf9AK2SAY5LBP118zPnirZjVv3Sr24Z6icX/bg== 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=zo4h1a8Dmi3hrySNBjPGfgop+JYGOVWf3w8RAjoZryo=; b=OpKpIfiFPsndJbFVOnAB+Ve7bCJssd5HomG4CGgTt4kPfZs/eWT+FQwsSWwXCSRioGBSduvA1HM4xD+GXf71wEhaYMzVvXnTIdcOdMvrTR6YUAtSX2ml0cYVf+tOtCXNQKdqYddjJcAg/5EsIC8ltPO+9O+OzBF8X0SDNFgt8Pc= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:38 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:38 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 02/18] xfsprogs: hide log iovec alignment constraints Date: Fri, 20 May 2022 12:00:15 -0700 Message-Id: <20220520190031.2198236-3-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4d53736e-32a4-46b7-dd06-08da3a93070b X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HQH/f4fO3Q37/vWxXn68SddW6v4N0EebJiHDdCyJTAIXVpHeYZRTTPYNIGkiOkm12mfAzGQkyxSSTywVklV9HXr7pZCKKZR8v+KRoJTvVyaDxtZrroaXljP8XlGELuv9FPKdfLc9Qf6T5z04fPzR5w3BJBjp5G59dYsZVj6x8KpD0xicqTPkhlQwSUt0NzV3ceWW+mg0HKrCttFwTTw9JfzlU2C3o4UrGZGmy2rz+HTYNb92HXQvj/6HPv2R/WPFlswlp+UTEeQF2iDrUYB8uZ5dhD8RAvXrOlPELQi7KnMqlF8LqvdZKvUg92QGxmnOH0qu5CuRj2IwcvVKNZXkHaC5VwjPLeBmeA5ruXqbxbZNZyLwXVbgO92LyOT25Fhbxkkgh8BTH+Be1PQ7gE8ryL0EG6WTs/Vn60U+6XnGRQ8ld1RvyRcNQN4bBzyxWhOVDH2TpXimUat0EWh/Sr5A3+sUSmBmS1QFHnDySWa8CSpy3e6iU6GRAMw1zATAKZOrx/SCfpx1Z9EJIZOJZ3Jsn2TqN9HRG5E5n4G/anNzDI1LAxfmuyEY2oh83hs6VXTzMSPdtGuzI/mFpCdb51pSFZkA5sHz4QPKWGwclaRTqNffnjO6gUQcjUUyaIHhENgAha++mDJQ+nx00aklI7CEMxjEHCllIQ7UNEViFv5pCaGVzxuWKG9HgH0YPZ2Mie9x2tOOej7kvzny0MUemkmjvw== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +qtPEtqPmqRKajlbsDgSjvioE/54b+NkrZ4WsTgg+CjBDmsl+1K3cj6ZyGMDzVoL4r4adMIaowcfVnUlM/5X7gTyYxR4BJLtFkHbnoCbJaaHK1F+HSkfl7A5zfld8KP81ZzNzD4RfQlyewVtn4t8m2DEMLCogp7TNEyeCncSkq5KTg+Xz9iauOR36w4gD6Jb/pACDJudjh7a/6RHCi+RNUkZZW6v2yL0M1izhf5hmzZO48gNgwY0p00eCQmnsY4gWEnIyPMlWZ5txJbqVemwphh43F/mCCAJPqHlR+Bo45gooPNUS4//3xF5XOT8LdbP5mZMLoGJPHcOouBAvc1D1q2ygNIl0cW/Ue0DUQyT0TUMllT8FbomwFz4wwBxVBXY8OTXkIMweEcpgGiPoTNJpdizAnhYunzirMOY+V0eu3/5qbR3SFz6BnTxmi9Z4iAA7vg5sDQFK6smxOhN5fFpxIgWUaoeD9cOhg4JBUKmbp2GDwcokv2VYUJcxMDMoVeykE/TTInOVg7fZtDjVXV+75KoWe+GZHxos5z/kR6laTyheBh0zLr8kGJ0HJNRcUVDbD+lDmpiAhL/OpIVXkVHEnNiKIpy8agwgkVXowxX/AH0Au/uAVeyBpoRk1obWDGs6wywOaViUhjsTaaKFGYFFF6Etsxtev17coFJunVeYm+FKoCnCepTA5uhVqJYG3Vf2AtTCFjLz7GeqfdxissKRNDOAVW44/5u9qXhee6B3X3i1Wx1xAu1AuA7gLJ+p4NstT1QDRLA1tt/ad76EL5wgQ1eZ/58cDDrhJZUf6bRN9ocC7ifFf4WZFxT/mHE88DA2DYrDw+v7X2RM7EkxCxQLv6/tZzXG/7hTGaebB9wGxEZlExUPJkpjuxtsJlUmVIA8UAvz7svKL/thFGNgmCEda89DKMAGRXoc2l/9ex3ki83x6rWfBzCDKwk3CbPMOlh+EvqHTt2aS9y4wyr7+1rlj/v8JMcBk5QiwSbh3T/c7giGifpI7vFfb2WQU9n4zL+ZsBQwKGkZGdct/SE6QC6NfWN59QXj7jpsmHh498FojIQ+kB9ewN3Jl0L387XLLKYHZCOjL0FG5RBziG0j+d4DR0vw1GuH5UaMlBRWqFDEs0P2kUOA3t3oP6VR/R2nt6qNopblZFni1RhRE2+lX539JA6//AWi6Au6A9hXdbRf4XkZde3NOUT7A7scS6syZojc1wGqqxVy0R47fbEYFXsmVFlAXT2Ko4bR3EjiJV6o/GMaJCv9MzfNDxYtDS6te4KoC2ekhu5YjJDEZjjVic+JHmoy07zEL5IN/lrlsI+6BzODoxpfvoAskB4AGTUHadYXdUMxnT+aepvcLCYkxLNwyNnpHqS0FgX+fl89yVI7leG8jJAMnMkSJ35UUvSWNkMwoJlH3Q1e/sHKQq+4xxZqwSwIJMlM79CH/RYV1qPwnhfdeGn1Ry0DHElKkpgIwhEsozdL1CLonytmYVJRlCrO2vQNGuzbTEupXMJhkL/naZWSJf8idtqhRD6OIwN8cektD9DCsGgmIau/tZx47jE56R7HonVqwWnh3q3NM7AtzZ0QKeE9l5r3xYQHoWFQGzILmc9VA1dY6rEVNu8Gs+didJ64Un5RxtM38RkB8xp/SQzeAPS5QqBnSHFZsObNOvkOaMSMg3tdhaoOdaUDjHsPyEW2a0/Eo7QUNk3NFuqIKufhtyyK3shliLJE0dCugBj1a3P4hlAT7MZ8XmpzQvZYBBlOImRhgLc878AzkKuy9A= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d53736e-32a4-46b7-dd06-08da3a93070b X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:38.0105 (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: aKK97ZXZ2ppkGV+WELCtnviknSgTzsZcjGdj8XLu0CK++2K6FRLDx3kspnC0fLEahg7Buhh3tecWQUg4CVqTuMbRJoo4KB6Vod/gYKx1++I= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 mlxlogscore=999 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: BDLqoxSQ-441J-PohdSsGkSPjz62_Oqa X-Proofpoint-ORIG-GUID: BDLqoxSQ-441J-PohdSsGkSPjz62_Oqa Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org From: Dave Chinner Source kernel commit: b2c28035cea290edbcec697504e5b7a4b1e023e7 Callers currently have to round out the size of buffers to match the aligment constraints of log iovecs and xlog_write(). They should not need to know this detail, so introduce a new function to calculate the iovec length (for use in ->iop_size implementations). Also modify xlog_finish_iovec() to round up the length to the correct alignment so the callers don't need to do this, either. Convert the only user - inode forks - of this alignment rounding to use the new interface. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Allison Henderson Reviewed-by: Darrick J. Wong Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- libxfs/xfs_inode_fork.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/libxfs/xfs_inode_fork.c b/libxfs/xfs_inode_fork.c index a2af6d71948e..a1b2b9029195 100644 --- a/libxfs/xfs_inode_fork.c +++ b/libxfs/xfs_inode_fork.c @@ -34,7 +34,7 @@ xfs_init_local_fork( int64_t size) { struct xfs_ifork *ifp = XFS_IFORK_PTR(ip, whichfork); - int mem_size = size, real_size = 0; + int mem_size = size; bool zero_terminate; /* @@ -48,13 +48,7 @@ xfs_init_local_fork( mem_size++; if (size) { - /* - * As we round up the allocation here, we need to ensure the - * bytes we don't copy data into are zeroed because the log - * vectors still copy them into the journal. - */ - real_size = roundup(mem_size, 4); - ifp->if_u1.if_data = kmem_zalloc(real_size, KM_NOFS); + ifp->if_u1.if_data = kmem_alloc(mem_size, KM_NOFS); memcpy(ifp->if_u1.if_data, data, size); if (zero_terminate) ifp->if_u1.if_data[size] = '\0'; @@ -500,14 +494,8 @@ xfs_idata_realloc( return; } - /* - * For inline data, the underlying buffer must be a multiple of 4 bytes - * in size so that it can be logged and stay on word boundaries. - * We enforce that here, and use __GFP_ZERO to ensure that size - * extensions always zero the unused roundup area. - */ - ifp->if_u1.if_data = krealloc(ifp->if_u1.if_data, roundup(new_size, 4), - GFP_NOFS | __GFP_NOFAIL | __GFP_ZERO); + ifp->if_u1.if_data = krealloc(ifp->if_u1.if_data, new_size, + GFP_NOFS | __GFP_NOFAIL); ifp->if_bytes = new_size; } From patchwork Fri May 20 19:00:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857362 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D036DC4332F for ; Fri, 20 May 2022 19:00:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348061AbiETTAr (ORCPT ); Fri, 20 May 2022 15:00:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49056 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233482AbiETTAp (ORCPT ); Fri, 20 May 2022 15:00:45 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6A7B3DD for ; Fri, 20 May 2022 12:00:43 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KId7EJ028574 for ; Fri, 20 May 2022 19:00:42 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=gT4z/dlKcefMxCVPjbOGob1ZVpzAe/GYx8+A9tJE7/k=; b=HMMURSIBittaKhXlg8/rFIZnaMnGoI8TCVlGAUOC+J79UkQY2DTnryjt6GgS0fFXwYrr 3PsZalZMtXZCIyeaMP2rPQTDj08yZG9lyaOOWw9su28nv/mnPH6ZOyhCTrXNdX98Belq EEIbweu7qD6DcXkg5mV3ZVcnTkA9DE81eAZkqSUjwgeQu0H+EjOaCwFKL4FaYaXO9gZ6 +9lUTJ3Q7NQVWOEJDrOBf1+vxw4OYBBfyiZ0IeI0XG+E0m/ZP3JGuYUzRBkBxQgGQ4in cAM/PLEn1ATqIDLRxBODohwLSbaFBe9rGJMxbojj5x58NR64XkheB1JUIbKDWVFPr2k9 +w== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g237284a3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:42 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KInuZP009768 for ; Fri, 20 May 2022 19:00:41 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2041.outbound.protection.outlook.com [104.47.56.41]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6rkwr-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kWik5kQLDPsWaqO6XUcfE1tbYhaZgXiHXPHWJe6Ry4hhgSsQgAnUJoqNPkkqzmspblUDMkUiCsWtrUgRl3xPCgGud2SQpTlqKbMXQ0rEZHIANzLMghkBnF8W/TjQojcmWkvQCGlMEe0KxegATov4a+Ak8k9moX+X2jImysplXDY0EwAfQjtz4BA2JDiOMtTvigXZncgM7BHTX9YHOMO6a5ycHrKUzd+M02tRk/4ZenMNY+qiWfpBQSEls0+AcuQ+jHoiqRZndgPEmjD6kNFAdbyHfl0g2vx8xF49Cg+KdzdWKqmLOror3tGRNV+e09NNXDUWoRulkUOqCy4zWs0J0g== 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=gT4z/dlKcefMxCVPjbOGob1ZVpzAe/GYx8+A9tJE7/k=; b=dJQ3ypbNXIM6p7P2GYV4lYNQ6GA7JpIPhECaVkSYJqp4N0+O1V15/dmW4kp/hJtuPrvNnEi7gHyYhrKKGMhmlWpySGPhssCiS6Ls56yY7ib3Cfrl1bEt475sORKkBJZglHmESCxHmzFA54ogXVYOchkh42aHBNueVV2Z2GBFQMMF7IjUjaLaW44f8UsPN2SjhzGKsltp5KGM1QewANkw7UosdgR+HikUoFHjTx0ZihMwZZEsfg6O1UutKY1eAQLodsf5Y9uDJVVKGhQxR7tHVkpETI9+Mg7dEpaOvQCg3NBLrUAG5dwyYaaum6a3hVkdZv24v8k5KufOItb39Q6Xmg== 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=gT4z/dlKcefMxCVPjbOGob1ZVpzAe/GYx8+A9tJE7/k=; b=bV+/9pOdkSmny+cDnyMpRws/ZF6wghQAlHGoZAXkyLB7ELWTjjgXh+W7rhJdZ30anAfOEWzLEKHH4Ij67uySkS0Bc1l2jMwOi8S9VccyHdA3IGyXt4rtJrnwML6sjCVhkFlE//8OUUEvwsHZRk8jg+SpR9SyWeEIwXO0FTLhsdY= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:39 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:39 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 03/18] xfsprogs: don't commit the first deferred transaction without intents Date: Fri, 20 May 2022 12:00:16 -0700 Message-Id: <20220520190031.2198236-4-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3edc7de6-2bfb-4684-6361-08da3a930734 X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: f28qn6bilkCZvaceTjm2SWD8kIniiXXfsQdlEaIxUkpUzPwDMCaMVX+MKpqxRO2FGCe2+wrF6W2xbDIG5PSPKA21CsSsaYmClpClH5L56eA6k0WopRUB3O1fwaKcyNWv3TI2KDj9GdmYI7fvHivAytDJqpJWVsaTrgDLh0mYtPBYaRqIZVBbh+a8UPwpwSWOtW7cUJesL/LaxJBlBXztkAWZfchAhmmaai3eiMcAe1bJZuqRqk86KThdly01olzRZRGo0mCsq8+TznufofIR+TEgw1cqPuC0h+YaPvQlDyT97kmF8O10QQklCcUAsXRifibGWsjT6UE45WRMfYTEZ+no5yQCH03EcS00U8ak437WeYqD+9hglNR8zlqyRyBN03wKqGJyJtDhFF9aOE/1hVqETQ5DaW+BEJU0AoKVVAurFT9v1y1bv/823QC/E+KHcc7F6m6FV9LmOqUM6bR/1beVSx1Lz0MPV5qkj75GiVpocg4BnkT2zYnv8zI+3BUjIyLTqygc2DR/kMHE7wnRLMhx+3N0xjG4fFgPsY8NMOFCy4jRR1DcN+Jsx02Rfa1klmzI8f3ruFnLG/N9WLG1KDYzGOgIuXDL3HfTXZOUvBLce5Q/sc5Kk+xtDbSRRCDJRda62VvlZB+gM/hqqiBi/S5AA3TUiDPUQyHV96fq9u3q+HBgPRfKmOusYlLdz7xE656yiocBpdoPhazSUVO/cw== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wZC8fl4qDi0eHq2zALWlolw114l3QOiOAqFcNbSR5ovLYkNFY/j1fQY8wSxwC8G1N9F4cw/UVr3nCW7NKpldAdCA+DMlAfTAQuZz3Hhyn5Q5REhq56tDuIBzZsKNU3JiiBxmDOECkjUfO081pNUz51TfG3VDuf6P/szzNjtqn7AUrOBzs/sx/Oozn5H5MGmDSGbJbM5mgCgEoCTNpOKMHIL7pTT/PvLjxDuwiyAze11/KbgcJt7IIDxnzE5TU1iRuuM94Soi3ARg1G9zRUkMUttcS+zsWq1W8gxl3KXDP+pqHg7y3+AMl9nngJeCvYwVEeZ/B/NjDKk5JgVzncC8EaAuqBv1edVtfsJbrJ8/8RHwU2LFa64DIcbHCjjpk77O+54JXBP/YRIGxLS6aHKeBvN+ZXshHBwdiPeWOhjWndaZTr6Ejbq99D2NOqN78TItw6FQD8W5X1HSDSmex2GqHg1U6b4S7T8rzNfQL8CMk0tUSF96KpzpvEz2YflzQ95gN7dmdZmilZuaJftihtg7m+rUY4x7rogsKjyTdMZQEgLaBog4F5kKq/ywpRhniIDO8U4grt2mpw9NsxvzIJWH0OR4th7fn+0K8sKgh0u/1wqR03eGcfEkFXVVuNvu9hjVZ93i8CmqzviJ6bFt7IkvMO7gKebWjvh1PC+/CyyNfyljTVVNEnirWHq/OJNG5tx9BHLnSnnEQ3mIYDVZfmAJLhuRbZ+fz0iNbnqjEr/33d01syYCJp5pQgplMBtygI7ujlhNIJRl/5n132do5T8D8rD7goLZmHkN+PyDou7Zn+nBSr26/9zwNj30W8LsC3KO+iiZSXu+eHw29k6Z44CyAzxjo6X87S67l5f9OQW46H/ngxIVS5PtwEVDh8SXwLnsYLY9uGtbHIISWoaH25N4MAXPXE9nv/w66U1OEN9WPFPm1yh+J4W/rOMO1qT4DuRCKs34fgD5UG11u72uzqbHZOT/7AqSWh9ZeOS2kjy1gpHrt45v5KuxAn9PnS9sjzd9MRj/NNr1eR/2VHpq7bMPAsjVFjy71N3r/qb1ow/T7RJ5SbKKv1xrA9oIx4D/N6t/Lh61LCQszwNSvA8q1yooJRswWbYXMGKy2T3QaQMZLakxxTy29gSyN+RlVkJ5P4dHH/vbPdVj7o32O0eiZCrh2u/2V8utpdMaCwqiX0j6nJ6xs1ZvJXUAnu3Ds3h+mzfmZ5W6ieMwhvy+o0qpmh4k3zNRa3SLT8o0ldhYSM/V8j+gfWgPynWczgfQutZnliRes5Yobi+7DSqlS5PYvIJhz7zM4KvmUyQl0AzWTJk0Btc8DVH/gd7uLKcFlPBxH3uDnicnHB/Gq/zRJtaAowK5d5PCJF/XX33oaaYDiekjYfhZe+9feaGKFUstzMeb0zdoGPQ/5HZcy9Cu6qlN2VuntqWgE/Eb6th68XCHM2+F4wwU1O4Lk/fv0Wtf7d/2y7dMlCiYYW8g5cns/i+dr8uRppZEebB9eWzMH5AsbAlMtdTXpGOmUc68sU7lREG/jKURSjwYQMZHPCRykk1t7bzpmSreCcJwYanniXr2S+lv+np2S+2lLGJs5dZzR/EjUcTjgT3u9bYy4zmqmiJ/GVFl7m2EQXI1lwHrktDWAKyPRMcF4R0vzWXIUVlsJn7GLiAdwMI1s0SUNJzGYRECCFkXDykYkUCrGf+1dlGAhIaEW6y/QDiwTgAfCHEGo6v8/F9t1D6fN42BKKFpt+dP7QsBEwDORSRNEttNy8ABeoDDZxQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3edc7de6-2bfb-4684-6361-08da3a930734 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:38.3385 (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: FWGysjBPHH7UVfKVvCdwc4PwdbsHxLven7IxD2v/yx3paRUVNCJkcrJMCtLe4ybD19KUF+hHCd+VW71VAPc1TXXnaFyraAlgBY4zxZrzwcA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 mlxlogscore=999 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: r5Jdx-LLzVd3Eaos05VS_nhAlHLKQTc_ X-Proofpoint-ORIG-GUID: r5Jdx-LLzVd3Eaos05VS_nhAlHLKQTc_ Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org From: Dave Chinner Source kernel commit: 5ddd658ea878f8dbae5ec33dba6cfdabb5056916 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 Reviewed-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Reviewed-by: Allison Henderson Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- libxfs/xfs_defer.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/libxfs/xfs_defer.c b/libxfs/xfs_defer.c index ece446926916..d654a7d9af82 100644 --- a/libxfs/xfs_defer.c +++ b/libxfs/xfs_defer.c @@ -182,7 +182,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, @@ -193,6 +193,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 != NULL; } /* @@ -200,16 +201,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. */ @@ -483,7 +486,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); @@ -502,17 +505,20 @@ 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; + /* 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 Fri May 20 19:00:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857364 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 954C0C433F5 for ; Fri, 20 May 2022 19:00:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353116AbiETTAu (ORCPT ); Fri, 20 May 2022 15:00:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347982AbiETTAs (ORCPT ); Fri, 20 May 2022 15:00:48 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C9459FD9 for ; Fri, 20 May 2022 12:00:45 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KIcLTL010504 for ; Fri, 20 May 2022 19:00:44 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=FZIT+Ft1J+BSRlt7nBwmOtqiPhJlZ5Nj+OU0DTQAVVc=; b=gzotGz15vhJn9ZXmLIUxsx8XCsujpTtBiWDTEPi7tT2OO4/FJT4JdANJoIylZI1a4oBg 9IpvxNmrjyfEI4Umdl5SdXemsJ+3dsFthFy09xxJLCTwNWsyi2AtIlpppxh9Y9MZz9J5 pZ/hghURCel+k8jpB/Mg181lUGXP8+PCY8Dl0eHnNLhOPL4ySISUzt/20H7iPfsYo9PQ lJGNJA8zn2Loh5gMnbTmkf9EHdeoBTiIYCmGsJKDKrK73cb7EoyivkJMoEY9f7sWIdl6 pWgWTEGI9ZnYr3VsXsFlizFN1iC+KssZV3an/cy9xF+k1iqdF5JORzTb6CyDYZCj6o7V mQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g241sfvp3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:44 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KInrM8031336 for ; Fri, 20 May 2022 19:00:43 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2045.outbound.protection.outlook.com [104.47.56.45]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g37csr1tm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SkHKSpHUbPlblN2CrK4NVKM7Ri38Nkus2BWi7TeWvx17R3ZVYz69t5+j+UIgWX0LgekNQ3vIIN9kSnAm/ypl/5iO42w+s1dBwmeWrwsJZXqZP6QnBzymhwqLh52ncBgc4aX6cfzGxY5SqU+UhTrUSrTNtPrGotBFRgENB2w5MoCgeT/V/3oIUhwys2SkfqOujfVh7KeyoJVTNKGFmCXyuhVy1bCwXiHArUR2Dn9b5uBpyCDsfmsjIgq173TJ1BFQE2d4XEJYNUXpc74OPS/T5GftJYcANJIAVeGRZA4nrMiqQP/aY0MAs1/inV1YE4MW0ZBO3tLfhexgcPJkn84l0g== 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=FZIT+Ft1J+BSRlt7nBwmOtqiPhJlZ5Nj+OU0DTQAVVc=; b=XDho8wgpqdosBYL1a0Bj7Q1TPATIkeAc2bOd7Q+3N/+zCwwW5rbWgAxmjaGLkLLprb7AN18QUMeUYZ1Sn5j/Q73mMALd6h3ejom5DE0hp2lkgAoGvj++CSQIQIggjlwvoLp3AQFL8p3VEBW3DXr98MoDBz23PLfsbxuFG6d3tNSuH1hsz3vmQzESsyM6uhPknXUGKH+tD5brxQFrctr/wbLXMYi3cFBfIqeh/wbSdIPGYMpyCyd+EAAv3Ovl8LEGtINbIUzlxS7OCzVqjvhiG5UUu5MIHdOXOcLHbCuyIg5fGc0VdcR1EMvpg/iukMUiprVC1iHy9XQhKH8s4vu4Xg== 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=FZIT+Ft1J+BSRlt7nBwmOtqiPhJlZ5Nj+OU0DTQAVVc=; b=g+9h8fWn9h7ipGcXPoCvT2MobcsKNGv6/742cHsP6HKDVh5NpiFHcrkR2pA8V+NE8ueTUnY6AbdKEgzwC39Pg62Z32SR1IawN638NwkYUt7JmDtScYVqj6/Nqw2n8Ynj/t88X246zLlRs207PSmCCIEXM/s6IDhMBQ5aDLxw37s= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:39 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:39 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 04/18] xfsprogs: tag transactions that contain intent done items Date: Fri, 20 May 2022 12:00:17 -0700 Message-Id: <20220520190031.2198236-5-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1ee25ddc-359b-4d38-cbfb-08da3a93076d X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: azJljG0dGtsoEe4Y3/1pvjzT9EaKOzADzzF8w62B/uNy1+h5Lxyk0x7+QtoSHJH1oeEfYXYpOaGhp1JxRs7LcbylpdpRyWDoAPyCz7OVklqQadJRgedO4dMHG1tMQsxVUz8+NtnuDmf0uroZRDdnEZ8ox8PryJiRPUh8qS0vAGhbc2nxj4TlP8VFVZTOc8yfjaZuXumptO/K24NbNmcUJEuFMJedzmW4ZcKk5qjqBE1nwZdyY/2rOEt+fDd3F8EtuOajELzpK76kt8ZW3K5I8B+c4cUqfn3CQ2GO3RMctzLTZYFy25yD1VwD5EbXtCTgA/XBw8S31g0EnptTV+Ww+h5CxusanGjY3sN0864R7FBUYk2B10VLnd7o42R2lG5eIEGK3nQw/xWQjdCTng4p7LrSqLhQew7kQc+WQ9pJMe8qYDFjxzTGYYho0XkwIPHE2nMmPRLzds1Ea7JqdU0Um1WvB/175yXhrkib6dExYX0JW7+RZkCGb2jodlDiZGkFwLPkLCfwU8gY1tA4qmoL6Z9qzWsaSX+9eGWUs2WQu63skkNdDE5z19hb0ovMaB3kJz3kCZPqgF0+KnEesRL6DmJJohmHs9Eqcm2rg4/zwiv5/CSC4KcJRDbuvH02cb5xq1RgV6h0cJdZgvIyxAIjMTa2TjlOyls87by22MV2JDWN0Ew7yoDb5Y//ZoPEwGpD+gX1vjp1kLf1BfR8qjreOA== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DjoFElL934G/oGhcpk/aFz/bTVhA+lqqIzdMeusOxrCDjpf/udh47aJTOwqJ7lzPQRBYVmVsd6SXieekbwsdWN7LrDfLyulXFQw63dLSWUVHCbl2CDbJFh2/5ZfRnLrKirVHtEVrG7Z8ywFunGAWgD+T3BsLJrwnktYFo2yTjxxOAOVJq2uSmqXui8unnTj7j5yGEey7RaxpRfUzMvYe71mStMOzp9p3kE4wrGGioHlTVwGq235kR9nH7lRN1SKWVOzh/h/UDXReQIylTH9YqlDmSYi852eGzUj7ep7ZHxdvsahSv7elETd1WXsWHF/O9lTZjJFyABjO3/na+lV0R/sKgNeU+O+XRvKK+swYblBV7RDCOtj43Fegol3qKbaK9JgfByfrPUBELiZzhRiBXXSlvvX4IgpNaEktzSmOwv4kU3wN3/1l3QiRUabfObWdlFsp8NTi8+1bgG3lKLO529A4EHNcXbfiXvDXkR9Ct9GUCPbDMGs/zkii+qzW/WD6eQlxu9UGKey9n4A3u1LqpsZgAJOceMvG65sWN5N1eec1Uzkind8bS5IIW9MDhVi37Ja0ji4RvO8IJcJPJShqQv+tgArcjp3Xk5KTdUL+MIM2OL3xBqF4z9zn7OkhGcxruRzL4iWWcP/E/QK/evO8qThCPlSYoHg2J94/L8mSk+awvjcp4W0r3rmbEdpHaKoXy9/mX0yikca2bEB0RrEQ+8PkpsAYDjeCFUvn08+yHiX2xKBqPIBRgitY9P/UfCH4IwcYcyr0yzk9cUzjWMe+Z1OrAics0ZtRMQxsT5DDMPBAGgGUhb9nV/hMEmIllZoc2B3aex5X5xCCu80Z7+hCRCze9cniNEID1pLMVx3zwtWzzdJN/OXiXGEsmt0xMqJLsKCB9GiE8vplujfXwFKDoDmpHH+H5wFkPcdvxAVgH23FlCIuEkGucHj5PaN+f4eJW1Rd7pu36YF9TrxIAiBuBCIpTAa8PHtujx93axTKTQlSJjpUmeq6uYWHjEyGNvARtsMhgdp32nWBAu3fFZ6rV4zcxu721y31M3GK1dUvC/MG4a6+HQMszt9c36ykPkszvQ6JR5BbbItTaNsA60vHmI6Wv8UwjGZI5ivY43x5Au4JAr09WEkYPoxkQ6ISag+PK5fLcATf9LZUCdLQk98rmZUv6vWU90DFo6yXfhSb7x4fHyw6XJYBVzmEKmexR4Pq/zXX/IS9Bpsshh+fnc4A/Xa/Ux+MVMm0rl25t3Ntal+WsPzTCyNprKAcJXiI2AqPOw/18uaLsj4W3e9U7qKPFlDXIDkxTjUDNy9Yzc48tiZ9lcuCgrfM4B9+re2zlcAE5p+oBXWbNSUcsvFPGWtgslkFLQn9iOY5EENxBQmsLjJ28I5BiFACG2idtqPyyDGbQGp/MeLriejoyQIy4RIY+tTNG7UkxSBr42LOo81/79T9Olz7N/vkhXDfcGJTJGwsFRDtUK/vG62rxevgk2elU+Lfi42GVI7MZQUrB4VPzS7vGgR8I2lvsGcZwp7DOLsar7r/G2BSRoXT15orvmgNAldPxk3A09s1saNr0KwWhWTdAGrXfK5BkmxSB/UPZjf8aID3WEJR2yeLI7/LILtHRW5Z8pIUUEbkmE8ZCh+10+vTS1+LE/35kX8SWKmeTUAq8EOSnKIlK65PJTOGQ72T/A9XhOLwglqH69Zv/+P3e3w+RJ8POAWvjHyLpOREinH4rON7UuluKHF+WS6gsGOTznN4Ypel8YGvepWk4BLamns= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1ee25ddc-359b-4d38-cbfb-08da3a93076d X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:38.6679 (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: eV8opRSCAFFe/tZcAKXFl0vuefL8nStX00C2V3lQBHWcpyL5cgcaHBiCXEKPc3gvIXw9tV0HAusxkiIiXItH0/qhsr40nDR+o/B2KR8URcU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: QeFp2ga6bVSbajybtnS1IRm9kgL1ZtzT X-Proofpoint-ORIG-GUID: QeFp2ga6bVSbajybtnS1IRm9kgL1ZtzT Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org From: Dave Chinner Source kernel commit: bb7b1c9c5dd3d24db3f296e365570fd50c8ca80c Intent whiteouts will require extra work to be done during transaction commit if the transaction contains an intent done item. To determine if a transaction contains an intent done item, we want to avoid having to walk all the items in the transaction to check if they are intent done items. Hence when we add an intent done item to a transaction, tag the transaction to indicate that it contains such an item. We don't tag the transaction when the defer ops is relogging an intent to move it forward in the log. Whiteouts will never apply to these cases, so we don't need to bother looking for them. Signed-off-by: Dave Chinner Reviewed-by: Allison Henderson Reviewed-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- libxfs/xfs_shared.h | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/libxfs/xfs_shared.h b/libxfs/xfs_shared.h index 25c4cab58851..c4381388c0c1 100644 --- a/libxfs/xfs_shared.h +++ b/libxfs/xfs_shared.h @@ -54,13 +54,23 @@ void xfs_log_get_max_trans_res(struct xfs_mount *mp, /* * Values for t_flags. */ -#define XFS_TRANS_DIRTY 0x01 /* something needs to be logged */ -#define XFS_TRANS_SB_DIRTY 0x02 /* superblock is modified */ -#define XFS_TRANS_PERM_LOG_RES 0x04 /* xact took a permanent log res */ -#define XFS_TRANS_SYNC 0x08 /* make commit synchronous */ -#define XFS_TRANS_RESERVE 0x20 /* OK to use reserved data blocks */ -#define XFS_TRANS_NO_WRITECOUNT 0x40 /* do not elevate SB writecount */ -#define XFS_TRANS_RES_FDBLKS 0x80 /* reserve newly freed blocks */ +/* Transaction needs to be logged */ +#define XFS_TRANS_DIRTY (1u << 0) +/* Superblock is dirty and needs to be logged */ +#define XFS_TRANS_SB_DIRTY (1u << 1) +/* Transaction took a permanent log reservation */ +#define XFS_TRANS_PERM_LOG_RES (1u << 2) +/* Synchronous transaction commit needed */ +#define XFS_TRANS_SYNC (1u << 3) +/* Transaction can use reserve block pool */ +#define XFS_TRANS_RESERVE (1u << 4) +/* Transaction should avoid VFS level superblock write accounting */ +#define XFS_TRANS_NO_WRITECOUNT (1u << 5) +/* Transaction has freed blocks returned to it's reservation */ +#define XFS_TRANS_RES_FDBLKS (1u << 6) +/* Transaction contains an intent done log item */ +#define XFS_TRANS_HAS_INTENT_DONE (1u << 7) + /* * LOWMODE is used by the allocator to activate the lowspace algorithm - when * free space is running low the extent allocator may choose to allocate an From patchwork Fri May 20 19:00:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857366 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7FE5EC433EF for ; Fri, 20 May 2022 19:00:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1350003AbiETTAx (ORCPT ); Fri, 20 May 2022 15:00:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49174 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348725AbiETTAs (ORCPT ); Fri, 20 May 2022 15:00:48 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C95531094 for ; Fri, 20 May 2022 12:00:45 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KIp8gE010015 for ; Fri, 20 May 2022 19:00:44 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=0TGBiYRtId0jc/V7bsvUDbch4ADcYfty7vGiBhEKejg=; b=EqO7TmGmXoe3k/vyRqomhu7eu67zVB8Bfeo8RFmz1VnapeKmXYdZPI0YHE/NFCwc9rUp hZDQIOAVb60NZr4blcH3FcigPaKbFYnF8XPhfyRR50DTT+3ZO2qIzAG9BUZwA1TX1koF 1oouflEF+4Bvo5/YGPgsHa6s5g8sOimnxT7sEnLp3/ek8GEOvNPnsHlj9Kx443wMSThA 7kbuXr58EPKk7WccD+TnrvwVxnop3nA2CA+KY/uqbJPIgCCDlep7NvobrKbQO+a4wDqc 4QaOoeUf7RqgIsuBwZBI6vTcZKRSv/j6V1rkHsbSAmJaze4JdBTcs6H+4XXywSWHqu/W ag== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g241sfvp4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:44 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KInrM9031336 for ; Fri, 20 May 2022 19:00:43 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2045.outbound.protection.outlook.com [104.47.56.45]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g37csr1tm-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KE9bckBENzhyT6v0gZiAqZ2MdijMbFBNjkGqu0QfMhoTkwNcWPruS7L4wctVU7TvbcpzD7AQ/+JCw56YLkhriZah9Wt8naK8uKXd+zSc35m5azO154qTIoICG06Mwu+iMXqZC5sXEkan1KDwYLCwJNObrWN8fH1kpswnn3oybNyxvjA9eVQPOHZi3kx+ZrQ+I374W6aACJRkTnSaK2CSs2DiW/z5gzrsREH3b/ivCpR98msTyfnms83NgdnASx9f54Ho7T0optwfVW30j6FtYGRAafdNIQYkRtiI1uHtA4kz0NXIWuc6b25pWnYgaNLiNThgwrH4581mzu7pufZDew== 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=0TGBiYRtId0jc/V7bsvUDbch4ADcYfty7vGiBhEKejg=; b=Y1yr4HV7AtHJra40bir+kHcoL6Fnn78BcI18HdGBB4Mo6eDc1+cPxB63GEPKafYLOB+cZ6Z6plDSBXVjj3rfVGOx6nq8t+SMMP/wKFamw2qW8hZklRHzpD1oT5mslMBpFJhystipiXCeQaI2nG5BaN872e7r1B5ISZzQ5uZ3llIJrOcaWP61BFX1l7fb8k1bJ4IxAeahO6imbUWcM3upQaerSFDTSJM3TFqD+6Lcp87izcFsBXFXxg8E+LfKPF+Ggn5hJPnC3Ru+UO6bRd3CB3ZgO4cOnBDEBLtIFNzvzjO1YsW+o//k6ZZMqyAIm0YE/jAuhcPcrPa10qBfaiHA4w== 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=0TGBiYRtId0jc/V7bsvUDbch4ADcYfty7vGiBhEKejg=; b=IEhmMoC9nQAbFc3goMY8lV7RCfnpnDkDvevwbQfi3BHu9Oqzu2jTbQmlXTXGQdhu/dhU2GNmLwJcTvNIkts7tIwyT4K07hVsRY2RBAPmC5xTTJ1Djkgx6dUxDSRtnICJEHGixRlKOG7yPdQ29LrrbKBUhmxDsImQVmaOXRUvqBY= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:42 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:41 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 05/18] xfsprogs: Fix double unlock in defer capture code Date: Fri, 20 May 2022 12:00:18 -0700 Message-Id: <20220520190031.2198236-6-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 284a9afc-c2e4-4a9a-502c-08da3a93079b X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KqXnjt830/lRvbxt8gFxtjhpiDejAN5my9WnHERMGSbOx++ReGmerydiyZrbjFvEAo/HO2/OSRh7BoJOKNjeDeBuxQcDLZ5J6VILbYME2DcSp5zJ8mh8x/wr3tkcnCuW0CRksEt2xXdmrd7jfjX3KR0YfSShleQZzinyB5JT//z87YwFDL5Vqb5itxitKqdS9C/J+Bop1hLLfbeEAg6gZ9vTDM86idfceLjZbj+K3ZWHNc7c+csL+Ce9JUxab0oIaatYQyNWxn/EF/BDbmcv/my8CSQ7zsAPUSnxpE5rCJ6dLp6TMWRk3DodkUgcBb+HcTbrghonhOLSg9Q/IR93ABw7vBH8ds/1lT5kYd95fw9GKHb1CwOpKc/7AqJAQpTSZwtwB7CS/C4T6dmUzEzi6DuB6+25a9KA7kqGF5BlLIcv5v1QFFXlaK1Ms/UpKizv6FapAAmuns98fePB2jMtHfciDVQyqXiEl41Q+QXI+AqnAu9/Ez95b0g9G+Ic5cSk3wlxx/6e9gj1dzlY2SBoHgP31PzRLpuDo5mK08rlOzViVFeGdqRkg15b1TOkRF8mwyhC9d7fVybx/jixvBZgSUwV+4FThP9XHNEPHh/09aRAP6LYy2z933DR+z42eQBY1/O9154LP8zCwwp8uRDCGKavleJr73G7KqleFOieB33HNqMTcHX2WiEkm3THQQui6aTldoV95UpQbqX5eJJnVQ== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: iGPeDeb90GhbMK5jWZ6tNHL7CyJtGBVTuKRnRfwEhQ9skuGZcGYXIKiZ7gelfoU5gloHuE/v8IpiWigcoEAQo0wFywl1vWabICbDy6ImfFrUDmnhx0LSY9UOJrjZ2P/w2sGZbiWNKuhBGqnYeNrlB/W3dX1fbIINFWTWGt8jQLuPyLp8094FXQZEFneLdDEoVD8KS/1oqkooF8sN95SWank1itnb6GhjlkyBtnYgSwa51It9S3q4lLqCpiwHSAH+LCeq2bNzDug58dL26OX61zj/+cgnsY4OvPftPYR0i2DNooMoF9HwJpm4VEBvRnzidvL4Cvm0sGSaJR282EH2p2iG7dgM62KGh6wXwGmF5XXpTaDAquKochKD7CEmQTbS/w8LtuQ7yYaglgHjFUUg3Vh4JTljnMtl401XIMTqtpiMpwjFvzBCmJ7+hfRmUM7IrYsoQlmeYZG5A8CyndjVwYKD9EU0F+rmF9LJyqmfRxL4QoNG4NnFoE9us/waKOR3ovtPCo4TAppdU45RiH5+m4ZGCFv/B2vnrM9bqP9DWmpiaJKPlMHSWBhpXqp/Pz43m4ZAb4AZ0B2eT+9tNBuFr7WdSsc7EKfrl36+dR3883WeJoV384q8THg2DqF5vf2djlNTHbeSDS9DiHRjqpG6+yySDLU694JXK04X2GHEWklkaaY0bfZiamcBOVr1vS8npLBgZwriBTO2kqi/iwyq+A3sidvjCVCXFSd7n33NkuGTj/lEVuL0Wu1yu0lLdnic9JrpLmDhioCr3eFS07ClyP2hS6LDBcybOF3x+CvqU58FW3BdYk17XsexSb+jyWQ2p1R5Lp6chH3guyPNNqehy6P4+bd9/D+cIjWNRplW6ubrVOcvJ3kQd+EpItZHgkvsqOhioQrT3BQKsWPLGOGTlB+C/GcfxvttCsFF+rdqQNSKXrhZwcRe6Zx2Fflxb8SV3jWVy33IALMbECmn4kgCXDOuscErN0iAugLCmzQHL7ydfpjGu4SHhyl5DKdEUT6zbHskTSOJWYvlv+gG5yrO5CicdX6g+YuLkM/pOGJpWd5lJCm65Yc1/kxYg6DqUYOtUnQkUUmr6i9+UPLWxvFlRRXcfar/aPqkqe1g6XIxpRnuQmUnHy1YzsxsXyX00I7EFKZzOe5GtVnUbjZCiu232z4zhg3rHrC3TSldpmEM6PLTFm5yQUK2XHTbBk5+2CjI/vy85t3gRXwkCOvBorhbp+Qwyl2xLor9CvtKtk4wyTgzMrZcoXTB6haAS3Re+v73MRNGKEfngHUHwl6ygsS6QxvSGuf3nykn2I77zHNLJnwMA6Bw+iR8Qpag1I8i7OPNkYnQeC5VzB9vsO29CKdEujkhFdBPHzaQmKrsbjcnMyMAqoSeF5DrywGVDiQZ/LTxypSS4/DzZJneWjbIiBJhoJFSbtK6o7Pcr6whxEhIo6gjXd+jCSk1aJjwooOSjqKExHEhIwVd2EUU+VPOH8Y43MmaM2N8P6pCdkQz5XNaHk9kLzvtmatm81igYZTg0OaDsU81maqvoH1lO8qf2MBwB8Li8pEDlYXUpKeIhnPmciiFeTXGeDA6XQ60XTIzNLu/TWZ9GWX7fdXbUa/Nno2hDdOeND3dZ4MrEAnsE+9aWekZmOfaf8AckhqqD5gWoDiZnppgDIYZXASPZRIYcpScRHNsppa/9QhA/9XwWIjYJxUKsnPBIbDtnb7D/XeV7kv1fhJqhKD32ZDrAtuCRQX5Ww3fyTMiMaRtU+qNYAsteXc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 284a9afc-c2e4-4a9a-502c-08da3a93079b X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:38.9506 (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: 7i/CHYwGxE6o966Lfu/faEPFOrMP9+MpLcnlOSo9npe3kedQ5cizDnDDuj3+B1ZBUDdoK256muobTbxtZV1kSa+s++1uxLBsUDt9AFdL5ww= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: YkW3_5EKBIIcUcl8ccqZTtxwY20g-v8P X-Proofpoint-ORIG-GUID: YkW3_5EKBIIcUcl8ccqZTtxwY20g-v8P Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: 7b3ec2b20e44f579c022ad62243aa18c04c6addc The new deferred attr patch set uncovered a double unlock in the recent port of the defer ops capture and continue code. During log recovery, we're allowed to hold buffers to a transaction that's being used to replay an intent item. When we capture the resources as part of scheduling a continuation of an intent chain, we call xfs_buf_hold to retain our reference to the buffer beyond the transaction commit, but we do /not/ call xfs_trans_bhold to maintain the buffer lock. This means that xfs_defer_ops_continue needs to relock the buffers before xfs_defer_restore_resources joins then tothe new transaction. Additionally, the buffers should not be passed back via the dres structure since they need to remain locked unlike the inodes. So simply set dr_bufs to zero after populating the dres structure. Signed-off-by: Darrick J. Wong Signed-off-by: Allison Henderson Reviewed-by: Chandan Babu R Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- libxfs/xfs_defer.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libxfs/xfs_defer.c b/libxfs/xfs_defer.c index d654a7d9af82..3a2576c14ee9 100644 --- a/libxfs/xfs_defer.c +++ b/libxfs/xfs_defer.c @@ -776,17 +776,25 @@ xfs_defer_ops_continue( struct xfs_trans *tp, struct xfs_defer_resources *dres) { + unsigned int i; + ASSERT(tp->t_flags & XFS_TRANS_PERM_LOG_RES); ASSERT(!(tp->t_flags & XFS_TRANS_DIRTY)); - /* Lock and join the captured inode to the new transaction. */ + /* Lock the captured resources to the new transaction. */ if (dfc->dfc_held.dr_inos == 2) xfs_lock_two_inodes(dfc->dfc_held.dr_ip[0], XFS_ILOCK_EXCL, dfc->dfc_held.dr_ip[1], XFS_ILOCK_EXCL); else if (dfc->dfc_held.dr_inos == 1) xfs_ilock(dfc->dfc_held.dr_ip[0], XFS_ILOCK_EXCL); + + for (i = 0; i < dfc->dfc_held.dr_bufs; i++) + pthread_mutex_lock(&dfc->dfc_held.dr_bp[i]->b_lock); + + /* Join the captured resources to the new transaction. */ xfs_defer_restore_resources(tp, &dfc->dfc_held); memcpy(dres, &dfc->dfc_held, sizeof(struct xfs_defer_resources)); + dres->dr_bufs = 0; /* Move captured dfops chain and state to the transaction. */ list_splice_init(&dfc->dfc_dfops, &tp->t_dfops); From patchwork Fri May 20 19:00:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857365 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9FE5BC433FE for ; Fri, 20 May 2022 19:00:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347982AbiETTAv (ORCPT ); Fri, 20 May 2022 15:00:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49176 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350003AbiETTAs (ORCPT ); Fri, 20 May 2022 15:00:48 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DE5CFD1 for ; Fri, 20 May 2022 12:00:45 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KFn6pO022606 for ; Fri, 20 May 2022 19:00:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=zifJD990rwJu33QYI4T4PvvdJtkr+k7+218gcEBuu/c=; b=FirI3OnmBZylsjPaoSl2bohaI8kog+i4zjqp/JbMMS4CyWECV4kaip2ojdt0QUDNpFBI 2ZAfUeVD+oSDkBwe67xTrUbyjwLLJkdgYmsBiGVv9SyFZTjCeHigQwrRwRdhJ6+HAS9D aRyAGBZ4g8ypgGVdPYzd9IVINSHu3c/MCO9aUPu8/6FhS1WeYFYaSx0+yp+zQpZOBacf yWe68B4VxBPhQHHLwkMxd5cErUGZXkiohueuTkot994nKoQRU6Chph83mSSd5VbZDX31 xM++24JqFOTeczOjc5A+n4db2Zo9g/UNRUHnhlSHPhOCM68lXTLwGNNNmwSK7IGB0ldh 3g== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g2310yw7y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:45 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIo9tw034597 for ; Fri, 20 May 2022 19:00:44 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2175.outbound.protection.outlook.com [104.47.58.175]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6mhfm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b+IF9GNEvbiqy0yy/JwMKV4lsnEg3T/nVrl8S3y+hXrpFSWstu5YNNsFVENE9whQ6jV+lJZUzb0wTqOuj2jI8vW4yj9ZPzlmAxfM4hWI6xyLzMNL3PUcaTrZI7RJb+5RiTLLebJaLIdFtiqyirVMRlpeNqVx7dogm6AoHe+2zzTHSXPQi4xwN8defw5IhdiwuZG8yOd7nWXx+z1gWPz9KIqFe3Pne7j154A09hH2UXKfaMtBfUTbhlQ09clSAxoW8QwfFNnUObu8vH02q8PcsDRvKkeMq+eQjSCoF36hknE6QU+DhP3OJNpGmNzfph/GK8M9j1bTrlKphRrJJjJUlg== 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=zifJD990rwJu33QYI4T4PvvdJtkr+k7+218gcEBuu/c=; b=Dc/m9iG7HKgMr6mvdXYHHh9hGS/SoSxoha8lUZDwC0ZHG9VmC7zhhQyUKOI9k3y+UMfIT/S9u7724MBfQvmxc1esq8DQ/iuQUyw10oIDtWJ/mjg0MW2nkyY8uQyULHKQTESZV42sZsmpPBb2e6+ZmEUaNz7lrlOKr2AHfCn3lyuBAx2KsTyLcnY2tm3aG4VWCnoHT2iXK58U7exccbXa1zRY1wCCFLWeF1JxuDUeMMSnMNYkJOnIGXqb+SuRAXAxW8sYGJe7izNo8W6hLMAhX5NuzpxaYukSiu2to9DQ6qWKrlFSzeLfPY2E0JofvZz7VlCUw1X72szU15yAZBuddA== 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=zifJD990rwJu33QYI4T4PvvdJtkr+k7+218gcEBuu/c=; b=qrxLdEBdzCnGnuiJ8LMNc2zOPS9+lh7x0y5YHRHpHXGntFfAiH1zJGRjXqKfgG2ZopFsUETRFQmGi/pnhXvf4sw55O4GhwEKJFossv41FN+LWdbgpeLI/qgNHNktDX0unrXtv037judnE1OdLW5W0OPJLtkUAivKA33k/3jrA9Q= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BYAPR10MB3399.namprd10.prod.outlook.com (2603:10b6:a03:15b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.18; Fri, 20 May 2022 19:00:42 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:42 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 06/18] xfsprogs: Return from xfs_attr_set_iter if there are no more rmtblks to process Date: Fri, 20 May 2022 12:00:19 -0700 Message-Id: <20220520190031.2198236-7-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b144af67-82d2-4a14-3886-08da3a9307c6 X-MS-TrafficTypeDiagnostic: BYAPR10MB3399:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: L1GTWMwLGajzwA31nr1KZnL19jdbQzxRWcNwipiev69vk+aKPK4sCZc3sRsVJUcgsQ+/aFL1dJyAi4nuT+FcHkcbrty2Is8/W30ifiej2JC0PpmAGnH9YKdbY/Y4l70CDoYQW+oMBQSdW3CWPaDoctxUWn6lbTZZPhqOHC5fA7PcE9MfuTOWD2p7lIVNHrQRBFgT9HkPobJ43/S1Yp6mTY4z0ylp7HqUKo9wvgy/jHBM2lL5LrkvGOmewOALxvfoCQQH5uKZRdj8DYpQKl6TkKwGLmtCux0bHbZ6CUvaFb1YQSd227L3XvIhMhVmCDduj1B7IA8QigUTGkXWFSO8STpWrJR4EFMwl1SjrNR2YYdF6HIgT+KShO1Usiwjk20eByl9ecgG5D6JvMbBzoaqkqO7IeZrW1l3qw3Rz1XWAXjW87msX8LkD6gPMsfL0wQSzgiQJWsj6/LC6jymTrDSPS2Vq92cCxet8Nf1TPTUp0JFXCgf76n/sI7Dbl/hedjTm9U/+n5RRfgj1MrXC+ZvIqDgvM+0Uq1KjEqTYaxKymrA4TkA5sIpbmc/gQ7WZYtJebyDEP9ZyByc8L33pbZJ+hTVgaF+F4QnaGX7LL5IQTc4CCTuWszIIo2csYPfoq/5GoQs0VJEjxPfddRx4Ct/JfzHOj0OkixOXfYpC0bax5RIQJ7Tw7JO8jeaOO4PVoukrEY5Cxhyb/a7i96/2AqH88MJnODuwnzrXQd69qNeF59E9Dkt7VhUFaLcVC76NoRmUSuGun0F5SE60jiuQivZKM9xAZAphFCvOuoIewfX7eE= 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:(13230001)(366004)(2616005)(86362001)(6666004)(66556008)(1076003)(2906002)(66476007)(83380400001)(52116002)(26005)(6916009)(316002)(36756003)(6512007)(6506007)(66946007)(6486002)(8936002)(38100700002)(38350700002)(5660300002)(186003)(8676002)(508600001)(44832011)(29513003)(40753002)(133343001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: W69NKBiZf3ogxRGPMKg872a+DUvL0r26zjy2Pml5tcYQ4KbUsQOVkOsi5/9RLLLRGKBq/yuHWkn8jOWYvjtBh6WZRxJvoK5l3BvvWF2yvllVLJLIKjhqzXBnVAfNPGU+2Xu0xj+lwqwCtwEXz3Ry/PPO+msq5RZjQBrueeBUa02Nzq7jKoD7z2kuqpVs+Q6bjzW2Zp6ZVu69J0yvn5TigUhvDJpBbB6pz3vxj6+cABr53whoRQDcNTvEW1YTV1BWjctNq50fIHDqQRNwUOf+Me6bKvMykeIYBX3B2xlHYTUiw+XlCo46p32C/lEwojaP8bbGs1Bg+KSVVHiFHd5vRvnzf7SrFYKzNUkL6LNI5I6gg4TDra0Z+vHUKZQWyNaEg1HHyRd5njw3G4Wk7Bbxv0PAcq/wamHfWTnAuga7kg6bz7vXaiCjYVvS0zRIEwKYDt3okE9l1Yu90WsjbCEcpJodDlkCMG7w7rADfxGgy/j/HzqpR/AnoZan1NXork6dvQ/Xsaerdp3HXA1fj5UzZVjaz/WWPbhllK7cXP89uZWbvrzrng0zh5b0HokTPeqvYtIC3neIboiqVRJi5BxENkvSwUTurF23lsNU54tG3k6FWGYOAJAIf62fw0VeWlbcah0WrlZYiGkg9Wy5wXnlu0dsjPHOIxq+74Yb/k3M056G5bJlh+QsxOE2Lih79U6GoGt+3tMtVWppf0s9xrSKsK0TZlNKQNhEuUn05wi3/ZDooz4rLYGnSd2Dj+92idzMUumgC78Ysefx2z5ipsxE+NL0C5bIgvV3ZXJKjh5wW8MgmEaMIfwKPa1kccKvl9kf4aau6LJ6m09DZjuoMeC3SWZA0YENEpS2GWbdN1Ler1zwAdxAiRUDaf9mOJnv8AFHf7TGldqE3jyIg17XaUX23ia1/lua+aPOsml+sXC17Jj7YJQ5kq2DSGa0BoowtKJzA7JJq+kw567SiCHI6Dunzoo7UM5gR+ITxPcDVxoL7iGr2RKDG2aEyzdQ838Je0y9q14I5TkCKf0pK5qUCau/x0ggmZljjpentJ81Uuxc3lYV/aXgCVOrvWbXDxLZwsTn7z3gx6l+L8ZuzL4CcQy1Qoqs/4Xjm4BgBvShC7UnIUMxZhMwvu2DI25SVxibilIxnIFjaeviviHj34jdYZE1xQ8BDo3cyL8er0U2S9q0gAcG0lITFoMJuljSxXoQ4toEIB4wQ2Lg8w/r4vwr7773uAxj6mSUggTjk2jwu4W2CyQHyPUmyp/u8VBIv7s1MOWDrH9zGtbLod4gYahdhC7pWHeFB+m9hwkZT5XJ9w1iLT1wL642o8KftBB/+XXhyz7wX4M164/FSXp+Ha5AsIUmk1tK5J4tL7dxPw+0FCrb+RenE3iyj3hMEZrhm8RNl96EcSM0AY2NeBWD7VHInzSXfzHBoLmXf/i3Ul/1MwB1qc5N9/0L4Ymo2NOkPyERPZc1fdBSXzvi42fqqykLN/Z3gWiWlI49EMw8qsI5JEnR++UH7UGXcFKy1vcjSmtnk9/nWwlb9LemGexmFbtu9xL/oitzm0DhT5VQfzQCIGtRuyrJODwuzeznEQqHqER8YpwPZeDyh7YzJIti+zCb30N+HBmTT0gaNi5pDSV2agoFCMhGnZjKDzmsRAQkwdpVktGHs1TPyjxxDAIPHkbXIhhwHf9+0Y/o9V/dDN4st/vKoOMLgI1nc7DXWt7Eq535iQJqGqAVdk+uayl4cea+wbZYTeoYmsVhsVrxcdU6E4XwXZM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b144af67-82d2-4a14-3886-08da3a9307c6 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:39.2474 (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: Zc6vl/eIvHU6KmfRW63aT5TYofVVF8bP7ScMQF9K2iwRlmCOLxhEUlDxCyKaZEg1LAxK0w2uB1T8uUS69CX0VkeKwAl/3xCfsrjKQ/WCTzI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3399 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-ORIG-GUID: 95EWSkZ6-xLnMZwPYsLHWc6uS-xnsmme X-Proofpoint-GUID: 95EWSkZ6-xLnMZwPYsLHWc6uS-xnsmme Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: 9a39cdabc172ef2de3f21a34e73cdc1d02338d79 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 Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- libxfs/xfs_attr.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 9a9da4594d11..b6f6e1c10da8 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 Fri May 20 19:00:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857368 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E8F55C433EF for ; Fri, 20 May 2022 19:00:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353035AbiETTAz (ORCPT ); Fri, 20 May 2022 15:00:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49292 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350692AbiETTAu (ORCPT ); Fri, 20 May 2022 15:00:50 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8807A5F41 for ; Fri, 20 May 2022 12:00:47 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KIcLTM010504 for ; Fri, 20 May 2022 19:00:46 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=StN2S1R96t/opID45ShRFjfTkZMAOuSfKFoC3sthyYs=; b=DmFQsGBW1QhGZT0XvkBuXtEHhWQn6NdgwzBLmmadkEdN8+an5wjfI8fYpPLWZV9ua6J/ YY8MznUxAwVuapE7eZxFMf4qLgFhuR5l+zXUfvq/l4z4eGl7dEZ2zfBswUDYJdwrXmm2 awcATpAWFBnbTDep68lzqqetAXp7WljuXQflgfGywfBTb8e9EyKXx+GvEFtlwV7xynZZ 6N4BGL8uwLdKSK3hCgz29nsIOxK+PE/imiwVaAnn5QHiiU/SFOmoN/+j/2jFfn2rgRav Jt4Z0eu3BxQ0ecqLjFhS3ADA0RNffsdv+giEOV2aIJNwu0LiwZ6lImGyfPzmnDWr3Yyq Ug== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g241sfvp7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:46 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIo9tx034597 for ; Fri, 20 May 2022 19:00:45 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2175.outbound.protection.outlook.com [104.47.58.175]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6mhfm-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Gedwz0GKt8hVi4IzEhqxpytDvavXk/rOHvF61Dik4slhywqPgAgvjoNWpfh55HfM4IoWx+/bH+1YUaGXVxz9fV9/Ez1BxLHRnda9jaESSwoHdoS/yysaYBh7pXfOJxUcw1PllobXNvgR2IElmugmdCYQglAV1SRYHJHwNXvWy5NAxtHNNLotmQAOVocLfZGrCq75SJ2RNU+qNqoyAbSHnG8TdLzT28qRhMno7fn/cI9zBLhnNRxrRTcLVRjgtZAwERbJTQoqhmeHTL+U0w+zyFeyKy9T7fPulVQATEPC8NNibUGA/ajX0w6tDijCXQCM1YXIONOcOjm1MMB6Qcl8Xw== 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=StN2S1R96t/opID45ShRFjfTkZMAOuSfKFoC3sthyYs=; b=clmuovC8bxgIoFg7r7agEivmajY39b8Q4g6ZLVwdaLEnv2tYLtDW2UC3lIj8ca4u9ksH0G1WLEnzjVpEq0cELbdJg7mpoeIQ8dh1LAezU+8MWL243XZ57jiM5aWBW2Rdt5BjIXcsUi//AJDphNmEviX3rKsF9PG0hDIYjf2UhAv1DdGaUIMMWLT48mp0WnnukDolu28+HdsQE5NIY/AXT9kWP09aTj8+Zby19oS2MYG5jQGHvlMyHOgj/Itd5vXm6C7MYG6iCymBCKVpyGwKorcIq4nwUjhcyWh4qgZicSezIFNc+9DkYnTnuabhCxzBGnv4/yy9wuWKsz3za73faw== 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=StN2S1R96t/opID45ShRFjfTkZMAOuSfKFoC3sthyYs=; b=DQSJ94P8kP+GuRjh/KSdpJeDpmun+8FfE3JlPSzSi8++C0f2dquYp4murLkw1Q0gIaRizjBHMNIveJKV5bgMQ19RoSWohdcB0YoZrT7qEOswcjsw7pwsL9OUfm61ooZBR4d22aLx38i9+xA97NwV4onqcuPF1Zg7I71rLhzffus= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BYAPR10MB3399.namprd10.prod.outlook.com (2603:10b6:a03:15b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.18; Fri, 20 May 2022 19:00:43 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:43 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 07/18] xfsprogs: Set up infrastructure for log attribute replay Date: Fri, 20 May 2022 12:00:20 -0700 Message-Id: <20220520190031.2198236-8-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6501f035-5557-405d-20df-08da3a9307f1 X-MS-TrafficTypeDiagnostic: BYAPR10MB3399:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7jxD+mWtcstPkj7kW3oueOVJbOcy/3MQMxyrm8efuw8P1PO8V1vK/WU3QJYKSPmIvD2GKJf0VhOZnRNka4c94qiOMmwhyefSYpShaLi8teG6zfGyKGq1i7EPuQObmX3FaIEJiq42yhQfXy6mqRGEsUua3XyZW8GXKcZ7A95bdgnW3Qg0ccESHyJ/PCK2NSKV1mZRjJYpfOWsv1/V+JUU3X41zYf49f7j1jtl+XnX3xRteTtFBI7RR+ypE0sTedWnDDji+x+dEuQoyZ//d3+Zec2kwouq/WDAnEVM663Mhu6Vu2E0jVY8u1boBVl+FWbKk5cHiBaNdjSD5yLLhtlv5zLrGSK7XMNB8s9GOAMXNT0JhdPCdeb57TlnHIZeB6eMjg3dpEszzw9AaMzfTsYGrZIkSD6vBoXDcpnQVgIza6iNCwODeraRQLgDYViIioUyLbDnBS2T2xnp/3F/qpXCki/LtMxJ6hELt8dGbMbzNbxTIfPw5fNQTV+/HfYQIGPyPJqB4YvmB/tGgvE5SYJH+W+rJiwuUaZ+fnb6vQBUQSf4c5xjaUul12lNMGw16go380jwoj9VARuHCjfVI7EcfFUaYE/D2L9/yk0xJlJ6zqwC5q5npfzlasV/t8pcCPaZE5y/eDRqzfkaExFkGJbltDvtqHV7tIFeLZyDG8Clq+J98EJgR1js7dVaBr81Hhm+MsLA5VRCHmfTdvB3QkQ5Ww== 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:(13230001)(366004)(2616005)(86362001)(6666004)(66556008)(1076003)(2906002)(66476007)(83380400001)(52116002)(26005)(6916009)(316002)(36756003)(6512007)(6506007)(66946007)(6486002)(8936002)(38100700002)(38350700002)(5660300002)(186003)(8676002)(508600001)(44832011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9xsYNpqv3jyDOsFHxKrRi8z3CzhTV+esUTMX+7oKVdWFFMBQQ2ckBGZJTWL+Dr/PRxh4XtKTAmcFJy9RcUgvF51mEH7aJVnNsHYLhjl+y4lO4XQMvzUD4sMZfTcHcsCc+W+FQ8fhwGqxfJk2/FLBOvn1qYL9Hk8KrS3+RgVItpkUyyns+dYAgi10XgS5AIj1OmYhEltMDSNj6J715Nqd4F8IvFoNblpUWDvAbVdOnr0/Kby+V99oJdm5baI63dKMyX0XuHImKzFxsQoY6UC2QWKd7dUvnIpLaBMcBPSXO1XgRyfFOjdAlpfmX5+Wk6Rkhw+HThufpy/MVeYoUxk8vTXIdO8X02QRQ0MKg5NoZgN4NFLvwPqiVk51dW6d9/tttYLbW+gqqdcU7iWxuoxJMEgriK5LZXbhz6dORBEl8QgjqaP1o4BrKg/9fJGasE03L3jm1Vv2TQ/2kuLD1chvIe8SUU2kDyvH2qADK69RQvgpJHmIF3/1PGG+nU7ea/vBMDlf3Hf09dlmS0QJUz2SGBrkdYRREhiv0Rhxzp87ah4C52SV4Klp/azn4eBy+BCd6DAFsr3rZ2RnoBkQd4xVvtIfVwdh0PaTeeh9c6s1jWsTW+5TYIUgXhx8AI/n/zc0pu/60P9PWOjJ9foI94BUiVaE6EF0qE1HvSkxPzaFe9aljAhisrYdtObcbkpZGVh0SCa4a3O+XK+vdk3Ur3Betcge9TGG/7bcSVxqSQd/TkuzAANeqYbtkKZ/aWSOYJUzvtIxt+c/tgCZQ4ArdXYOcAz03L33bsHuZNgBOMwGy932TA9CjECmAZX56mJtT71jEj07FXN9afV5FzbnWbNJfgWGaznWOcMaS5dsRK2VQSzkJxDAlk6PNDudHE1lfpVz9ZWYD4NtsYzvT3XRb8V88TNN5cVHKjHd67g86MS+0DvTslx99gXoVVpykNbOMmABc60IakigePWl0iRKvQR17vBs887CyrqBVYNXfisQA8Wl9SFru49IKC3y6yKK1GcwRe6D24GLpCkMmQPO34vfkNObRcmVZdUFBYuLL8HG/vg9T8fFv2FkmFU0869IYH2aPHiHFMO9IWCkx1vv2g9T/40NCqbi4IjtPgw9EdK3vq3odWsppDJTcfxdUNP1RebugBLSTprVSd594ZBpySyHYbSVHg2DauYtpm7JMsFMtc/L5C+X7AyBu2JwakV06jTgpHwI+yvkiFKWEx0HJkHqBRSsEfV2OGCcd4CxY1blYsDDPtZTznfzRpyFNtzFxPZtz4Q6PF7C07wwo8K+PeJ5msrRGbKVAnw2IrbQ3Jf/2lmu4y29bQvLuPMVKh4spBWqVUR67IEje+bAeY7X2L4pNBzZA0fZzjAWOj4BgENSdW/J5knPDd4TtGB3kdkYC9e+igGwMg7n2yoeVVbyI+cDXEYwMlitYGN9i+tFv8uqeoCMM6VKNxAL5wEBrWz+I3IhIxCIXxzQZgd9qy0eDcYeFfnO7Tv+9a6HxPDlNfwD8F+r+DHhLCjIIuf6p1AmBipLE60VgFsjLjwMDflfHcn0Nv/56HSLF3ENmJVz8L6Ay1vIQYDiOztF8oZ0BrnPpTB7x/WVWBCnDmPe6SOZktNuIWSNX0jwuQK06ISfgqfZMIOw4QyDY0JeUtGJ5I4oFGcD0xJJe7eEkrH9MYsPYtumEtd1RpgyzalNh304cRaNVksLTSUVEpIodNq6gs2sHgxd+tkV4ci0GHGRSfJr17d1Yaf/lZVtS7/nMBBlsBToodE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6501f035-5557-405d-20df-08da3a9307f1 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:39.5286 (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: ie2rOSKu7Bz3RhC0lKoz3QpPbJKAPMes32oKGJY9KFdD75HxQzWAYCZvXusDZQZjAOV34F6yflJnzYcW61hQWyrq5gn7QfnWH1Aif5uFZjI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3399 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: TgFBmcDwX0q1Mi3WYdzDtW6OIFXbhkCU X-Proofpoint-ORIG-GUID: TgFBmcDwX0q1Mi3WYdzDtW6OIFXbhkCU Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: fd920008784ead369e79c2be2f8d9cc736e306ca 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. [dchinner: added extra little bits needed for intent whiteouts] Signed-off-by: Allison Henderson Reviewed-by: Chandan Babu R Reviewed-by: Darrick J. Wong Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- 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 | 44 +++++++++++++++++++++++++++++++++++++++-- 5 files changed, 77 insertions(+), 5 deletions(-) diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index bd6ace1c4e61..1337fa5fa457 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 b6f6e1c10da8..76895d3329f8 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 5e71f719bdd5..b8897f0dd810 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,10 +517,13 @@ 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_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 7bb8a31ad65b..c3a540345fae 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; /* * Deferred operation item relogging limits. diff --git a/libxfs/xfs_log_format.h b/libxfs/xfs_log_format.h index b322db523d65..cb3a88d80b4a 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,10 @@ 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 +878,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 Fri May 20 19:00:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857369 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 89AE7C433FE for ; Fri, 20 May 2022 19:00:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353152AbiETTA4 (ORCPT ); Fri, 20 May 2022 15:00:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353103AbiETTAu (ORCPT ); Fri, 20 May 2022 15:00:50 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 966B87672 for ; Fri, 20 May 2022 12:00:48 -0700 (PDT) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KIss0P004411 for ; Fri, 20 May 2022 19:00:47 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=3NZpY3pi5BuM4KLKpJUyhxNZ6mc1ffUqXtU0mDVV0CQ=; b=wGIghTMPKmEHV7p8s6vZr5yzlQUSQP14Ekw2B3VkQO4xLPvO1I8Pt9y52j5ybZ7KejLu 27QgnPZ1e93K/HrQpWOa8c2CBoCijTZa5J1Y+wNMr2xjBpVyqVWGhT524NV6PKo1pFkG CYb+YflXLNFANjAz/tsBPI9Q+XixQTBc9rffQpwLRFs3OBIUutnYeGGgNQ1z0DJmXDXk YBkYMs01ZM2DthLnRe7CFWr3zZPNR2amvY1488lmjS9/eeH01qYcZAymKrveyd/piAt1 5ziaU89EgK8nh0p3SaT8ts+NEjEvFRONJ3fRB7Wv5WjCAHtGnSV51XkOSGx7pcutNEmg JA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g22ucfe3v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:47 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIo9u1034597 for ; Fri, 20 May 2022 19:00:46 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2175.outbound.protection.outlook.com [104.47.58.175]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6mhfm-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bkSlZF9U7WDA1Lq9iuYALPB/vXZujPt95fP+jQsano6CvxahQCrnIyIc+NI+TxRcCnsOuGz6IQz7VS2KaZZv1KOxU7IveHlWjZozGsbxgmH6Kfg39QZ0lhLJHRzi27de4uXcBR277QeVCro8N1Whi/tTby547dA8OogGaL/Tf8mp/CR8OE/z1VCGCloDYegqi2SVfcDeH1Gc7W3CPhFDeYacZ7SvYTdrEwmNTNwcamPAK/YyDMunZAoBjsBQbqwCgbsFudosV/igTelCqYOKOfssLhnve6OIzzw2HWTtqw1Y2/S/rtoOABXoGYmWDId7SwIv7Av6mzTl/DpgWHo4ow== 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=3NZpY3pi5BuM4KLKpJUyhxNZ6mc1ffUqXtU0mDVV0CQ=; b=BdS5AA2nggPG6O8GY40bTZp8h6UnF7Zl6BIioLSywdSKv3HbAnDyh9pAz+eWTefKftfXICQlZ3AXT0/BIs4AYUGQvrwZYS2T+F/JvDhW2VhxClcHCp1QQVYowZLtjmwrCejv07Xc4dxVSnvmKqjgdpEnYne4cY7dv0iFMnXZO1Y88TwlfBjZIP7ouMzhY5nZyUKvro/qqHjtT4jTm+1JxEiXdTpSZntafVqQk50nTYSyUuLg5XOjvUsVBFPxCUUeotBbTHvfWJHJKAu3RtcK3oTeMhrnVjXsaWOHUN2T8Vzv09mZm7buwYn4OgXiEmKEx6Klis70pEiWt8HjF9YSZA== 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=3NZpY3pi5BuM4KLKpJUyhxNZ6mc1ffUqXtU0mDVV0CQ=; b=OsRJPK9CqrMahhzBtb6EO4BXdmcnIjfbgs4Gf8bqZFnigvqJx+xPKJv9VYSIJo/shLfQPDAs/HZk/OioJd1VmKvpu2O02gdw5Qhm/vXgju69Y5UGFF9yVXklv95N72ybEIPtKFqMppa+4811cC52A/GBb6/hIKpFdo3KpZu2euk= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BYAPR10MB3399.namprd10.prod.outlook.com (2603:10b6:a03:15b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.18; Fri, 20 May 2022 19:00:43 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:43 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 08/18] xfsprogs: Implement attr logging and replay Date: Fri, 20 May 2022 12:00:21 -0700 Message-Id: <20220520190031.2198236-9-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cb616f53-115c-46a7-6b92-08da3a93081e X-MS-TrafficTypeDiagnostic: BYAPR10MB3399:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: shmpJc7M0rVN/+cIPLTCUuW0PoOszJ0DDCiSoPs6x1gvZFVKCH7/cFNIhNSBUhTUMrE+xmxtMPuXbsyRd5bc49bldM6AAs5GiEDT7TM4qPrEmwrF5IqpTJZccOeQDS8bYuX4cHw4rLitZEDnK7dqTwOKK/Obwx4CzcdfTZyKLmlvoOtl3vpgBfPwpliw8QtkZb6eHgEW7MkcF4U9l3BYDB/hgrpQ88GhOu/UdPbZqC0ZEUQ2CQm4Uy6ny554nIwBV6BsNyvH218OrtIFxuuKzd3cXMKy6tGW5aipPQByCSGFxr3zcSra2PBXRm/POkX0UwpYjdCds0oVckbMSGXDf8EgeNST2Iw6ZFydhTEqupm8H3i7I3b789wYvBEE7Y+c4bLEwArZFP5rN/YmKa7GKXdFK6lWHRp9Gkhpb70falPo0AfRklEwsSRaXBVku0UR9yK+6lrpbTBjeZICL7N27f3GeBcWD/Z+m7DXcMlO3GQgfRMvi290M7M2O62Hcc3aEzq9q2ZvY0wDahjPOD9//xRAVbhOZV4tK3vc+/EWKg2x4cK72iDxCSr2q/nmrdshO15LDWXQj8sr7nMDZCCHB6vOo+o+mxFZgEhSQ+sh+KejyyKegnUOwzhSG3KTuzBnDZ2CWTFirMX9BmsPcKX+PAwIRPZyFHDX8LSb6mHRwcvTr9z0Z9EHlFG4S2VdZs2CSq2njwlNsVgzl5E1rFAxlw== 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:(13230001)(366004)(2616005)(86362001)(6666004)(66556008)(1076003)(2906002)(66476007)(83380400001)(52116002)(26005)(6916009)(316002)(36756003)(6512007)(6506007)(66946007)(6486002)(8936002)(38100700002)(38350700002)(5660300002)(186003)(8676002)(508600001)(44832011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ddGp4snej5pP13fufk+Jnpo/5m/Q9OCr0wUByd1HLqLnC3b3/93sybf/+t8SfsHrFbh2WU40jVogtwBByFlDfZuiwC/naVkAPODUToJc1GsLCabEWZrfHVDhvFUwcKWPtSAjAzBOqnJwO6+gnqB6p8zAkJyFC1sXoSEBIlJWNwNXG+QQA31EcM39uFJdz/sIwP4rL187B1Czl+zKwnovY58UJRE8EzmxzAcISyivHGhiNEml1vpJOPmGnmmMTCmbojgdACKx3ZpOxPtgJXPA53iB3DtKa8MGxrAWim6qqOiaC27rxePNrUWRb4OAWryh93jvyhgirgQedgGVHRe9T2i+x4PdwwP6uFa7KIoNrjqLme3BdJjaUr6RooThAkDXTsK4J6cK2acr1ORkcn0DMsrIAO3s0VtizwcqFCDrlVWb2p0T6AS5fv6BZxKBpmww9rj3cieF8LbhneQE6TjacUbhGhBCOrzVnhdRC68RpZQmHGepuLUXSDhhs7jIu2uKZD4lGfjorQkrLYuc5v2EFAc2cWHSPZ2F90nCoHblk1wLYmhtitS8abfH8wuMBpfQrLxBifMRP+TtlB9fDYUhPj4dxhb7XbML1Gi5+XmvPYqtiVFMAMT/+SZxM0JVULx4M6VqfuDVGbRkrxpZ6U1Xf/NyEnKCZlEPhgCDcZbCtU05C/4zabvhxraOBgHCnaFfWq0BnWZvG7900nwRE7eiQEgzUv+XdTIRCpmGwDok4TPHhGdhGSDjDQmZ9JIJ3QbeROOgv9Cpq0ClkqlnVAxFzApqQO5j9jjmXHBPRkQpL7eWCa1ru/odpl2fry21T6yEtmpQoIEhTnzYmnlijjXTMXg7veCcrCWzPxDcV/XkRG2QX1vgB7L8TsfZSJtPf18Ntufy8R59cFBAFPDUhcJa/kIlbTPqTXAUhdLoHekU2Lai8ZCNicSFJ0mj8r2Hs91z8DfmZJy6rkKkXYI5yWWGkUFVngxitZYCbxE8btVubxEpcSYmmL679sGCewj3/7SbTCbcQJqIu0KhKPn1mDFZM3OpShF20NZk7xDhsUFZ4s3eKRjZT+8hrraP3TBGT8jc1DgDXJ2pPeDv8vlwrFjcFfSU//gt80Hiw5HRj+nFx8cb7Wy2CPF+N4xDqd3H0o4gvMMSBsqULU+XkuHi2yWt4j5R5wVxL6eMtMfmd1AxJrk2kXsLZtRACefYQndiM+Nxwc0C7u49wPJdsKyx7LPlgHDheaBoyQ/yOYTjYQWUfuzZtv4JQo0AvK8VrZDn7cvLCFOKjFInZK6s83wimBM+s8kDdqjUHwQkAPf/9eXCr3V+32iNwFenEiIzTihHSoG/p/NKr2+aIVy9lHMBUte5rP/GOzo1b7WycLJddhIlObcWT9s2js4z3A24zrsO6qdGO8ls50TLbQH+6i2vJ6Yf4yW3vsOLeWIkUV/6FtRUwOgpEwNp1C7DL8/1xYewScO9g5+PoZLVrsyLdxSoXUKd04t2tyFfKNH2fklT5yS6JGCbFEUr4H88BZYMTZmQpJRK0f0JgyjTDKzSZLASFcSkvGLyxEsk/lZx+0Jo/KIdRap2htDFNRzXfh8iZ24jmlGHRlhgbHscyhW+zW4/m6+M2+KdgBy8JOajCu2y9CFCZqAtuw6sPd46DZ30lJxXD1aUGm4JAmX54d7Nt9yalLLz23v4m9g/I1iwo7/myAbHpfCOW2O4RMs683BVrG1/MiMPmKlZArJCKoTjADZp9wrIYe2pjthnbfH1CNyeK6L/8yw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: cb616f53-115c-46a7-6b92-08da3a93081e X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:39.7942 (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: vMf6xT7scMKxmxNU1z/w1IlbG+j8GqEHSMkoRoxC4cIfWMvD07INgWXiLCiHktXjJk2/G2/JNrxpfTmMqNo82Hi02ZGRlv6C6+TmVpmA2Po= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3399 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: i753x0nUqsEXfuVFbBDU1o4a7t-taicn X-Proofpoint-ORIG-GUID: i753x0nUqsEXfuVFbBDU1o4a7t-taicn Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: 1d08e11d04d293cb7006d1c8641be1fdd8a8e397 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 Reviewed-by: Darrick J. Wong Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- libxfs/defer_item.c | 92 +++++++++++++++++++++++++++++++++++++++++++++ libxfs/xfs_defer.c | 1 + libxfs/xfs_defer.h | 1 + libxfs/xfs_format.h | 9 ++++- 4 files changed, 102 insertions(+), 1 deletion(-) diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index 1337fa5fa457..be2a9903701f 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -120,6 +120,98 @@ const struct xfs_defer_op_type xfs_extent_free_defer_type = { .cancel_item = xfs_extent_free_cancel_item, }; +/* 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; + struct xfs_da_args *args; + unsigned int op; + + attr = container_of(item, struct xfs_attr_item, xattri_list); + dac = &attr->xattri_dac; + args = dac->da_args; + op = attr->xattri_op_flags & XFS_ATTR_OP_FLAGS_TYPE_MASK; + + /* + * Always reset trans after EAGAIN cycle + * since the transaction is new + */ + args->trans = tp; + + switch (op) { + case XFS_ATTR_OP_FLAGS_SET: + error = xfs_attr_set_iter(dac, &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; + } + + 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 3a2576c14ee9..259ae39f90b5 100644 --- a/libxfs/xfs_defer.c +++ b/libxfs/xfs_defer.c @@ -180,6 +180,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 c3a540345fae..f18494c0d791 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 d665c04e69dd..302b50bc5830 100644 --- a/libxfs/xfs_format.h +++ b/libxfs/xfs_format.h @@ -388,7 +388,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( @@ -413,6 +415,11 @@ xfs_sb_add_incompat_log_features( sbp->sb_features_log_incompat |= features; } +static inline bool xfs_sb_version_haslogxattrs(struct xfs_sb *sbp) +{ + return xfs_sb_is_v5(sbp) && (sbp->sb_features_log_incompat & + XFS_SB_FEAT_INCOMPAT_LOG_XATTRS); +} static inline bool xfs_is_quota_inode(struct xfs_sb *sbp, xfs_ino_t ino) From patchwork Fri May 20 19:00:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857371 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B9358C433EF for ; Fri, 20 May 2022 19:01:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353103AbiETTA6 (ORCPT ); Fri, 20 May 2022 15:00:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49308 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353081AbiETTAu (ORCPT ); Fri, 20 May 2022 15:00:50 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DDAC65F7F for ; Fri, 20 May 2022 12:00:47 -0700 (PDT) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KIeRZP022596 for ; Fri, 20 May 2022 19:00:47 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=jpxF76nxvQZdedYr7G37ei0LDFcicP8s7io+/7W3fDQ=; b=vuuKCU6hI/QLFcolwQUajxpWtnx9YLIgBTBIkZMUxkfDi14q7zzokintpC2CJM0SdYeT x9zJPH66A+mRtaUzoz6igBNOVWxK8856jAod+68FGkePSvY1AQ+UyoRoNetv042VMeUg WQ23uLivDO3RXQqBN7/xJgzmllyunSuroUFwV3CgKlS5qgp7uPsW9Y5zAaQkGrVZ1NBH sqS1YDpfSbfFqSGFXa6HcGYQOFtC25KJswuXInz7+pLqmrvEaBp9SuhZDit2w56FZu8a HOGK0xiRqkmG4IvWR1VRiw532dSzhMOkZwOWO6TQp+mJqOfLsHAbaAPczdHk2Ew7WHd1 /A== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g24ytyx85-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:47 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIo9u2034597 for ; Fri, 20 May 2022 19:00:46 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2175.outbound.protection.outlook.com [104.47.58.175]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6mhfm-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k2bulwUFfOjTvGeDKWh5MjXz0dJkD0Up5ObWJSeTa1/Dw0aeRr5denZtKLOHuhevwBViSuBbPTOUufUTD88p9VMYgBA60wrVIPOApObG63UC7vOpwlMnBkfzvODfORpJ5S8eFeL05jlADt2IZqt9vGZ9SEFB2u7Qmo0XngQKAO/BX+xpUIe5JQXT7tuh99RogYIhLj4bz93KaG/CqfaIJkN1NdrP1QaME7RfHyfk3Vcda4IY8NsBhck8DKMouTKZ1WnATCFLfMMtPv3lnrj+MfQEpd7xc2BVrDx/bQDguLGcTEp4kVjMEzXztb/CIlO9udXUmFL1lNj9lDi16q0jng== 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=jpxF76nxvQZdedYr7G37ei0LDFcicP8s7io+/7W3fDQ=; b=Eg25jhwMc1gPONoHoa8gVOuo7XIpJph8J9jp7HmE7NLXrF2nIWTbffRWMGmFHz5Ka+H2p5VlLyiEnwhjv2uHuCbKGOufhQvzQoBkmcZAFN8OQbBWHiEbCRj+ZBZCx8P3z7atwa1ue58cE9e7rBucVyTBQS/uRFRWeJKIstPD7pClTqOD+qtCxffmFc/Z2vVf+zcJhLmV36GPqX8+AweRhLZbYAZ2Nzx+46RkNcFzCFaFvaBkkS56BzMpNNhk0Cq/eZXhyR//tkrpS+Hq0Ba1rZvvj6FPvvpZtIkHfOnaC7dr7AXIvKX6gJM4vg4UTliN5OKG8xuhQQHlcSfGyViZYQ== 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=jpxF76nxvQZdedYr7G37ei0LDFcicP8s7io+/7W3fDQ=; b=n6JNj0mDSlOM0BderpbQMXBFyC0Med/idJDXS5PC3x1MiIp1OwcdUcDka75LNZjK0vYCZQFSiABrTFvTbyiiGw4Vt85y62/LwcgWX5fOMQYHP3rSp9H17N/zn1UxXf/JgX7b6wgHQ8xwoTIHO3lLp3rA/jU45avNx8aIdV0IcI0= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BYAPR10MB3399.namprd10.prod.outlook.com (2603:10b6:a03:15b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.18; Fri, 20 May 2022 19:00:43 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:43 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 09/18] xfsprogs: Skip flip flags for delayed attrs Date: Fri, 20 May 2022 12:00:22 -0700 Message-Id: <20220520190031.2198236-10-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8db8f753-825d-4516-b625-08da3a93084b X-MS-TrafficTypeDiagnostic: BYAPR10MB3399:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UAI0RsEVjTnvDmRY/Qs+f0DqlkO/cN8X8SU3AGDIUQL3REpaVawNeXZC3cVjEYhkECiaRNz4fAJN7Z3zX077Oauskw+ZH6CcMk+L4jXdbASW8/TcsUcOtxXOZfI1Yy7eNUjaWDTVKfe8OHO3hTXbjYc/9IeyKRMKJYKejN87wF0dGVIIvKojrRzzl7jcw0NPs7EP5oxRQoT2Cx5j8BL/jl0D7SpK8hgd6DjZExChtXSEibmNzs9srbJtNooZL7LnR9aMv5TtumlvCEdMmwyWEw/r3CN2TYKpJVT3++gQQouwIrVLGVE65BBl0ZEOKVMlIH2e8LAG++qrTvgGIIIYq9RCObbks0U3Cl9cKig56N2dF1EaCmsK8jwsTBpVQJ8jpHSPoUKn5+A6IDkbtgy78y32oZrT0/FmaiaX6gBScUdA/KbKNWx035ADfy3cHnQr6iNP0D3R3TeJsWmOBVzeqd68aKXDpOgtO6vr6zj2TbmxPkOhHdPDCXs1C+K6GpnuxK3a6OTeWRy0q0ygyrMHOO652vgHa3KfwZoVKjUtLE1nngLrUHoJQZYe6F9cTQlQJyT4LKLSvvaREVb+p+42Eb0K9eBkRr5KLbczkXY647F2mrE0gfQRSBDiyNuTJXep9/kz+eMqbiBxWrUPoAGJFKZc8JbvETB49ko9FUnddV0gpEy0/gJE2UT7MPTpqykgk10xezc8ytsPMlBDhkmm8Q== 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:(13230001)(366004)(2616005)(86362001)(6666004)(66556008)(1076003)(2906002)(66476007)(83380400001)(52116002)(26005)(6916009)(316002)(36756003)(6512007)(6506007)(66946007)(6486002)(8936002)(38100700002)(38350700002)(5660300002)(186003)(8676002)(508600001)(44832011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: zqFRN0wz6Zgk57mJNl44mqr6aZ5Y7ZV9v8jdTHf9M4r6n/EFZ7YCtO/9ZcRwwyg7FhUzOQWcuU+/jLu5qNcfayPsZ28rrtU55QZXOetolQQ9VEy3p3R0AX/PjgzWH3Leri16yAJmM+lyRmFQvC1vx+fW1pRep+n0HlQfVM3UJJ25zn7fwNdGQv5w0za/y2nJvjHVFoJdDueR0xEoE1/19Aj34V6O8Y/2F63nohA8G2APeT9SymLOOZNbfCt3bA1gLakFzxEL3HhCpS8wZHe7D3pNpL5xYR+bWgl70Xrwr+XXXfdHVBQGryqIZIan02/aiS1Lrwl1REUaxQ8H3WS38RrclMog6CCv3cJsrtXmDQY3MscLwDPOKQQjMTUSdd34UTtcHV04nde+9wGE8VKmqwxa85NsEkyLmUvnlQM3CNlQ9XW1IeXq2lEuw+9+MQcU7W4arRWxQPMwiurdfDmuWNahCpHWv0EhoLqjTGzFep8Ql2+0tn8F7cxsf+/rx3aOqYvJrYTx/fC46/y3B0Z26yYkgiAhOYqAlL1EoJIhLVv/CefX1TAesGGm+Z+0lGCPDDO9P22/nGgJCdKcdZ0l2MGHAQmFVF/Xa0QOQzJMRpNJVUiRoapvoDMa59begRtps51756n11tY0eerLNeGISQ4LQt/9WN5+j3XgqQ4Nj3dEpK70Qg1HB0+VfeCadiaKYbNTQCvRbZAFmzM7+N9VQOwb+hW0Z139BeNy4hi62+L/rgbbCbIVzP9PAPhZ7AJ/E74W7S18PlDGU0NatQtASiL+8LsqAho9OBvSBgzx+zK0M8uV0PLCX17nSnlctT9vacgUf0Yl+uTgRY5X4MZhqcjyWY9XbX9xz0b2eJVfpqIqzmwMBFhGR8UHMTVzetPnHK1zLvi8grTKxbG4Hr2XL5+PTRkQwsNCIxm/2CvP0Ue5QtU+G9RCW9JOs1iAKq/VM/8FtvjggiaXW4bapvKgQ1K0aPMXbhryK0oCb/98lWsxNzQdcJCMEpwmsnFdxBqtnLO7GhFM2dUyY89s7hS0zRGoFKbniDZXgWb4sE6z1Tddccc/96MApF3NKHBPC5a9nfzsPVorY8XxVtMXFlO2IB2BVi9UBzl6b+d9zE5Ud0h/ZsnvZ3BusIOIIxCj1pswPih2RZHvExi3xh8NzvuWVGspy/h/DHYVD4N5N37lzaFEjwVbXkpWRujE5SW15YCWqbss1unStvaRkC+LUQez07Wa+iYy0iV3nYoxvjJmo3tQZztyw+qJOGFwo97gRHNmpYg98Pri6zJVNxXcZAuIyNLvh+get0ERq/0gM3OVHgGhaM6VegUM8UjwPpCnUQHqtPWcXikyJTr1UJf3EbZXPxj2ZNkHhRQp2qMH3/Q78lKZRbpQIstaWLCdiyiPQqbDXjAnB0JthTZtJgTL7udkmNI7qNFR3PiCQOFThz2W+DubH2XvnMPhQdm62lDm5ezUrQYiHsHrulfs8X6xOLZXXlm/qkznuEVuIsO35Gy0NzJrAEhMhOwO8z5yAlBKHZFb3f74NghlRkelxZHQiHBGa6rRrsd8xAiD6Pr/UPnCH9JDJzrUxq+45P3v8DwljZCIe2QP8UYOQue+X/T8X4JxiQpxjMj+gInMksc9bGeBZKTZEoLq4FPOB87kDrttwWQKVrMHunndQ7qwirxxe32Rymu1G588mfIQ1SJWfeb8WE8lFFeQSDf1pExcnCZnvMQEuQgzcLX5/KLOu+bvZIJDaXo4F+vFqPNk/5eKfAV0mhQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8db8f753-825d-4516-b625-08da3a93084b X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:40.1067 (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: unoJeKh3KKpfU2U6Em6XRHanFKCUnNS4nqtfGQzpu179PIeODSRcUpcf2ocGfvsPei0hBiB7c2HIjVnbL1dgrc7uWOfYLywoe0d0/Vob7zg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3399 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: pisc1wQPtODvh6AwtXC0uKuPDhPp2PeR X-Proofpoint-ORIG-GUID: pisc1wQPtODvh6AwtXC0uKuPDhPp2PeR Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: f38dc503d366b589d98d5676a5b279d10b47bcb9 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 Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- 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 76895d3329f8..6cda61adaca3 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 @@ -1232,6 +1242,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; @@ -1239,7 +1250,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 31eddb543308..45d1b0634db4 100644 --- a/libxfs/xfs_attr_leaf.c +++ b/libxfs/xfs_attr_leaf.c @@ -1484,7 +1484,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 Fri May 20 19:00:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857378 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8EC83C4167D for ; Fri, 20 May 2022 19:01:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353120AbiETTBK (ORCPT ); Fri, 20 May 2022 15:01:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49634 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353155AbiETTA5 (ORCPT ); Fri, 20 May 2022 15:00:57 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1CF4C3151F for ; Fri, 20 May 2022 12:00:56 -0700 (PDT) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KIpY7U004407 for ; Fri, 20 May 2022 19:00:55 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=FbngtfzYyfpNTe0D1vPVep7igmHNQZ63vwmOjhc/7YY=; b=uAcKtnbRW9X4Gywf4BqHAtkhV7n/jsxtKQjn1oELhVQXI3o0xIovHVdjtUeHbsgVIAQO ZYXAS20URWKkwlU7VXfL2u3mneVjtFHCEtyJordWtSOdxYXXU8Hiwxl0qVnIj1r2Z8uX TBfZieWf4oOJie+c2NCb40DgoaNTFARZaRUIlUk+qa1iYdmHK6y4qnaxMgtGdzwLc69v S92oB3+z+Sm5MkuJFGDwa7DRrWz+zbTWDKmpuBUVqs38Pe9OHWtUNiIwcK1CusbR5tp4 fTtBddDtob3KfwnwpgoJPHg0jqxZafrRpuTDlgXzz8jYJtMF8MyiS8ykY1hf4tbfulSB Vw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g22ucfe40-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:54 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIo9u3034597 for ; Fri, 20 May 2022 19:00:47 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2175.outbound.protection.outlook.com [104.47.58.175]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6mhfm-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XxFxB144NYwSagMCmCcZOXjjM8QdzWFheZlKKwyq08Wnz26Ptdq7pu6Nj/kZxbeBBW6wpnd/yjz+mPQ5LRWxcEOK1KTz/npf0/gdqlCHayLGzFvTuAub1OOmx+NC4O1Rxja//8XRcLS14wXP3VZ3a3UNrEoYiMH87OvZbX2gNOQkhsPADd0h08+SIqh9v8ZE0q74802gwhTX/NT6QZt2cClmvr36yu2cmATlMAg8rkF0Z9DZTeSGEPgCKx5awS7jOEBreaqRtjl3u0g5sDyjj7TunWi6+ecdeyZOCJ8loF9+wy95qrVcH2v0Te5dcQ/tbn6DbkP5O3JHBGO0C9nrZw== 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=FbngtfzYyfpNTe0D1vPVep7igmHNQZ63vwmOjhc/7YY=; b=WZ/c8iQcXL8gDEw9gmKxA0n8Gv0kAcepVc10LLWzpUSF8XfJPN+Bvhhj8T3/wbeJD6Ku4rrV04rjFxY0h/XqsH+jb99EWrqa21mk0a4KCspmONnPEKpBAlNQ2JaCzdJXjSp2hZgS8NG4NSOh22O7ZDv8rpffwGZi0grIH1PKE4+BnOPiqSHGsuD06YmF4LUUgqoQHMMY112FeBg6MepnNGJW5PfdXBinEPEAfeHHreFNTJZSqIQTI+v9yBYq2BI5O7avFTiIzIHGHqvFh8Yfmx/jDWIH/RFP50m50qfitlLYTpVBtkSkgu6G7be+3IEvdQE4XutCe45AlGYPknxslA== 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=FbngtfzYyfpNTe0D1vPVep7igmHNQZ63vwmOjhc/7YY=; b=ZGBHkOi0FED2nAOZXkwXZ1EArpKkH9kxLAjXTkXwV6bsUTD9+aKdg/wvcGF6rbrHyw9z7PCGg0hEbGPafnAtCdNo/QtL+bCpP2UH01NbLuZ7GS966V2TataBBH2Svp+R00iMp3IY0CLuFLgnFXFoXS9hmw/qQqHFy2Lw+QxS9mc= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by BYAPR10MB3399.namprd10.prod.outlook.com (2603:10b6:a03:15b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.18; Fri, 20 May 2022 19:00:44 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:43 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 10/18] xfsprogs: Add xfs_attr_set_deferred and xfs_attr_remove_deferred Date: Fri, 20 May 2022 12:00:23 -0700 Message-Id: <20220520190031.2198236-11-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 40a9c077-8204-4f21-379d-08da3a930874 X-MS-TrafficTypeDiagnostic: BYAPR10MB3399:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FbKwemGuCl1g4pNPRWdSE2exFKToGVRhtflvlIGVpdpZduS2TKcK7jc+w6FOWFDfdA1TGVCEt879HKaWfPw8tFRwzvNmUtBtdlPRGmWMTCCqi1IPl6+3G6OJlZhOxxchhY9TzFYRPWHiqdJsMnOF58/RL45uRAuXRIdVErBlGS5ZSRi4IsHqlnoUOJ5Qy1XxG8wiA93gWeaxwMajxOPpUqzj6V5PPj0BR29DEjDAWkJC/BE18SnozD+kAB2AMWsPzMIwYIGjexv2dDEs05vMBcSb69MrqwbX0Rm4LGoIPzlVxDpzIfrK+FWT88bfJPQWeTCEUZKcQ6XMJWp5/Y+3c9hnTj+tTd0QglsAbaJhvcX6+1E60D39RwYPhljAJjC2GeM9DZZRJjyfbNaExZbi9dogsDhd9s+CGPw1klgV7g6HFA3k2j9U76R+Gvp5SXSrjPzkpsIF90Jb4cwSfqByLhgxCmIgW2weIb8smYOm1tv5uJkzCceslaYIF37AcAD+hyZjIMwprLPUJ4MMMVuidJqSrjfcPyHGrYarTHIiH/SpT7p8cu435IKB6BUs0l87InMrBtfd1S/qDKNtrV/DB7VeokoB9sIwEMP+wzSHNqEq6AcKeirbzhSjf6Vxt8a6bam46JkQR3CroKF42TN4oM1G2B7+rTq+EvrxMSLvP31iwFU7svs+SWLcFJ+jeSuEsoKl/nho2SdV+Su6zq8ahQ== 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:(13230001)(366004)(2616005)(86362001)(6666004)(66556008)(1076003)(2906002)(66476007)(83380400001)(52116002)(26005)(6916009)(316002)(36756003)(6512007)(6506007)(66946007)(6486002)(8936002)(38100700002)(38350700002)(5660300002)(186003)(8676002)(508600001)(44832011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: i3hSgjd9dZkugSnogHjf5wdJC8/3VuXeHQ595GFE64HhHjo9F/NC7VGANnz38hJeaj2lGjwGZt1Q19eECb88MeqD+NMhFjUDAaRq5BDhA1uJJgcZbitCPwypztClIvWxpZuyu0tOKB2AhLsoGjSfoZ43VZtVSuci4vLDREbG94wjvpyN+5amKO04lJlHjSSXtYS5kmzyFoJph1DvdLUlV5rB79cSlYfTum3/C/xDITUS4wf/IvznRX2b2RVoEwUuAZUQw3aMu5C9CH0SPB+z66/98KNIRXOpo3M77f3e8ROf0ysep48WLA1sjGfC0NduL/iCIqfYk4UwxUfPz0E8sTDMAHe+A440nn50quTMlA+Jw6kFB7h3lJUOuFQ0NO5UxLaxiyEp793+IhH6MZvxLKr9wD4xrKYK7c71gjvc56KkyjyMVZbOGTsa1krnxG+R3Y/pouyhLEi9EqbUT38A6V0lV8HoA3wAzRrzIGDX68d7D8E/v1q4s/ZApE69i3Jm/yZBisDnlc3DrSqgOvGukotjyStm/WEY2QueXdSSuldDk0TbuFhTOT5FvyMMJXwgud7bq58X9zs2pjMZJ2ZeL+/BCFxbEidjcRRkPcsar+AHQRxgoqCOPvhx2RtPw7Ld5HiHcngQrw9KSX7RYDefF9mFMEvQ2ztxoPZJeXN99Eqz6buiTMh2Mzz81nE51tAD3NZsexolweoAdrf8gcJAn1UsGsyJLfD4ZTSk9aw2d8Ip6UXrNkrzFqkvmIBw9gtTTFVJR55fj2y7e6pVF8bu5vt51qu5ptPyZg3lvtJxHlq0uuKVKGzqXRPF8gzcyLCblFMFlv5Da2/Ml/qcU/PBY2+onqhiMyS4GPCB81AYBwiJg1diMZWBod/iaXFRBZecO3QxzMXjqdg0O2teAdh3uwemO2ZxZawB2uJZS0luVt8B1Lj9eQ7larCxuwCfB1E/L+w3nPiB7wtRuWkAqIIKCrxV8bfk79l5ihOVvgiUW5p8cd3fWseJwhkd/XK1fRMLQO8FWi3cCMZ0gGMn9y7D7wn+p0s6vprpHWQy0WaXzVYUngu45Kg4E8UyupES3rxTE94MePaKWx9hiW25AwMwo5xMz+vw5dSoq4MmlQ7PRwASgmTqON+G/m9QEleQP0xJDfwGfIxRavwpC2mRUGNG4u8AFtbsB8aQ90+qUqWZMjyqKWLH0PGCex5U5OTpxjISZAy+tkOLJtFh9Q3M7nBIVJDTpQqQjFdbyrJXc+g4+YJVSJDdgT9aHx/xOMkIxXj9o4ZysoohLrUajSMXVRjGWByTz4ndFPRUiBYZBYJl0x0mGdZG+n0nrDopYApJPSx3lWV7qtDOexzzuYHySMLDkxbN3xGzyGNMLnhIyhtTfwgMNIXkwPxRIBRPRpUHT9eS3xRnWZVkV9SKpYRiNqFu3Te/URZ2IeYkOnoz1MgZfAb9Y/8rPvIgAfUCied2IrWLlPcJ1C8uIvnYve+oePEfOVCc3BWvphLHHtCxH3GyaBDwH2zSjAvjT1JGC6lAtqpRRFx9ri/dYJjLND+cm/SAGcdzreH5bo7d2Upcozxrk79n5vDFdD9v8r0pPDiRu5TT/lgezr9hEMELX0bcBeo07AttPXEyH/sC9DZ2394UJHPQT/RVjeQIt4sUeqJON/QhjeNVsZp0vH5hcWdwJuLAKwdoeD6TQapnuTc2QDTs2Fvt7OGp4qTcp0BZywk6y4aLsHZeBksm3q+sx0IG8D1OpU8TyO4c0Rshc9QZRgvjsZI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 40a9c077-8204-4f21-379d-08da3a930874 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:40.3577 (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: L0UQTqG9qd0XajCtLYIWNKRn8dFdZLCaGE90m/MfhEn90Lfuhb/Qnx58FqWw/8jNFagY8f1CdUk8mX5VNBmIlS1y1nwCdF75PQMmT+vigQg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3399 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: IQE7uV6fJSSe0q8KugF9XN0vjzR9nbjW X-Proofpoint-ORIG-GUID: IQE7uV6fJSSe0q8KugF9XN0vjzR9nbjW Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: f3f36c893f260275eb9229cdc3dabb4c79650591 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 Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- 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 12028efbf802..718fecf72614 100644 --- a/libxfs/libxfs_priv.h +++ b/libxfs/libxfs_priv.h @@ -601,9 +601,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 6cda61adaca3..4550e0278d06 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_is_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; @@ -815,7 +823,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; } @@ -837,6 +845,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: @@ -845,6 +856,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 b8897f0dd810..8eb1da085a13 100644 --- a/libxfs/xfs_attr.h +++ b/libxfs/xfs_attr.h @@ -525,5 +525,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 Fri May 20 19:00:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857367 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 88B92C433F5 for ; Fri, 20 May 2022 19:00:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348725AbiETTAy (ORCPT ); Fri, 20 May 2022 15:00:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353035AbiETTAu (ORCPT ); Fri, 20 May 2022 15:00:50 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D55CF5F68 for ; Fri, 20 May 2022 12:00:47 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KIfmri010091 for ; Fri, 20 May 2022 19:00:47 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=6s3dU2QVrZuqoclPL6LGML3yL1neyH8cZ9KK/D4UMHY=; b=HPjt2QXxRY1MzlhQK2Lo77BYHLO6k7sgIt9f9XnwgxLweBjLwBhHAS7m8nJi44IcHNvR HTxw8jwxDDVKsbejleUsVmTMZRlV0K4vHa5RJ+VogaCmZ36DxQyiUAmufooMqhrddok9 vOZzsyNXFKVN4drP9fKZy7W5YmRq5IJmt4qZ7ADxEPzdZEREVeEZe4K4AlTIid0QGcFX bwHLMzeY8kJpWbaGmwJFn0kUz++su2/0ri+T3E4sZtZpmqVFtH9ibZYMRoGhRJCDU4cV f/AdnlQZ+zWEA5wUPOsh5jsBy6KB65IJMd2WpWOfmfv3AoH8Lu5V3kyQHc5BY1CT+Vl7 4w== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g241sfvp8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:46 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIppqV036742 for ; Fri, 20 May 2022 19:00:46 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2044.outbound.protection.outlook.com [104.47.56.44]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3g22v6jjcy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=As6kqhSmZwtxxW4jS5qknlbB7+LT6XG/3LP/WA3HEkkgxQ6Q4dQxK7+VwXSlNfjbEUWLS7ia1f5dRH5djsUltwCDvkYf1vlCL0TM9+YNEqlnRON6CTCNn7Z7hofgWiuTkzd2KezOwwyZ3S0jesLWSB7kyXsEoQaqeBcW/ZSwHGQ4+yBe5yCoibkXRFF39nGcAFroOdkS/h58L37MHlKmxmKkz6KKDgX8UWg2aUZXvyjJbF3K8vyWKyYPnkovp3bXLWVQEtKKMjseXUAbwaDdfEIFeZFOAm9TAhyJ9SR2+KLbGufpDs21eaY55i79dYq49JGMl0y67OLJ0QDdhKFPxg== 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=6s3dU2QVrZuqoclPL6LGML3yL1neyH8cZ9KK/D4UMHY=; b=BV0AScNfUJ7DPSx3/BIqiS1ebKlSCZxtmiXlkARB/zJj0bzDo7FW5FrJt41JYfdBNvN/ha+oRUYO8EX/DWtGSPTlKQJX84BajliikELZIta1aI+xd29LZUY2tmAQ2ajwkcuqjn4vNhLeeUOVNSNaDMEtgqpDJLlIfmpAmHLEBWdSFZaXzhjqCAMFz0mHFHO3Mc3YPYQRdZ1y98yzj80KyXCjPF84EG0AL3enY1GLwUQh5mZ7PsMyVTHCoaOI8K+MQMzKTd8tU+qWFwdGq+sXKOycAnaz3/LZz5BdYr0mfY4lS5OJeK2AwYcsldBRZEtArKpvUhPtgx6prqlyZn0gMw== 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=6s3dU2QVrZuqoclPL6LGML3yL1neyH8cZ9KK/D4UMHY=; b=vdZdTbhWjdXGFMDnPkmUPXZcCe+Rv4ufJdozc1VwV64ZnkGP9fI6lGl7L5Xu/wS4is92kOrb0ipdpttVaEoGNqsVZ26q+RLX1kF+f2JkmhbpSi722MShrzP8U9RIYGtadDP3AhTTcZh1ddiMvdefKEvyR7xvkQ7oq8QQdvgjp1U= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:44 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:44 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 11/18] xfsprogs: Remove unused xfs_attr_*_args Date: Fri, 20 May 2022 12:00:24 -0700 Message-Id: <20220520190031.2198236-12-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5c2a9267-a05e-4b0f-ee08-08da3a93089c X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: c/PKxS5ow06VGWqnh3MqPcvtQWgcDfSH/+ttmAiz/CwMmFCfPYsaaFB9YjKMC1EBPmiRLqfH2VO7+kf84KjPleuRrlaIqLCTk1dfs9tgqLjqHVAQ+4ZqmD1s+IaL/UQ5/OVkE44klOS39YPoShEE5LCpHLq6hzFBGUdqpIVjy6/4hFWHdObma/1IaVf2T7nowIUTePE6ddJD/AKrBH0Bdjo0knkrbjNZa7mjFgCg5I7FlQC56Wi1cIe8eYB7WTDJkoougmRiG44H2OgTdTuEGoX8+A/789kf/vIGuuBcMzSUnjZNGkrsSzI1mLM3H+oct17ot85bfcQvFBiQPEsLuWXEEOK2e6kqhUaSBHuAykISrEipX32ruz6FfZ8UvSxfv3lyNponTSr/pJmE1FXD1Qag0fHNDDlrG7DoEYX58Ll8qRgWF/SWQTrGT30oSG7M/Py/2Kme290WinNPi+cFBZOXH2Pv/os+TLJP0AAIJH6XCf3K1q2JjrXbIttWIbYEMrYZqTQQ3VQi6W3xPBz4mM+ysrvb3iJVFFeWf83EvFse16s8/XTWSo9NBgIWT2XGUKF/wgtw7vV23hDu+qnwSPXElCTwRNBAhjOnjyrF7QeH2RYiB/PMtvtDc8cCAuMSoyXi0kXLYTPmMTpzC7XBMLhUizVm8PGB4cCcUl3J6iUUYIfuP7CQuRAMdJ98GPpptjSepf4/O+H34I9HGf6wjg== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VEjSlefdlgtWzXApasm2u72UF6lbqwV3cc9sPvC2WHDmmN245lWviDhjosVL+ADTqohjQvyVApGruxspX8Qo/Zb3hkL047QuXZXhIugYre9H0QvujisEAuMfl0gbIzTXUcRRDaK6idHRL3M4GRgbFotCnjCwOFhmIYl9aI0MechCizo2PcA6MP4aQ1YC8FAxWQiPVP4kLbw94hwmgphUxc93L8T43vt3tAFV2TBtGEoWYppMMB2pIQ7KQQRCb8NSEcPxWfjs8XDk5UVZiVnK1e8WahZKC+R3Y3owUEGQhsKkHB7wvxgdDpFuV1jtQKlESKAOCBSvPWCgXFrNcqvm1eqoJjLpjbSUwld0HlH2ENv/aKsI5G1x3MzaJ44+n4+M/1FHvb0sYILVVwDvqgM5N4gx2Ug14DB/vUeK3sM3HJFo5iEJ7+SQz94Zq0xZ4yrolblCu4k1TcxUOwNtGwhXepoonjfZNY60COHl+Vl70DY9CPPOZa6lHbJp4HBiCvAThvg/Dz+mmQSWbDsXGoYjtFUu68JwmSjnA/kSiq3R4Jm5njRZdBBWJevKzg7EngVnSLhUS8M+s0zcAyHtgqSAC6UGmyvTbAzC5KvROAFSGig2pQXLSqPpnnpKpEuxZx90h5ellbDOtTUyk1qA5IWlz7mgpsddaOX2u550xoDreCSm+4y/UEUKOaBBoZNaefr/DgrZSEhhNzl3hq4GsVx27zKY2SNIBUCmtEWJczq7apIK/B9kJ0w7v9BEeGcROYLnfOsymCQhMGAPd58VW8dtBV1HcVYVRDNhqy4bPqKQaD1LFC9T485amMfPpvub1zTF3Nn/iKFIn+SnrkFh5NewpQxxGWSTbVRbFw6gwQx61PnidStCaw0/acU364fjp3MBV3bFrOrBZv7HvUlGgyHpDwb2TqYSAAF8RpXRsWqc4/UDRIITYeecEOCS91QZDwsstzk5uSgFXGsCk6wkTNg3jjQz2QhhmRsP0tC9sSkjPQhtZGE8zT4Eq9sDCrZUdASjKfqJ/5TVpnaxz7LUdzvnLY7MbgJRAEePOqssQ3VBGYwpAfFutFJs6MwZfJ9+1C5PhJQlSf3kvs0kB5Dj9XcpdfdAaDnNJjgQvi7/twQoi+cKgwgpXQZWXz2t2QLwXw5EhHyhbG5rcUIHIMOy3G9DIRq2dxFMDMkqQdj6jMKgq16it8Ri6dqTOHH01r1Va6QWR4HIBRgz8+8Kl+2hNwqRm6PwG/yejSSqBh/C/x/ZvgbewRo5w/+nFYATZTW6ussuJdtjNEo891nob+a1lsnrtrjD2CK+qDiVP28Mez1b4moUxrRM62rN6VyadotwQ0t9YL61Bdp6wJOxAjJCtOMY4vKHZ/yaxSDNyi/Z1yWF3cy1nMxktUZM5dXVgJ+PW6WSKJCPvxDz2UyFiB9oHGdGN7Jo7r3GFrlZG5ESnxaej/BvuAaUCjjmY+TwierYHKCP01ZIZjEM3fI6T8+GVdhQXIvLKQgFW5BNwjej023T6+zVEasUWw6c5lqZEQhDWZgqtInvCM5qynmF1QZQdq8rNq3OBkzbzDj8wxfta2oaI6CYv7m6VzTVx5k5jcNk6ejJeeCOAeo6btEc3zvFdO0IuEiQZP4FBAzXIokQRf/2QOPuhvdw/7ptsnqP+gvr0iPEOxXubzd5+E2SkqEv0S9J+Af4fpWBiM5hKupLHTAgViZaE1quxFrrvBX6fgy30eMsG3q2UmYNIJ0vxzJHLIIn0ZPDoJeL8O25gRfUFwdl+Cg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5c2a9267-a05e-4b0f-ee08-08da3a93089c X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:40.6233 (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: aXnhB+CDGAdq3f1xNvNDlS6LIiaaQ6JAtV8uTwmRNiBoqKPDH6/u6rGloNF+8O+Z0nVVe4A1KWOGZO9b4PvAo1s938sA7MOdxGTX8tFyEFc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 adultscore=0 phishscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: zuWxVxmpREd-2isccH7E6CITf3YYAFa7 X-Proofpoint-ORIG-GUID: zuWxVxmpREd-2isccH7E6CITf3YYAFa7 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: 73159fc27c6944ebe55e6652d6a1981d7cb3eb4a 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 Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- libxfs/defer_item.c | 2 +- libxfs/xfs_attr.c | 106 ++++----------------------------------- libxfs/xfs_attr.h | 8 +-- libxfs/xfs_attr_remote.c | 1 - 4 files changed, 12 insertions(+), 105 deletions(-) diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index be2a9903701f..eec2c6c27bee 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -175,7 +175,7 @@ xfs_attr_finish_item( switch (op) { case XFS_ATTR_OP_FLAGS_SET: - error = xfs_attr_set_iter(dac, &dac->leaf_bp); + error = xfs_attr_set_iter(dac); break; case XFS_ATTR_OP_FLAGS_REMOVE: ASSERT(XFS_IFORK_Q(args->dp)); diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 4550e0278d06..3d9164fa9a2b 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_attr_lookup( 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. @@ -1269,7 +1185,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; @@ -1284,7 +1199,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. @@ -1538,7 +1452,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; } @@ -1566,7 +1479,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 8eb1da085a13..977434f343a1 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,10 +515,7 @@ 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_remove_args(struct xfs_da_args *args); +int xfs_attr_set_iter(struct xfs_delattr_context *dac); 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 afa932904602..5dc93c3b26d4 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 Fri May 20 19:00:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857370 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E8D3FC433F5 for ; Fri, 20 May 2022 19:01:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353150AbiETTBA (ORCPT ); Fri, 20 May 2022 15:01:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49310 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353102AbiETTAu (ORCPT ); Fri, 20 May 2022 15:00:50 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5D22364E6 for ; Fri, 20 May 2022 12:00:48 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KFn7HB022615 for ; Fri, 20 May 2022 19:00:48 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=wRXZzPTWZPEGz6h5nqB+c6sJHTwtHQF+lFnMdMmPqes=; b=s6eNO6Y5H0Tm5sz/USR5STsjQPiealEAHkQABIrYRdsTbQjUWVFTEoHl+4VJ1DarXE35 K0uEt1JwPn9QmT/zgmZIoaJ04d8Wqe1sOtnXwgR67PBIOQEZFUa7vM2ddJh78vVLXTCN AG7yfa21FXx/KZH+UoSa0Yh1lUBrTcgW2HEfdOpvbyLAUe79US3KpSpjrYfB2ZwuzSor I9hz4mjxd7zmmSpJJ2m4jKQ+/NXMG1v16adwYie1yBF1ypp2OgoEHE7WtZiDxf+fy1xs FkcobCvr8P1s0ygBzFarosfQGkQtTB3a+oKspyuQni4lkALrWCooXcKXFC2RANsAXbe/ Ug== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g2310yw81-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:48 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIppqW036742 for ; Fri, 20 May 2022 19:00:46 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2044.outbound.protection.outlook.com [104.47.56.44]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3g22v6jjcy-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NNC7gYEbkGaVka9a6w5cyGFfYFti+nDCyo3nDYQbhjYfnYcYdFi7uQQ/QQZ2uhbdANyVr5HFTH8748aTR3h3VSoCGy9p5O7lhU2fp6O3pNwiyU6YXXyyOK4jJqk7a4eAqbqDOun5lQpydCl9EUhRgrUZo7wI/axsy/xWuuPQJvbiEZ4utFL3+NtmX2wUJjexDxjq8WenR5ubIOE9uXeYbuvJB733NHX/+TTFyBxUjgzozKKN0LDmYMJ+PoYtzKBP1OAGhWtitWawwYjTvB0A9zQbuK0mPtkvduZMVwwg3leiMGU+rk34Jd0Y4mIaBZOYgsbFqkZeEk8fR6T4bkh7NA== 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=wRXZzPTWZPEGz6h5nqB+c6sJHTwtHQF+lFnMdMmPqes=; b=i0A9glqUEFmbKyGJZf1UDazMAGbT/7dMfrYJpLNqWb0nVrKKVpxrWuNoCY77YIQ1+EllarVVAZ1AP/MmsQj2eqOegxTpUhCdB6eUOcMbFiBgKirr2CjYynNCPtog85n4C4xVFgJCSnTS6f53sjFnkBUcqdg+bD+xbFLV0xwMspqDTj+6dvKzoXLLAIwjmohz5Z284GEC4jOOYLOWSd97xnuY8Hd5I4ciD24mQ9OWgpnPesq6GCsuyIGykLIQQ/+41iYB+0JLmly/vZSWMh+yHub7HiE4ckSNxuokNrn68EaRi0V5GNyfKQb37U49je9ybjhFB8j9B5qNulZzINy8OQ== 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=wRXZzPTWZPEGz6h5nqB+c6sJHTwtHQF+lFnMdMmPqes=; b=VmMtcQlqnbudSZf7ur2f5qKR5i8eujETvphGO3CtrBO+bSlhO0F7PzzsRMAVLMd84Cjw+4fd2Tm6qdA6BSY7yKOHf2UwlazuU91Prl+7X7St4PVCMpCNYiL9UBYBbaqEiS5CJCd9Pt7pA1KASqvbAAOfA+VbW3ejms6ceopDVAI= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:44 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:44 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 12/18] xfsprogs: Add log attribute error tag Date: Fri, 20 May 2022 12:00:25 -0700 Message-Id: <20220520190031.2198236-13-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 43689048-df99-42f2-7428-08da3a9308c5 X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: g0RkFaqblNkA++hBdKkoUr4VYs68rLfzqm4QTtZR54UOU6I3/YZ8hX0glQ1TfdUw9zbOk4si+PQWg3nsbK3tenrnAYcFmoU9phceJ1bEgxjacYN9iuXatH9hUa/T2W46gsXG7kTNbZD3wokj+C+YDIsOfjCddJ3LydS1JvqgbYB1b725oX02M5hMBzHIheolL7Biin9O/9J2g1oR72iR3zFRPwer9DZ9+CJSjYZQd+Z0mY9WdMOZSFiXl9KzSYdRG2ylUqoKR+DEqtElfQKyvzwTAAa53cV69x4tJ5yUyNyW6XXeJbw2/mpF+NVkjCykP+xLoXYzdS0f6gVRPlALl48pC2dA8gi9/Uwv/heAezCvTofAyayys7mNEDiJlJBDHaID002nFPdGTWVNWg2/tMxw8f9Zq4oGgsOd8pOjlsXkRbQqvpr6SsHXgqtD9d8rPXYMT+4S4PjoS4n/UGa01X1k9tCGPMHoX54RVKwnXF9zyJ/z5xYDXN5QlhGfnRkWgJz/QBu6W4KBeXVgWVxqh79YHeYCBQJWq0PzqjnJpGvsGjJIDhJdBMDH9xJhBPZXUU6XSu4astFgu1cPhnfQs8+kP15WojCog9FxYj6Ar/snsiSG4sfJaUxv/y8W67HBsGmHSsswBCTRBUZirf5aW/GR/hlAESIkGfclDOefZ2qqe/MX8qCcweiWzUEnXGNQWofGPVbDabq/+XKuVtuT1g== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TZNFtaJV4li9JEyBB1B8jtpBgWp/bsHai5vf0lA3NziVDM0uH71IoQoJmEpb7CovnUDeP/35Hf5Fj3AxzFeJXFHoQKfsFRLJPLyXsiMsZoLqRg2PKaP5MDlHIWphbfvALDKT8eAudpoVxE9ZdXiUqpAcFWJrYZoS03FO6o/LKbPMBJCAF+zeJtTAkgu8G47w2sO8QE/YuHFoWFGylglqlNagDW3ybCbuMmdAd5Ua4yy+LOa+lvbUlooNL1GsQZYXKDyUglqqrM6EEvhzQGZLcih3tQqtNt9fBBTjrmdmPYkhIHRcUhVtCmSNrve4yZRkp79HhVYk8uLxjNxuku6gqadpFBuOCoqHpQu3aomFd79duvDM1wvZV2yDs6+QSbcB+FYW+gPUc4dn/6J1GDCUNcMeyRfJy5suEgnV4EOoE6rtOd637x+CaioCHFpdY4X4NFNJTmrEbvfUdmAb/aIxVzu/WbHn8F2FGoxzUmtKKkLRr7VdyxP4NOFrlKsKvDO+eGiJFQMInZ+40e/+v8DwcIq1mYv5Gs5svXglxvmuDFnoSY3gj+RObsXvLtVRxudj8NqMikf7+xNfFbWEZS0wlfi+NNkeiVenrCGmKpuAr/vtWpX3RRwwgzTwdtKs9FjIymqcl9gI5zeWvNoJ3lpa8wYdB6Hyxi4mSFgmBSwAvLbNGV2pFfm9mqxxCdxW/wfYCPHQc5odOgY5i4OXVcWorbsGqW2QfVCBTF3WMwKBW9pbQJH9w263Bo07Tvl7jB9NAknR6fG8vzWwmhdTNM3VClAAxL9mEe1sIfrG9P4opYEul1Jw1KiT+Zoptxd24tWe2fCNpTl4c5Qe0lIiAzCkYMmmW21K0mb+eaI9hcGxqiAq11sj7wd0MBi+JqmOm2PyjHr+R4yNKTm5bMSK3ifWCHFWj8i4kpcJnWCHQ7R/d1mFILZWNG6Brm771DL15c2HgSf89xXenBL8c4rbSop9KVr7JhXceHKT14gXdLaZhPYe8Q0iDadj1hoV7Ty2x0ejdSHKlQFK9TKlJ3CAOuQdJF1sire5xv/CvHlQ6YJ1nuiG3oOAFHyYAESFzHSss0zEcdTrahproiMuP69rsuNB07MU2I8xIh7g/UdcPLCqLdQgGiU9GmAJYGAValhq36KPNbsnkdcsR6TiGgMbg+nM2UyNKLQNlbIj80zV4kyGxuB4ijXlxOZ288NQOvimGjqGp4r+FaF6hbC7QEPVBSC12YSzqxVWD7GNT5QjC83PrBeML4vKfhXfdRcklr1ZB/St1JdMeTwGGO0RH18o8m/FDq4VPKKRNsagCcnmSksXzbFp4FZ+RXsRU+BPo7+wBNoljHET3INA+OXoEc4EgFaGc0HktWR+o2NdNUHIH0BtNw748GrbySMKAcgqivuFGePfQQxgceBVUUHmfYY3F5rinmTm8jARLVPYpqCOiK8jCJu/l1Mp9au0VEo7IwhG6ngMDPr8moX7X8V3hnbTVlrJdi5pggXqtLhzFSk+xM3h+7tZ4SQiH7QkG/YS/t8FOGbKFysMqDZUTIgER+CygAlEPzhaDJtsIhW5IFL4x8NRWAybgWDCcMHvtK3trqUGFyH8ZgDNUWiBZQu0Ae0zTt/5iiex8ElXmgKN+VxsifIS5XOpT68Z+uiuNCNCa04G5Q4CawA4tJbqtFkC3uL1slZ5FyWQ984QCiAIgQsoM1LYYk+aF5UXSBLNicVRMK40glG8WWOlz3iOjLKhAkJlmbj4ys7juydil3AClPuEFQW/0j8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43689048-df99-42f2-7428-08da3a9308c5 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:40.9357 (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: 8i6fJMrBS48yncou41Eiutp/OXget4GDrHimMnO8kROSyoHvVaosrlBsc+USoWoblrG8GxtLDAweVrI2xscGDzJdCgw+7kH7BlqPJophWzY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 adultscore=0 phishscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-ORIG-GUID: ftZalS_qPgJeju-i6mk7MQ6qibpuYU0D X-Proofpoint-GUID: ftZalS_qPgJeju-i6mk7MQ6qibpuYU0D Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: abd61ca3c333506ffa4ee73b78659ab57e7efcf7 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 Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- io/inject.c | 1 + libxfs/defer_item.c | 7 ++++++- libxfs/xfs_errortag.h | 4 +++- 3 files changed, 10 insertions(+), 2 deletions(-) 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 eec2c6c27bee..17e635224fea 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -173,6 +173,11 @@ xfs_attr_finish_item( */ args->trans = tp; + 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); @@ -185,7 +190,7 @@ xfs_attr_finish_item( error = -EFSCORRUPTED; break; } - +out: if (error != -EAGAIN) kmem_free(attr); 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 Fri May 20 19:00:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857375 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4E511C4167B for ; Fri, 20 May 2022 19:01:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353180AbiETTBF (ORCPT ); Fri, 20 May 2022 15:01:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49420 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353140AbiETTAx (ORCPT ); Fri, 20 May 2022 15:00:53 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B828413F1D for ; Fri, 20 May 2022 12:00:50 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KFn6pP022606 for ; Fri, 20 May 2022 19:00:50 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=Uq9cg8ytKTJBR4lRX/nl4hyGZl5i5ygI9M7ltLGb4kI=; b=M/kjiyCM0HmMlgiddC9F4G8tdIIdGL1W7nGhr6KGhUe+NSQK2sJ4vrVu3yOQbIrW//Wk DSU5G/6SLh8IjNxPAA+0CKH0lj+/W5xZYuATwz9GZmbUM3mZ+0VIuyDzmsH5ClZcbHLq D8ghhrVRHMzNwluLOkQT97/TMGD6R0ybA0Uq7Tdp61MqIr63yifZB1U1kfRn0LpEq2gm /5Sznex//RkTCfHwMte12IGDayqybVXwlktCTUCbVtuXPPlqfS7o74QCmVA0ECpWTexh dp8sIiiBGqXJCcmgPLDtqjRskW7TCUSL7pNNXj1yYUFyDPZipnuh8GkHKUcFAQEEldx3 hQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g2310yw85-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:49 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIoAP7034622 for ; Fri, 20 May 2022 19:00:48 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2047.outbound.protection.outlook.com [104.47.56.47]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6mhj7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F3sXSUGvLYnXYrAX86ol2B0vQM8M+66F84pCYgts2BtjsQUTBNUjgztI/YTZuTar1LlpJizYeBHpV1GS6rvDC7X5STqG3nphhsWytItdgGT9rNHC+Nsz8N43tlQRmGMMsxd5AqcpG4nA1vTZc8KekrQgi14VXEPA6ppu1AZSl7k4SEPo8gc/vPmOvLQi19EZytYfbbug/VRzkL3vV/LewafOLi7nD3Sg+Ia1nrtBDQntCpbD2AjIs8GnZ8pzICUUB4ROPt2Fvrh6iLq+I68c+HqMtivopb/kAleBefLT654+CqD47j6pF+ysVO3LtmMMNPzOnktp6drbPcU8HgWxQg== 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=Uq9cg8ytKTJBR4lRX/nl4hyGZl5i5ygI9M7ltLGb4kI=; b=NC5Y32hjyPOrg+XlUMCadKYsPlO4Y/XZU7sqPjkZWXJSMf8oEDr3GrBWzLsqtHvMS97+zKHpg6Gu41QLMa7QIncfsSPkQOpub0Uvj0HLc9Af8jOV3/vOO0lCY2MuuSbefHrXWrLZOLH4HhTZBNEnrQqP20MMQMaqtSZ+1DC7s2mgpvFCiBJKC8clh/KKKxAtD+Rni3xqGFbYXj6/hQHxhrp1eEZr2LpBvC7/M9JC/ahT6VPXnu242OazDFlQwr4b8YmyEL2u1/bqBrr3vbj4iI1HcXEXn6Q4oLBTLl/9s/kOjBhiyP6OCRqzSI6A2xE8JjBSo8BSztMRyvrI6LaGLA== 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=Uq9cg8ytKTJBR4lRX/nl4hyGZl5i5ygI9M7ltLGb4kI=; b=eo24O7etkDX/Di94J1R5KPT7oAX74h8Jq8csTrRdN5EbIubfX4zI0gPlcSKa9UCglytp/rV92hKLg2vcoe8PptzH76a5Q7pI/1GpX6F0U3pLEaN8iFERgqAOlxI9yC+HAKjbjV0ONmgodhIMh1OnX0GUaP8Xi3PPbgWFsEFF1iU= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:45 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:45 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 13/18] xfsprogs: Merge xfs_delattr_context into xfs_attr_item Date: Fri, 20 May 2022 12:00:26 -0700 Message-Id: <20220520190031.2198236-14-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a662196f-2b97-44e5-2106-08da3a9308f5 X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: voP2VeES5+epExXTubQQGJLHFFvumgfXnXnE27gCOmT3LgQqyNkxMOqGVwva0xatSafjNPmVwLUQEPK+7BPc88IHY/55cTnwFA+KPW58jo34HXThVU4v7BEqWla3BecMs0M1vL3aZZi/RLZGgNqRjXEEBhv+65SlKWsL6hk6/aqeRO9vD4x1TjAzEU8RCcF+/marZs2Qn4gOJV4tli/ycJkXwcQv4+pfHo4xeeFE8MRRPbxXIzstp6M/LI5YLl6H8LaJGkoMD+nVrUfVV0yfhL8ifAVBw3c3YUdIR++8SgjRQgZShmXBmm1HGWBs13VBzfJFBRy31h+nSjWYQBmVKaiYK51MlwxYCKziyLCNdMYBUgcfTXDhNcFsSoXKz5DAMdSUn6b1mBBAajzRCApPwawXbVDfUxrW8Rh/77RrMgSmcVqVcGM5GI0dSG8+986fl3/Wea4tY2FMqA36Y/P4fp9EmEKVwYcgiioP9HGpcPVOLF+S610cagimMUvGSotNyPCv0PDYjJ08n0nHyKoGXrwL+MiG37GubAZZ6MQLPQiuAE10AgmJEutfP/9/Vm85oV36+iyyWGlPCJdgVgLkEAr933mJmanMFTzzw+i9jRqEu2lMFPGs57Es4JHhcYbFkbg0FsUTzIlsNsP75pQkS3kVHG4fYMrXdOa/Byag36Rpi6W1T1uFwwyFgj4SNZJsPhqZw47YVCDK3j/ECCSecg== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(30864003)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UrzdaYfNtJuQvgezAg+ERYVS1xXKoMZMKwjryklYi+6o6M71GlyDlyym4cfqUptPS9U5PzGrNY3TehxBwc9N7/l8sekMLr8q8AJWGiHGHuycPAlrA/IKmUCZw4DrZPWIYA9MSWUtnKvlDvujtueELw5QGtDM6I7FYmNIo/E9IRU03xDmrl8zRSJWLMNLXMAj3lQNRZWXRr3Jr73NHLucC/q1/D9Xn658ecDasJErNhZ5+c2AHXo3XgbpyjHFjVYiyp3qnlCpeDXAyrNFLvPuNyu7pOwOrGzbb6h1LfWEldsOGGShTx99r+oFM3t9I2ZLoQxju4HNZeEY0u6n+5QcJ9rIU2p/mNgtDTmlXnHFC8orSefuWp4ogZJ7dZzP8x5bQAPbXaoG/CHnVXnYxbJ3Q7bUZpXYINCKnkvWXSZTOe63B9r/Y//4p7OqIQhcGVxXHkv+r50GlU9ED34xQiBq52DX/xA3ovoFHEj667ZRKHTfhyVoYQBpxraoOZyG0O3SVunj/9csDjsoDeldk2Gwr8+9j6YIqycouLwcW6PcKscy/b2L9x+/r81xQDL/RQwkJB1nAL0NcLVTZz8zpo6LvyaXI+RaXoLI1W60Duf+ceJbMT6dfhQcgSU0n3tXjHNni7L7gEC2tGYtgtoUx+DoW7OzP4GMlnYK33Jt9u8evm8v44dOMzeZd+8XZrgMca92yuQ7KtprIfRnXaP1ZpwuWRd9eXTeLyxN4m+oPYZT2JrUsMZNYWSzmtBg5/2YEjh9eNQKsNTI+tzuriRLMWnn1ggUYO5HYhjyUS6yjElFeM7Ri6c7AEN94ha79KUep/ta7+p9GDhFyWZCWLIn2xh/kou/nj2HhcOLbAaOzU056ZT98GTGXhQvoR9fNCiPtkAfApEY7u6puU2bvNPgyzx/IMhGkN3RU9OMkZWH6gpahD5gY2SrGvRup4wY/FHcP3VbWUEfBezu4oUjRe5w4FAPd3itxFgasawgZ0pemgJDeH4FWCnIGz/vafHNEhNZAGw2EdyUaWEWFNZOPjzt+sLp+pnO2QTgC93yMOZtkejMfBaVcZfxpxZ9OLdR2QZ5zt4IDWfdy8vroiLf6gJ6Q7MLe4Mm5Q7ibSYZPbvmxSKSX47r+nehxTmQzc8yguIkPpm/WEIyMhqXXJbn+0k6beZQU8uae41Lr/tEOMtDfD9vNNXAB5Po714vShNNGW7yfRZUCsPy816hdo4OOiNmU5byaXiHoP3veCCGleDjLlVcSTpYPxSGgSK0TAOq7ZX1oHtfsHPTlj/6943faUkIWi/X0IdmCYtpT3TzIHp8ERxGQJbvuJMWjvOrKt4iM8d5vddW7ySMzB2fM4fYMGGwj6NPBSWcOjA6hrObM0hPyjdYVEWNk6bOm8e05unw1qCTs6TFP4jGM2xO3Macuafg10Kn0DavDrM6b0rdjQNo5h2EZ6ghvEORHLQ5dr1I/y4LqBlYUznJetqPtGwpP7yiGBU4gich5yvaJxe3C4V4F9dZPH95Mib4TGMfFOYeYT8VIMGTh5YIBPtxisZai7m1gmUlvV31Wobxv6TtGL/50+5Mm1r9yvVk7wIU3HXq5o9/pEUotN47D5FAOKO8NQHbFCCkMttEfMhvoc7YbkBb+aZ5YF5vh8azRpreEp+Rdc8rAs/9snNJwqiW1FqKwQeXflqEVrKd9bqm5ZabkXisQViRpK87EzSVM1pIGXWs31+XKEt8pdU9vtyiVWC97RbCTmCKPN7LPcYLQNauMo3cKOEvd/I= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a662196f-2b97-44e5-2106-08da3a9308f5 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:41.2326 (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: C66IW1PFx3G8fMg6f3q+75SFPfxPV2S1jjo9JlbIukDTtHrXmVNr7Cdn1Gf2F6CGtNrmhY9IqQq62yGxJNS7ZPEmldC831Q18nfAY5qoYgo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-ORIG-GUID: 0uvNyJw7WYp-kCzleyqpsDA9zDt6mvQz X-Proofpoint-GUID: 0uvNyJw7WYp-kCzleyqpsDA9zDt6mvQz Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: d68c51e9a4095b57f06bf5dd15ab8fae6dab5d8b 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 Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- libxfs/defer_item.c | 8 +- libxfs/xfs_attr.c | 162 ++++++++++++++++++++------------------- libxfs/xfs_attr.h | 40 ++++------ libxfs/xfs_attr_remote.c | 36 +++++---- libxfs/xfs_attr_remote.h | 6 +- 5 files changed, 126 insertions(+), 126 deletions(-) diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index 17e635224fea..3d77927873d6 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -158,13 +158,11 @@ xfs_attr_finish_item( { struct xfs_attr_item *attr; int error; - struct xfs_delattr_context *dac; struct xfs_da_args *args; unsigned int op; attr = container_of(item, struct xfs_attr_item, xattri_list); - dac = &attr->xattri_dac; - args = dac->da_args; + args = attr->xattri_da_args; op = attr->xattri_op_flags & XFS_ATTR_OP_FLAGS_TYPE_MASK; /* @@ -180,11 +178,11 @@ xfs_attr_finish_item( 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; diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 3d9164fa9a2b..0cfcae5e2993 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); @@ -783,7 +787,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; @@ -1093,16 +1097,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) goto error; @@ -1130,8 +1134,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; } @@ -1152,10 +1156,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; @@ -1186,7 +1190,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; } @@ -1215,9 +1219,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; @@ -1321,10 +1325,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); @@ -1383,16 +1387,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; @@ -1411,16 +1415,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. @@ -1433,10 +1437,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; @@ -1451,8 +1455,10 @@ 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; } @@ -1462,7 +1468,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; @@ -1479,9 +1485,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 977434f343a1..71271d203d01 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,11 +511,9 @@ 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_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 5dc93c3b26d4..40215a4dba5d 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 Fri May 20 19:00:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857373 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F609C433FE for ; Fri, 20 May 2022 19:01:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353164AbiETTBC (ORCPT ); Fri, 20 May 2022 15:01:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49326 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353120AbiETTAu (ORCPT ); Fri, 20 May 2022 15:00:50 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 36CD1D1 for ; Fri, 20 May 2022 12:00:50 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KFnGhM019283 for ; Fri, 20 May 2022 19:00:49 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=ZiMFYPFnmulh5F3212s1VODixNd0cQ7cKYXaG1pevHg=; b=z8gC27tOZs9k6xr7Khxp8yR47m6tKPzKdM6QAovolakpddgDbB5fxvnrF7Md9beNoJMb 7TOqkx23rXxYqDNsxAFmGiSBX+H7CqCdefrSo7JZtadCZOEajGfR0tcjKi6wwaeeOkLE LTZKbPSlK/Em/pbX3GVOwv5g/dLD+6CcrWU1xff5F1ksPl7usi+TSxQYiwId90izfjSO EDqWm+sqJyhj22N8OeReF1ijNxteGlJ4+gMhTG8QXeNzruMWNWcDk0RDSCqFLdzk9V13 tdZE8SEMKfRe5iPocue41C8vvpnj9fg7J2p5DtUOBv2yEASU+ewhDzbdVAUBbyIM+xY7 Cw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g24aaqeku-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:49 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIoAP8034622 for ; Fri, 20 May 2022 19:00:48 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2047.outbound.protection.outlook.com [104.47.56.47]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6mhj7-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZsXlXCSVFSfUlGz4WVyPEgOiJrXfByBV8MADJTOeyjfFqf0J9ZaQ+CeuyOaPOSxIx50RC0ABiiO6F9/p6FLqd8dsovV5iwApE+v1y941vsKMSKIMw57YrPn9pJn5TpPQygdyuathsEonVuCkOlPfou+6ERXQOlQQPA9pRmI604pcQn0p1bzPno8WX29E79MYWC9jCYGTYJRRV0ONFpKLKlMJwWgPxH6HLtZ9yFxSFXWPg4PO8nVBXDpCUJ9J6kseIwEliE7Sn3aduOGj0vwqZ2DBBDZElXacxhPbItGqzMoxKhXHB9/aZR6mAhXvlwVeazOqPYQdJLrTxZJdYsh2Iw== 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=ZiMFYPFnmulh5F3212s1VODixNd0cQ7cKYXaG1pevHg=; b=FwebMSVzsLAvu53gm+zsRUrUxncdwejiDnZa8kMSYs74t824XcyWMF72/gRmBIlqVub8U3rhkqe5zrYMxc/9qDRHCbUQ/VS05bfHh4ayJSjdMx29amOrSLl4oY/g0En+d1vmjbGGkqzcwjqvMXNNpDiT7uJlYAWYqaV/sWjICkLDV0TVF6vy7UrZqrwih/HU3D3xDc3mPEyhKlXofbIW2I0oi/UHFiXHMJs3/W9TJ8oGkQgNOG1JnMq4AnspF+aEspOaxFEPfqXKkqc7LNuUUz29egw42zwRwQu+Ghz7FLFpS0JDP4uSUDMhoN3wTGXEVRJlCnUBxHn3wSehh9+cKw== 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=ZiMFYPFnmulh5F3212s1VODixNd0cQ7cKYXaG1pevHg=; b=S1UGeOZLoit677Nj2SVLHjKRs4wXjdOALOpwjJjptstj0RMgfOgRtbPYuWFy5LO+FN+mS9Ll8BULwuEbrRG+2B9+6XiiLk4LRQ13jfN/tFmyeVJsc7zFi8ffagJv+Pv+vo6IQGIqG3Vw0Evn3r6Ix+NqomU/43jZuus44UpNWOc= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:46 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:46 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 14/18] xfsprogs: Add helper function xfs_attr_leaf_addname Date: Fri, 20 May 2022 12:00:27 -0700 Message-Id: <20220520190031.2198236-15-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ed29e9bf-4141-4256-cdd1-08da3a930924 X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: G8yCD+bZFgeF0v4vWg9le/NThjMe3jVmVrWP1Z5LrO7ncu8Ro2xtAU/3+qk9M4nZB2kPs4sYqgV7mlHQF/hj+nX9RhKqeMwN6QZXWDpbj1b1FnbKJQPiqMwa01ekAtr+QZJUo+lGdVyBUyUdI4YCjTl7jSVA4yjclZiZdHxz3VJE6vhYxw/By79A8oqBTOjQESEzkHatz+/6oczT6rYfGB4NYX7iir9Xf4vIGTB2wMfTMUyEy+IOKa3uZBVEFBhcZY9efy9fV3prtKjXeMGnFurrKxGJ34Hof6mhYTpysvsI0JHdIID2lLv6WMsWLLrHx1/m/CBPAEaJiBskWQ6DoJmo8DkFXZoBc6AP8+KEeheRy0wGNQ39tRNAYns03sWBlKJOB3nVepBRDCzzm+DyW7YUolI8qC6ItsOTedfNbA8zi6Y0M9SslmhifTtadragT9Pi+qQ86WLdeYbxumhEm7eL6j/te2GkZHmQOYeMSiq1/4ANmo63aw9rHgu0FVyrEAonBojVVsvpiBMPOk+hoQ/o0CKf8DMpZAJmFqJbhgmyi4pSjp4SH9kkr5JRd+0Sn5ozJDqTv0jwZ67nUtgMRNSaDW9+20q80giUpz8/VVwVzw/hYjFB4BvoV57H+nnAnI4P831U4fGjy3xXmHAOhkBm7SFJpSSaWoxd64UdMMHtx80pMsSn8PXPxXoGdIDs5rSTjynKrIqsVNVlGk1FrA== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IvWNvgKmca99mTWyaQhcV9xP/lxs8tghYpfx/qld96B9XHsFptxdEHtY/erz0esFmcJRN7mF3rQiS1RQNXkuztHjDXoWSfsUfGJh0Av69zg/0gg0xJrCIF0hTTuPreJgMCRLUrlmmIoXs2Q4dT3j5/4mL13YREMx7TDOW7RRGWSvDAZ/tMNU8J9TSNkquCoOA4nCpgssPfEit7ZI5B2WiN0YPzrqV7yEu9BeFw8B80G17sacloyaBZm2kHKWm6Fv5+zmvgUaB1WpY03dwEu5l9W38ulHrICLXX2Vo+dZolSwSGWNPICck9ctipAh7gwX6UYCZxJg32wngEJlGzKsr2TMEhcKStMZsHYcUPS0j9naxLoEduQ3Ucfgvw3cuR6TDg1Cqb626V8S/Jh1sfy1stY7EpP1ReaV0zlOwTA11AQ7XvzccVTdg0uLrDak67MStF9e8/V2B3KXndZeZpFeOhrx4Mxg6SZ2cCX8RCPccYf2ojKjdBC47MwRejLKjtKU2LIAU0JQzoQJmfZAWZ03F6mYy/1zoFkfUdFW2bbkdynK1yenjHRX5s08XKJploVDzhYxr+4HgCPPm5XtnL9hJPSetPIBlJTuF3Db+zXHTA77N4i3C6/bkR6dptQpalfPGjTZER7CXWJhUJn4m5u5MMB+ArXU1uUJUulICn11ptbz/tnzj4ykFZ5e2xZyo+o6xC7e/CzS+OgIYtN8ME55W9zqIVM2DB0VNMdmV4FbeWb8kZ9uZ0sZIlju9F8Ec6Tgi9vu9U7Th+6T4bUpLLe/9nbQeKuQH7CIZjvb2fGKffFfD3bDgbrgfBCGJlSVCjbXhNpdyRvORD+Kw234MLZOkOQ1noubPs5jV554NvCaV1wODo+Jurd3j0AWQknChY0kscGQvQ4WkRRYuTc4MFqV/M0bv0kQhFqTvIiljOnC4rJ3PU5+TyUNJhQa/Mym9eOHycuB8FAHWhT3d/CPYf5/oaBsa1+pomNC9DBE9LMk7QhcSj6gyRIQB3h78YHh0JmP5ImTL87yOT6fg6vnmJNAlgsKsMbQs0m/pPQLydCd2R640tz4mObaGHBhfjOPIW5KFJ7KS868QdRGY/+KHPBCiZxUs+0NPerkpQ/pHMWnTpkv+N/aPB12OaWI5KknhwbqpUKb7vMm87hXv8VuaBB/BrhI7uUrgJoW9QSR3iCQJJ4bCxKM+4zpIuWpBbADuRZMakxjYsXFPzNvms6PjUvziQTPUnkv5Gg+qCbFrDzsbDm1cWI5hQkART125WnqEnHFUnoLNT8z/AxX9BYRC9QkghJWN9KlLO1vXMVh2ofX3rv+wRABq5swYNIy0PbtJgiGjC+i+I8XoZMr2IUN8dKjpaK3XMU7blOEz73Z+lo0TDE5f0/qaWQgctmnKnD3xuMe6b0vtK2IB6yMHrvChZbDlc6KpV79khwOpOgD5iKY4/xSvcV64Ihpl/nL0tFAqDrF13Db5HoA7ahhUuzxQEvhx7k8IOWu/LEPm1GWfFWVjq+7+jkT6cqzByYhzBydeFrxwpyJbhtbTxlDjh9ThenOHRo26ZZXP7/20WCOvrrElw+8TeEBI6gCY8gKDUWJgFTKfcK1nyMsMgT8ObcH2yc0SEoSI6IhQmRjfAquuRexdOeYD9Ds2ztFaKIbDaucRztCk7Ima0GQoVAbeJ37HJri3y6shvWgcaDwevgjBwHuF9XUK/VlZ44b/YCkg7tXP1+ULvy7kuxw7oiaMaRjjtivgywc2Bt8NSrT0QW8dagrOt4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ed29e9bf-4141-4256-cdd1-08da3a930924 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:41.5294 (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: dConMEO1FCEwkED6b0Aq7tvtyI92i+4nf8aVvkRiJrdvLZmIit5nbX/Jewo0sI0Z22i/rPWjaVyJL7oGUgqWgKrXltvicFOoVmbJ74WG2wU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-ORIG-GUID: evI0kXmGu0TKhM9UFU4gLbBVk6ub8xUq X-Proofpoint-GUID: evI0kXmGu0TKhM9UFU4gLbBVk6ub8xUq Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: cd1549d6df22e4f72903dbb169202203d429bcff 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 Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- 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 79743f0457e4..4261a6655067 100644 --- a/include/xfs_trace.h +++ b/include/xfs_trace.h @@ -41,6 +41,7 @@ #define trace_xfs_attr_sf_addname_return(...) ((void) 0) #define trace_xfs_attr_set_iter_return(...) ((void) 0) +#define trace_xfs_attr_leaf_addname_return(a,b) ((void) 0) #define trace_xfs_attr_node_addname_return(...) ((void) 0) #define trace_xfs_attr_remove_iter_return(...) ((void) 0) #define trace_xfs_attr_rmtval_remove_return(...) ((void) 0) diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 0cfcae5e2993..6833b6e87f3d 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 Fri May 20 19:00:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857374 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3F3A3C43217 for ; Fri, 20 May 2022 19:01:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353176AbiETTBE (ORCPT ); Fri, 20 May 2022 15:01:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353141AbiETTAx (ORCPT ); Fri, 20 May 2022 15:00:53 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E473818E20 for ; Fri, 20 May 2022 12:00:51 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KId7EO028574 for ; Fri, 20 May 2022 19:00:51 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=ah1GyGptRsFpKeV43hKA+otpXeZ/7FBjpbS5EyUDo/g=; b=QSj5hJVf5a9/xEMkWZXjgMtApnv4r35+wku9Rf9+l4TIBEqR/1DeZqfefjKCIjIsnq0v mt1IUBmjecmVBE2QlUkQEvqWHJLB9UOLhSrP7woeMuUMDrJ7+BDTk+mfWVoQ8JiVuLxQ U+kndCOO8wtVoFDHseLg4PgYZwKFLebEB52jZ9/EyOzY6zxZgdd59awax79bpGBWHHY4 q8k1mYjHiXrr5GfN3/ps/sGu2eg3kuF7pjyUvOgx1/GvrK+KdntIKgYH6Qj4970owcCE jdK304ThlFilFYhL3kmm3iv6toEfDIqP663R6GpOcAFXxfVL3pEyUSYJEY3EuQbDdAsS fw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g237284af-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:50 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIoAPA034622 for ; Fri, 20 May 2022 19:00:49 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2047.outbound.protection.outlook.com [104.47.56.47]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6mhj7-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EmemOLStRprRCsQM/OFzkM8TK9Gacq90RhmPiOZzusC7v0zVqJMqXoM01MFrOCSfg7J8nd1Yzrw1AWYpaE/ZISXx2o1OlcdV6KqSLyrMP64cNMaIr4mEWo1Weo9EO2oN40NzUqsoxZVf6BbplYCjfhFggiOdVRl5RufFCt09bTe4wXmw/JadJTZMubs2i8amPrwnofCYhvVP4CQGSiaPDzlXLnPHySNVB21/8I0deL655kdPU/mgNuaGgOkotnRiFErgNMAG+huCt0Oh+vkQgJ+sSXC5OxZovZOlHbmee6+z2+8CUliEuxPe2uDhRkVksarzb5YghMnpltyDy2I0Mg== 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=ah1GyGptRsFpKeV43hKA+otpXeZ/7FBjpbS5EyUDo/g=; b=Ua0xb6apojiAO8UHpRezlg3R33MgXsFnKShJf5Id54gsFUEYrS7nTrJgPa5zXvITKi5oiMsTfW/AGawU+KrkhhQp9YzrreHLN/+z7LHbuFbcDeJZGWeYQNSOFHOgn99rJ1uhaU9CMRnbfmBrKxS89DqcGCtI82eZ7zBiEbRY9LJQxGiHiIJNG8jJ4R9kP4IYE/qITJfhieC2cqi09HPotNgV9X6hLbjYhlD13Vi0nKd69Oj7EeL68v3BzuIpfhfwNRtduVaS3gweYBuSdVvdzpipzzsFuoE3wXhGThVrC1woroSgLXaY6jsHjVuAI3jUyTDWnUcxKvdpPi6lDzwJKw== 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=ah1GyGptRsFpKeV43hKA+otpXeZ/7FBjpbS5EyUDo/g=; b=eKouW0g+imtUaKCSGFlxMXV4SMP4iERJGQXy4MV4GKIXPxunbAICwnOYNe0nx5ydSvz0lGQ65aEe3mlb7oHxasR77zMYX2YEZYherVD8B2cUqHzoTinbLGc3pWdE1IaubMrkQqGf6TOJVGIpzZIA5Pi23vPNpncIEUkJpBsDrY8= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:47 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:47 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 15/18] xfsprogs: Add helper function xfs_init_attr_trans Date: Fri, 20 May 2022 12:00:28 -0700 Message-Id: <20220520190031.2198236-16-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ffd7b2a7-bddc-41c0-3c57-08da3a930978 X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2P2fZq1t+hHc2FWvBTp34Xm5+rveWUf4rOfKQv9nioKPcCZ92DaE1j0pc+YPdDJEwZh38oZ6SmhQ30k24a0zOV4kqfnFc70e9bnoQ06p7HU1wxMzXlyj3af5dL5vir1b/NLOcStn8hOFRm58HOI3ooQOfMGVHPwTT60NRSS03UnY3kCNZgspB+YdZTgKyj4IKO4VZkIayETa2vAGpKcFw0Hk5gXCCLBToAPNeVcgFkAFwvZQwj8sVTURdPo9B8QxSyEP4GEfSwH/KRMEIuqLFS5yom5wnKXAOHv3ecOYampkZlltSnrxpgSv4ZLccNTwrbmp28Okinm2Xyb610xg3hZ4cMKD5O4popRYhtxnQFvPf0I0rLtap0H9sNUXpRpKx+sVdqYNA1R9VGrj/GI+WF+Rr2POVUNjdGtZUDcivkn0dcbadKOGWVErEPAtFGSg3zRGJRtNcHqhrFNFiZFe/OdJxO+OH302HF7nMnVROe8zPCEYt6uRLeu8mRuLe9zVQVWMgGOAruHY2G7Sd4ALB9ELghy6YZRQQPgoI9GcSY12GRYvVnrrlcYvYr1ux6sA4C8cskrfDvfKg/vOKjBhs9OiiLG5gWBRfcURzm4NtafS/C1cYZ8ru8y/3y2AHIrv85/4Pt2TfY7GxurMJz4kqWYUQCqAb7yZjOX1OGeiYlUshABWPNU1+CnxUXA24c2omwpoIUWrpQL1Z4znEThwwg== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: J2+ZXj60FayJtuApO5r3R77DdWzhDjalpxDcbpeUekMp/VJmnXtQZk4I/vlt7fpeA4F9EJOe2jm8yZnCTh6VM/9bV6bQ80G/PlSe7m21FJEa60woHjxSvbczI9vTqM4DKK6rsGgIV1KYjQRaFKkrz+PANc8Ez+lVkk8LSgGFwBzB/xR4fhSyMfr/MuQTlmdLDBKGxsT+zM11UXP19RBJyLiOAKLpADluajwy5c4xUXmYSo+xy4n02IfEbYrpDdN1R4J1D8/xoV9OLMjfqQgVabya3Z6BJw4GwjluNe37XtZgSiB4fTYeI0SDPb2XN4M8cYt+fLcVXVCbcLWvqHwkF6eD9HBF5tbV8Qxoa81mT5+eHHADRCSt2PAjukekKy2vsGfTnaBMxSQOCRYM9h2oVlGvvWS86JGTNcSYzcVmmU07ujRaKw8NvHgukb6ryjvYz//ZT31cXEwTM3t0zq+BYnZBUe7NCk+5qjfMAugzGJWvl1KjdKmlmrnwizApcVs74vwnvelIPTkuggiE4D4Ol813JQ0SfvWDkq8PY86MLwVRbRk0+tKP96+LvMhcqw8zWDU6F1r9e2a/ATchRpW+iTb7QLR+1IwJofP3LhWzVPR5h257VwQtS9l+aE6XpIniE/Qxn6ab6EFzV2nxLESw78VkUvyfUoqPF7iDvQqq3J8Jc3a0gR6wUl/zBDL+Z94+q2WMrcoJxc+t+wTjRX/bkfYOlnf5lIgbkgDmce2BpRzh0RHhdayB6qtB703rOIsZSR4VmFX6TQ+RrbQg39rQa4G69ofXstEQKjVyPz53RsOZyWU21+MXLRXdaJs1OpthBVGBiOkdbgM/AIRRzya6Sy8cPhm0um+jTmwVL8tw437HI3fH94Hr6URUDjVNvIsfosDkXDI2340ANj8k+/Q2kyp/+miS+ZiXBYv/Q+2udEQaldnt37em3O51pPujgNr0pN/oFQ5PQ/ccKA4oba1KJUUEblu0ZFn2Vn3SM73QMZ7GCHMs6x0zXA5mqKZz8Mu7qXrNK6ZXTJjQMCFYEwB0MWkGvdylnMHQ81uEkYYyuB12EUk5oTGVAdehfpgoldU+nKmmQfSYLfvBSknfxdxNT4y+CEotrAnWLerMOK0/7bpPy+FjgncIt1MYXQUQqkB8gPs1VBLla6g8oV4WH7zAaJe+B98P6yZ4/wWuFcDp9qzuGyWncz7PAcN4KOvOU7EHh7V8py9fKiWzKvz787COREFWHJpLnR8K2n7xXOBORGU/WEV2VsZineIM8Y0JoDixdGaCH2BYKtLr89rxDiXRQFWTiqsP0gFCZb3+GXSmE/CO1KB6l7t0CIIZKvRfISzEfNNE7yFVW96mJhSr/3CezEujt1KWuvqoRQHfO4NSpEudbNb5KkI6+qvesW7k+Plvjz7mKZU9HxX1yGVX3qu6cFjPc5fcWcXHZoZZBM45cZoxV/6/w5sbOEqcB2Y4Gq983F1IZ9bBmSO2SR/nSr74i2lfqWJsjWLP3t0+ECN5Bh8LvSapPyCLGbIGY7CiZpJ52+88VM5WztB66mKh/jCoZ1MF4Dp4c4f6QkHRsyXu5LKpiI+3QtxUw5AIoe36fKy5FCbCEp4QLEmzCtWAC8J8IOM5jZIBxORO40zHDoNgxXLx4G2Mb0fBYeg59xJjlkSUqIDVlTMgPrP07qoGNHfGoME51VdhaNnsZQnylp7A6s+4Vjc7Db/THn8GAr+NMIxb3PnR5tI3HQn1Y1CV7gRgQERXXmCuyN/1AqXggxNraT8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ffd7b2a7-bddc-41c0-3c57-08da3a930978 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:42.0918 (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: 8Xgz9aHZD8tB2Q70nL1qwsU5Vl8VeFJjmsT/BLoD0dn3jpwasCsudv2RlwgFVKpWWDkOvVrUYRvSEMJbBzqvXAZ2VXBbExMBzRykchBrU8k= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: g3ZJwmGi9gtVX5FC6zh5_IY6PuM7J7Is X-Proofpoint-ORIG-GUID: g3ZJwmGi9gtVX5FC6zh5_IY6PuM7J7Is Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: c3546cf5d1e50389a789290f8c21a555e3408aa8 Quick helper function to collapse duplicate code to initialize transactions for attributes Signed-off-by: Allison Henderson Suggested-by: Darrick J. Wong Reviewed-by: Darrick J. Wong Reviewed-by: Chandan Babu R Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- libxfs/xfs_attr.c | 33 +++++++++++++++++++++++---------- libxfs/xfs_attr.h | 2 ++ 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 6833b6e87f3d..bddadb143179 100644 --- a/libxfs/xfs_attr.c +++ b/libxfs/xfs_attr.c @@ -196,6 +196,28 @@ xfs_attr_calc_size( return nblks; } +/* Initialize transaction reservation for attr operations */ +void +xfs_init_attr_trans( + struct xfs_da_args *args, + struct xfs_trans_res *tres, + unsigned int *total) +{ + struct xfs_mount *mp = args->dp->i_mount; + + if (args->value) { + tres->tr_logres = M_RES(mp)->tr_attrsetm.tr_logres + + M_RES(mp)->tr_attrsetrt.tr_logres * + args->total; + tres->tr_logcount = XFS_ATTRSET_LOG_COUNT; + tres->tr_logflags = XFS_TRANS_PERM_LOG_RES; + *total = args->total; + } else { + *tres = M_RES(mp)->tr_attrrm; + *total = XFS_ATTRRM_SPACE_RES(mp); + } +} + STATIC int xfs_attr_try_sf_addname( struct xfs_inode *dp, @@ -695,20 +717,10 @@ xfs_attr_set( return error; } - tres.tr_logres = M_RES(mp)->tr_attrsetm.tr_logres + - M_RES(mp)->tr_attrsetrt.tr_logres * - args->total; - tres.tr_logcount = XFS_ATTRSET_LOG_COUNT; - tres.tr_logflags = XFS_TRANS_PERM_LOG_RES; - total = args->total; - if (!local) rmt_blks = xfs_attr3_rmt_blocks(mp, args->valuelen); } else { XFS_STATS_INC(mp, xs_attr_remove); - - tres = M_RES(mp)->tr_attrrm; - total = XFS_ATTRRM_SPACE_RES(mp); rmt_blks = xfs_attr3_rmt_blocks(mp, XFS_XATTR_SIZE_MAX); } @@ -722,6 +734,7 @@ xfs_attr_set( * Root fork attributes can use reserved data blocks for this * operation if necessary */ + xfs_init_attr_trans(args, &tres, &total); error = xfs_trans_alloc_inode(dp, &tres, total, 0, rsvd, &args->trans); if (error) goto drop_incompat; diff --git a/libxfs/xfs_attr.h b/libxfs/xfs_attr.h index 71271d203d01..c0fb4315a7d0 100644 --- a/libxfs/xfs_attr.h +++ b/libxfs/xfs_attr.h @@ -515,6 +515,8 @@ 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); int xfs_attr_calc_size(struct xfs_da_args *args, int *local); +void xfs_init_attr_trans(struct xfs_da_args *args, struct xfs_trans_res *tres, + unsigned int *total); int xfs_attr_set_deferred(struct xfs_da_args *args); int xfs_attr_remove_deferred(struct xfs_da_args *args); From patchwork Fri May 20 19:00:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857372 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2F803C43219 for ; Fri, 20 May 2022 19:01:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353172AbiETTBD (ORCPT ); Fri, 20 May 2022 15:01:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353123AbiETTAw (ORCPT ); Fri, 20 May 2022 15:00:52 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D1385F7F for ; Fri, 20 May 2022 12:00:51 -0700 (PDT) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KIb59M022587 for ; Fri, 20 May 2022 19:00:51 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=t7bssHZx9Z6E8wnFxnD/ZpgLELuc5ltv8xxX5g22hbc=; b=H9LiQ/VopfTLAsy6sWXiIHII6t/M9TumOvZSMzmj1dRC3/s/f9kY0ggmJZOkKZ/pBbue bEM1JBC9WGf74WZn2nTspV+hUJlkOZXAYf9QJ50zkQ8qb7tmzY6SFTGtFrN2BzstAygD dPfz8RDxdCYmpzFSk8xdZOUyd1egvPSU2/fSM0rgCViq7BZQoYSOQRbpTYRFWelFAp+d EhLoI+80a8gzaAf9LsVAQAHluU5sZDF+k0y7Ybagfkedrp6rUXJnbxtx6FpCHM/Qz2Kf 4FkEqEFxchRaz18ejufsCnO43+WB/fKQCPPSegP26Zx0pXqZwuytDCuxSTFv2n1V3b8o 0g== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g24ytyx8b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:50 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIoAPB034622 for ; Fri, 20 May 2022 19:00:50 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2047.outbound.protection.outlook.com [104.47.56.47]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6mhj7-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MKye7UmYTvTTcO7X0Oft+qBAeOML0M2WVaqHihWpa7x/THlBoCDSC0vZdEpKPu1gX5MFkgVerafIrqUPf0WZkQEbDWd35Kg349H70pGQO6GaWAtU0sxtY7x7X1CAjESJkh8NryAPkQ1A4RrJNU2/hwdpQwC3iU+J1z+mrOfZrn73vnDjkm0/BUfGvX2TwUukZ3/GNg7zuF7YjIz7iwSse8qBTOCuAeexQRc9ukA7hZG24w7pD2PMjQGDmHnkxZ2kqi5y4+zNjXjlYLADWJyt7tdcm+rpKi9Syo12BgLGByxVb4qAdflDUuiEKJR+mGPmGuj4hngxNgWvhzVVRtYkDA== 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=t7bssHZx9Z6E8wnFxnD/ZpgLELuc5ltv8xxX5g22hbc=; b=itfHwvqYDvgq/DR3EyWIDoI7iKaiN8SjK4QDIRahWaZtZyPrxd2qVadv/B1Gl2EbeEa8c8ngiKSkc2kKJpJZgPzAd4z2vfBzK/ZtT0NTBZAAndtkkRlN9gCKlzcy97GypRz/uG8Rkv1ySEwNatkYuXlf1d27KywTcZrDIt4W4qxV1EA8d1PqEgtKPgvUdyXJGsKpoITuthPMVAakFVtON3KClCnRFM1/je7id8xIz0mq7lAajXeqtryRzYMNWjywyc0eKNXrWeoydxkjK19gUoVY9xyi+CRX0XRbm9Qg7m3GzzX4Vx1SDCzmrdgwNKhzAz7/yOyxq6JOcIhGjyQEqA== 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=t7bssHZx9Z6E8wnFxnD/ZpgLELuc5ltv8xxX5g22hbc=; b=rovecG30+kAkhfgL7EN7SXt0MVff5tPbmzpaKeg6Rcn5z9kR+1lWaabLN8NSyNLKh1uiEUMhaciQQaZF/xZXZ4s86QbZPnurtfzvnLQp3CG1qgsydQ9Ui6kFnDs7tXgS54o4vXFUroXBuBwWdm0k4OAWdTcPmkWeYKTDq65gdNI= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:48 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:48 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 16/18] xfsprogs: add leaf split error tag Date: Fri, 20 May 2022 12:00:29 -0700 Message-Id: <20220520190031.2198236-17-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: df3094e3-cbb0-4ae1-24a9-08da3a9309a3 X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +1AQFTRAXlqbXowp84mhwLJb0CFTMJG+8W7hSi+Sf3S7/Jkcn5mSQnCI7lcKeS9vbAQLAkrxq2DJcm5Zes3mBtnZ/p/CCGOVTeHNiLTq+yFR1Scb1qwn8R2cJcts+ZiJNJt94E2XVHaV86bFVXFkQgdpkwX2Q6niFg6PPRJ3+nK2AxicaE7hlId8uC5pgslvo+/sNfUijFqmhaxiVsWBBlYKyc2gt4WUpEBFXwk7Vgj2zT9WzxRZlxMcg6BwWjG5jQrndx1erZ3Akcv7S9wth7urpYXUb8s0nF6bT5cKl+aM+xKHkrBnRJeKOuAT/aR/NViL0EU4ok11Fxgy0nikiBOYPY53tOxAiR18fqFBNaSn9er1XGAibjbthVK1MNhaQhN5Zk7lH3euyIhp9XDFmm1exjanZyMOARwlZ3bnQZWJe6l31rXKI7wZzpjN1PIiSxRKgWK4z7c8sDTdqIhrB8jqbG4SnHMOy08jIYGtgT0ZVG35/YzSReBPSZMWZrQOGDgC7gV3rfQrQGQiPU1JF7Nadk30kLjP+bAjzQL/9HH1i4IA03rdsfE8BtwMtnDZOaij9alobqz6kFrUgWtvvYYg6dBQ+ut8WQp1wWzRk5ni7Ro9fUGUJJY09SE8cx2VCL+rV6NAsrjAI4prUQklhWAnCkkq/MWm4CSVYWtLuuE70Mf1B/1aMZhdRpOuv0pbFrF+JsApkvua1YkZQAtEdg== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: btKo5k7sGj+aIqPRbltCgZhFBl6n0eXDssCtmn4X71oPRjNCb9AXJb5ULiUYIy/YBj50u+dhD4uC8WOyRF7Rlj/FM1x5v5vgkI3RbB5nhZGJ950yP7NhExS7eC04354n/8Jqf7VJHWJVKrxQR196xpznr4ya4UTHYBk6w1cjQ9rEyjW1YY13qltkZZ5hg9XJ5zvsJZ0VXlN0NzEloEei/j1OMAiCqdm/CS53CCISvmdQuOsCFXOda0fSgsJV/ZjRlvMpilw4dJrpcVq9eCOxss21hp9lL8PFms1vk2Y/GosKl8tdBtG18bA+osXJ8jVTZHSHFg/z+o787Ezxxx33frDyAtnk5hycL4BzMSyFVNwIWLxfZe3VGHCvMxjelw7+B92bkg7SQqzbGFf1f0InGqkJFehc7OPsy0/BF9pyD6XJJOPYNs08Cy9OxM5Yzt6aDQ8lHPkTgOuhueC9VB6OzPpDTPxMD5CzEvbNJYH+wyhxonupOWxTEcGfcawviDy/B2+2dZJBsdGyEwZzYaexjfH9MBVQcKIjL+okePQHlGa9pbz17N8yNl6oGCWbjpCb+ZkQiA/EFkKQXYzcZD9kdLM4/IYwukXHRw2hkBvE1bPVtbB8ywHAxBz7uYQeHLqBP+IbksY4RhwOc0oRB6wcltWeIyRPW+fS3nr9uBlyVm8smWAcy5dhZYLWHLQNOlg4qzHFsuLDOm6jpcKTnqj9VIZ339NB4mTUyhBxqkLHQgpu5nMVm2AgG0xL2+Na2P0iKnO+t4Teiu3fwWHGT5G3TOVdqy7e/xzCMuOUBEDkRFpA/a+a1jp25B9SDcK+mlb5ih12m69yaXd18EHiCXy8oZl6caiLrw72jcuXhuum0ch7dV06sva3q72GuL9GBw7Anw0a6zr30Mjr0aZkV0tHn0NBGR4FZbPgJapKF6qHiqV7MlFDN2Z0IPwQdnDNe707mGVc3Eam+xRs0hbJ4FL2E4xtp2TA+1lr2kgLgLuvKXeihgFTMZcy9ZwwdKcHreEUu54SBT0j0piOo0gx8/jY05cDBnmqoMrh5qP4q/paRC5nV8PYHUMlojb7WeEaeMb+VmRqatMMi207wJwIm4UiNOa51CNWTNuQ0GVA13X6HEacVWe0kDBW2eApYj5+Drn6zJ02YCSfl2tTHzJx4MfUQm205wjHOMg6OAWoi8eZBYFeiUPKmvy+cLqhZj5/ZWiplfQQkGoiXgf4DuljPdqHj82LlOqsSe/XZEDU45z2AYhSYyZDx20UeGXk3ufLxsHnRlr3WjHdAeyv9Vr5fUafh8kC8Ccg4TBUAhen3Km4zTbawJS+ohUxCs9QI8kObehPldvxwmMFufWTTPKC26JmONd264jiGAPvW++o1bxTWUHCEg8CYiX7i75czLcbsw+DcFE9G0xDOvWJoj8/DHgd76pgsUlPXwr7+MI/Ywpjxs2c+UcFaw2d/x8rMpDF2nBql2iRXnS1eKBifktAHYBUiEbNsKOUlTYP25oRY/CR7ecSxTq5wcH0sqq4qfATeRMDSpAbnMuqsn3G9w+tAb5JsWEea8ymX46MkufyiRFQlapziBkvS+AMRjieA3ku5lz1023FdiElIL5xhSMl/MaDj41WTh/9zEEJvy123Ue4FWiw8wS+OpvHmDCrhOozwp6JanN87teuyhhS7tvJnf/cGhK1IhsoDVMKfvYbq33dzJxsDkoxuZHQj552wjIB/ZqaHxhX+oLRKu5mmn17F5Z5wAkGGGyl9kVjXzxvezUWe8o= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: df3094e3-cbb0-4ae1-24a9-08da3a9309a3 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:42.4055 (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: CgXueyOzMYr31hhosUvK/9K0js2poydfCevePyGelTrSQaSEWOEeKmVIXp0Zr570mePOaUANG7VlrZlKLNYnsRHexsEY2EIdUf5evLtdYi0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: btFjSN7jKrP87Sdvr4TCBci2ykGPgkcx X-Proofpoint-ORIG-GUID: btFjSN7jKrP87Sdvr4TCBci2ykGPgkcx Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: c3b948be34702a0a81f10662c4040e500a90eb54 Add an error tag on xfs_da3_split to test log attribute recovery and replay. Signed-off-by: Catherine Hoang Reviewed-by: Allison Henderson Reviewed-by: Darrick J. Wong Reviewed-by: Chandan Babu R Signed-off-by: Allison Henderson Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- io/inject.c | 1 + libxfs/xfs_da_btree.c | 3 +++ libxfs/xfs_errortag.h | 4 +++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/io/inject.c b/io/inject.c index 43b51db5b9cc..a7ad4df44503 100644 --- a/io/inject.c +++ b/io/inject.c @@ -59,6 +59,7 @@ error_tag(char *name) { XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT, "bmap_alloc_minlen_extent" }, { XFS_ERRTAG_AG_RESV_FAIL, "ag_resv_fail" }, { XFS_ERRTAG_LARP, "larp" }, + { XFS_ERRTAG_DA_LEAF_SPLIT, "da_leaf_split" }, { XFS_ERRTAG_MAX, NULL } }; int count; diff --git a/libxfs/xfs_da_btree.c b/libxfs/xfs_da_btree.c index 1f39c108782d..7ecbc6812725 100644 --- a/libxfs/xfs_da_btree.c +++ b/libxfs/xfs_da_btree.c @@ -479,6 +479,9 @@ xfs_da3_split( trace_xfs_da_split(state->args); + if (XFS_TEST_ERROR(false, state->mp, XFS_ERRTAG_DA_LEAF_SPLIT)) + return -EIO; + /* * Walk back up the tree splitting/inserting/adjusting as necessary. * If we need to insert and there isn't room, split the node, then diff --git a/libxfs/xfs_errortag.h b/libxfs/xfs_errortag.h index c15d2340220c..6d06a502bbdf 100644 --- a/libxfs/xfs_errortag.h +++ b/libxfs/xfs_errortag.h @@ -60,7 +60,8 @@ #define XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT 37 #define XFS_ERRTAG_AG_RESV_FAIL 38 #define XFS_ERRTAG_LARP 39 -#define XFS_ERRTAG_MAX 40 +#define XFS_ERRTAG_DA_LEAF_SPLIT 40 +#define XFS_ERRTAG_MAX 41 /* * Random factors for above tags, 1 means always, 2 means 1/2 time, etc. @@ -105,5 +106,6 @@ #define XFS_RANDOM_BMAP_ALLOC_MINLEN_EXTENT 1 #define XFS_RANDOM_AG_RESV_FAIL 1 #define XFS_RANDOM_LARP 1 +#define XFS_RANDOM_DA_LEAF_SPLIT 1 #endif /* __XFS_ERRORTAG_H_ */ From patchwork Fri May 20 19:00:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857376 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6286CC4321E for ; Fri, 20 May 2022 19:01:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353189AbiETTBH (ORCPT ); Fri, 20 May 2022 15:01:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353142AbiETTAx (ORCPT ); Fri, 20 May 2022 15:00:53 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7D324D1 for ; Fri, 20 May 2022 12:00:52 -0700 (PDT) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KIoCuN004434 for ; Fri, 20 May 2022 19:00:51 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=h4Ibu70qyZQeOyA3M64Nm8bNnH4zHPAmwCpK3K3bjfA=; b=YsXtXNFj4/28xw72zZaNLbzGj0oZn2T5ConAbLf5gm8T1iPF4j3xMsapkicA9k/L2qN8 QfmI1tfvav/e2bS0NhhzDzBv4b37pT9rWwC8P0POTCeki+ZvtIygfCIlKXnAzDV0sVy+ 336WePE1ibfRY+ZMpTanSzJxYeVkhOb5H7gf3dvzo1M+oc0pYRVJJHWgtKB6T+FjFTXs 08w3G71P+ETfBStZ32eQwfbVqO1zPBY60x9Qz2S/twQ2Eur2InFq/0+dh0zh15gRDKzZ CIJogqIHXbvKerh5N2Q21AW+AwGh5NMDdejFQvwAwDB5Z3xjSZ/+yO2D4u5aTD/QWn6r aA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g22ucfe43-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:51 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIoAPC034622 for ; Fri, 20 May 2022 19:00:50 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2047.outbound.protection.outlook.com [104.47.56.47]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6mhj7-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fGbqZFGr7oEK+L7rqthRZsmpncwYqB5LGxKoj9tsSRPP/bvUzFEUnQpPOpq1xANj3lzTQFc3mxv4QSitOL3CdbCKnPqz1L+JOyOaUYxkbPuyOvw4Uj0LhaMZT9++Nb/Z7uM6Lq3tj1eJvjYfjTk3zdndZsM36a8ucIKDvLA1tmgwj8WeuBIiM3wH8k9ztgMYIrwFTbzxZNykJ27+TJIwWoo8J/8A/qnXmComD/UYOx1u2Anq5uSQw6BCUOBup/pVbRx/hcBAeMeTyrf3B0BqMa5rC0G9WG9p5nM0UksGrSXEyR6lCkSvq9ruDWxnFdpbldEhgrPOMfVxhAYD1dPCQw== 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=h4Ibu70qyZQeOyA3M64Nm8bNnH4zHPAmwCpK3K3bjfA=; b=j2kGGGUrMGFWaUjUgXb7azndISSwekYWXkcuDLTn2EwuCrHoe2TX+cz8v3Tx6rk3zCpmOTmI8oX7LUs8ZgPS2Z8yobuyTCgFSWqUHxFm6GDZzlMI+bXdTbzq6iQ6rVgw8M8W11E7xzKyv3VO49MGdY9tlKkZNdR5rTVbLLmDKe5yaTGlpLfl8NfIOCnhQVFlIfQll921fAmxN7tGEsHo3mKnK26Q4pe/wXEc75KNeE0nqBapWCEAmvCXS/Pz7jfPpAvmAg4DXrAL9TG8pHg4ZFeeii/HxSQbFKW/sLKfZ7sLjg71u/3GfMdLiiEQ/UTA1v5zb3OsI6ryycejV+7C/g== 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=h4Ibu70qyZQeOyA3M64Nm8bNnH4zHPAmwCpK3K3bjfA=; b=vHGi1dmkgAyP49oPXc8QXHLVZEzGZ1j3Q9J9U6/0xwwvxNmSdCLjCa61IwgdV8aFXovKSYa8CaW7KWc+02hX5Gdt/COKnqaCnEjVlTBO91Wbnz46d7mbzYk2g2Nh20WP7Nhm+tEWifsOAWWOuoprEiyDDjnPCNrXuZhQeFVoDL0= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:48 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:48 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 17/18] xfsprogs: add leaf to node error tag Date: Fri, 20 May 2022 12:00:30 -0700 Message-Id: <20220520190031.2198236-18-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 50238036-f962-41e1-c6a5-08da3a9309d7 X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 28YOew08F8L5qeVMcY1xpIDUdbj2U8MUCutJBLTLAyiTZDm9kboFfs65GkoRyXbL4UEVlL8muFia+8SxVtZ+NSZRrwmalMRoNOQMVVYaQzy9jjV2FlloyfAgs4T966NyMp+fVeOk+om97+BG7YDkth6U0Rbf009ASEB7NClgcqiJzThgSrhag/aA1VuNBBCSdM/9lrS+QYjO9b8O4+znfPEfLtusxgy9V/3avPo05g3GrwjBxZ9mf5BHKDQluTLiA1qlTXdo60h7puiqIL1hQ7kaTIxHjDJYrdTEfUu0DjsVMricSURsnrMAg6OS1gNcqYodens9qPhXPr1LUz0j9UTXdbCprpZElOU3XXkcD6uINZcveV4565ao7qDRgHrdRzvzSh4lkbmLYkRiAeDivlywLpPGJ2Caf8BMlJZhWr9VF/7pGD255unFsoIeNFaiACDeIKeUUMFRXCO/hhobTbHorY4v2lQi9Hh1si5oq0+nD+QDtCZJSZUZhoWig6dbGVtIAtjZDNv08Ap9XdiyRjLNUVsNmRCcycejE4bWTgwoF/REpfBUEDCfQpEZxpeMqlC45cY2y5Mc+XBvxpH5IXGIM/5nN2S0xcUywYsogeXlqrzzwWidprkfpxzbpUEajY6tLadt6tGYZrYibZHl74HpYZCwwVkHOVqGW6hYNb3o9OExaI6SbkgHjtFbeodoYfIUM9OCilkmEpC2WZDs2g== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Huxc73VrGxzyYsEUTDQ9UM7T3feb7VETJ1CAjoRID5l5oGSqttjU1BtE8xXr8scH/q82Lugqb+oA/S3fqcU0R+VeuBYyqbR6mAUndFxgzORgtEoeipyG/SjM4TZ8bUAW56syHjpxzo9AwAa0df2HedkHPHkiGx20qWpr/k+muz0k+j7L9zvAv55RS17Fk1tPeir1y6QtEcfbl3w5IhpVbTLhTfRLoLW7aefQ8AT8ex95Dr490BKgCWD/l8zA/Zr9DtT2TSo0AjyuJYyWJ1Hv4pN6dJUS7jsG4cmWJtoBrENLCq/7rQU688rud8IPMWbjxofV+HMPzfBwa9KA9PST+A+2DHs0h0QcJoS0hicH0h6tTOEdErxMYM2lsAbtvGqo6cEwUaOYffwG3rSuBjEVy6UbiH8xnZQU5TSwB/PY0+DTUhcqA9ryAxAd+5Mib78jNLqWWh3ovoa/R5zZwWzxZ6P8cE2OxJ5ZNVZ/UO/N1Wep4KOlbtOYwms6Cw3vh2XNvF4ZSPGRV+wR49kqeBqgGGKpls7EMVpGO6ooIkjQsAIWu8ALJr5codjtCd3GEc2iOj4VOXMc4wwMyku76eUunRm2z2SZiD73m5FmZT5Sutmy/EjeXV8X9XmEqwSJkHwlLsCex601DG1ZfUaQldvdknfh1bPeq4b18h4HzQ/H06qmeBtjbprMBUzGOz5+/nWi0BlVj9F6T+dvpbbHdcKZnyQRxhWCwEmmrKVCRapIFn6unL2UTcljARVi1m4o4wQBuRJ/KMESuTA+pi6Q5H2Uqgmc/z2yZqgyxxvAxOMVUgEVpmSR48bOMJOdtgaKjCcY2NIUU0H19bts9mjSUc4jwFVrTFA4x7Hwp8oQxvCEZLXxyhSpZ7+afunTZYTPLJnQMBOI7CiCV+htPNbyip8RqMKxkXSwxze97fhz3TBkvw4w9Uzver/DzaJ76ExVXwRYijbwqbBz5iJEt1bZd1lHvzvR2Rqu6uN89K2pdq3QcWae5Fmi/4zou+IvpyaG2sn4IgrpudGHGrVahLwZYxv/0c9ufzSo7bpxHd0kBIIg+4jkUTGsJgzTYVwelpC26nuYirHS6/xrwUA1RTyDpMS3BJRfNta/VA3Aq4cgzYvq4THrGDzBfIMFaQ2iUTyxjS1hCNhLqY7Rmv5USWMPqQBM9P1BaoLfnELTrqMhbVffyuUv+uj6h5EeUj237/L2SI4f4e2cV7kAuLlUGOgw4KBfQmhhjBAknjd0uqDDOVPKjoxVXvFqtMuG609LrcIjaPWhx2HX9tJqdoQpsEfHi13km4m83fjPwO+vW+7ZWc0ODnT2WPHTuSfd7hJNxpday3+7v0AJ6R6bYjQAU4P2PpITF/urocgbDz3bDMQipBxSsqAIBkxgxqhRyi8FhS0A4ojovYxnUP8qhExedhu0ab7BOS9qCD79O086w3Hjs8tjtpxdl815CDxKRk5JiqSmIpISgExSVP96wqyUj8GuhiGtEW5tawFTebv3SqeZJrBTrqTi3XRI7X+7uSmwr7wSmQRHA8MJ+zcCs0pFAGqygYXzUosz6HYrosUneh8Jrkxm3RmnlLn/jVekDDwdrvPrOuOXmOJ328NFRKLivW9oc/sQ+5XkQ5FtvW5KkVSuOIoPwnv739yurHS+3CT0RRAI2IRTUHzFUZrg9ymwYAv/SiKhhgpaXzMVnQMU9fIUs+kCmvkhAdZcKr10eQu39fC7cMPL/Yzpt7gonPC+EF3B+ojtEgpXIyZJzQ6LjdIsNzrZoEc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 50238036-f962-41e1-c6a5-08da3a9309d7 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:42.7023 (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: 5F+mgXAvKUsEG97gyu44Wz8ANd/R08sHLZuLPufUITfA99uhQffuY9zMy7n01x6ynWgaHLzibtWxhn2bQPy1a0yau8PVu0LKS3Zix0ipLx4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: jb8Q3Teqv_0WZD73ijAGIbk7H_5qFsIa X-Proofpoint-ORIG-GUID: jb8Q3Teqv_0WZD73ijAGIbk7H_5qFsIa Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Source kernel commit: c5218a7cd97349c53bc64e447778a07e49364d40 Add an error tag on xfs_attr3_leaf_to_node to test log attribute recovery and replay. Signed-off-by: Catherine Hoang Reviewed-by: Allison Henderson Reviewed-by: Darrick J. Wong Reviewed-by: Chandan Babu R Signed-off-by: Allison Henderson Signed-off-by: Dave Chinner Signed-off-by: Allison Henderson --- io/inject.c | 1 + libxfs/xfs_attr_leaf.c | 5 +++++ libxfs/xfs_errortag.h | 4 +++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/io/inject.c b/io/inject.c index a7ad4df44503..4f7c6fff4cd6 100644 --- a/io/inject.c +++ b/io/inject.c @@ -60,6 +60,7 @@ error_tag(char *name) { XFS_ERRTAG_AG_RESV_FAIL, "ag_resv_fail" }, { XFS_ERRTAG_LARP, "larp" }, { XFS_ERRTAG_DA_LEAF_SPLIT, "da_leaf_split" }, + { XFS_ERRTAG_ATTR_LEAF_TO_NODE, "attr_leaf_to_node" }, { XFS_ERRTAG_MAX, NULL } }; int count; diff --git a/libxfs/xfs_attr_leaf.c b/libxfs/xfs_attr_leaf.c index 45d1b0634db4..6bd324844f32 100644 --- a/libxfs/xfs_attr_leaf.c +++ b/libxfs/xfs_attr_leaf.c @@ -1186,6 +1186,11 @@ xfs_attr3_leaf_to_node( trace_xfs_attr_leaf_to_node(args); + if (XFS_TEST_ERROR(false, mp, XFS_ERRTAG_ATTR_LEAF_TO_NODE)) { + error = -EIO; + goto out; + } + error = xfs_da_grow_inode(args, &blkno); if (error) goto out; diff --git a/libxfs/xfs_errortag.h b/libxfs/xfs_errortag.h index 6d06a502bbdf..5362908164b0 100644 --- a/libxfs/xfs_errortag.h +++ b/libxfs/xfs_errortag.h @@ -61,7 +61,8 @@ #define XFS_ERRTAG_AG_RESV_FAIL 38 #define XFS_ERRTAG_LARP 39 #define XFS_ERRTAG_DA_LEAF_SPLIT 40 -#define XFS_ERRTAG_MAX 41 +#define XFS_ERRTAG_ATTR_LEAF_TO_NODE 41 +#define XFS_ERRTAG_MAX 42 /* * Random factors for above tags, 1 means always, 2 means 1/2 time, etc. @@ -107,5 +108,6 @@ #define XFS_RANDOM_AG_RESV_FAIL 1 #define XFS_RANDOM_LARP 1 #define XFS_RANDOM_DA_LEAF_SPLIT 1 +#define XFS_RANDOM_ATTR_LEAF_TO_NODE 1 #endif /* __XFS_ERRORTAG_H_ */ From patchwork Fri May 20 19:00:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allison Henderson X-Patchwork-Id: 12857377 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C247C433F5 for ; Fri, 20 May 2022 19:01:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353102AbiETTBJ (ORCPT ); Fri, 20 May 2022 15:01:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353145AbiETTAz (ORCPT ); Fri, 20 May 2022 15:00:55 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A29623151F for ; Fri, 20 May 2022 12:00:53 -0700 (PDT) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24KIsoLu004418 for ; Fri, 20 May 2022 19:00:52 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=/8jB2jJzkYTL0I1kYVEYl51kOAJ0C9Uw9omrLsepjRc=; b=RGOOWFJlA4MWTvQRTDA98muY4LN/6anzdn5I3IPMXu/68lOrBIzsMngKRu2KsORRsp42 P+T/AlBNoOc/G7VEKdzIrwkS0Lu3km1IHh1oFkPGPNXcDBZ1aDI0tul9n2bFvj3V/x33 B6d3aB2TXWY4AHPs+LhrFtDagRvZ4eyPMdrkp/4Lr/4STKOslEKSqxMnHTeF0k1TZ6fA tMv2fvKxnrJnzKl4KFpg4N9MoeO1uUoUWNtJO31/RSFpZTOLOP88Z/xiZO/e2adokRRE Iq2K8iJ3ZEx5KHZDx1gEqWQEnmOzoJa1kjrauUi11jP3/ojlDGYCBCoTobvPa6SPJEgo bg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g22ucfe44-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:52 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KIq2qJ001842 for ; Fri, 20 May 2022 19:00:51 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2040.outbound.protection.outlook.com [104.47.56.40]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3g22v6a3ju-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 May 2022 19:00:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TunF2oqHtDERkVrC1q1mLhNgLpPK04K7cJdD+PyN4zRuy56/WcZUcso0YuOZeymoYk2nDr/El3eIPMd66av6w83KpUJscK1TceyEh/lEpoxJZ3Na5308bGj9h2vnD20zedRJ8DKR/tuU9P6EEf2Hbgdtg9Lnad13vLFARKw6iJVnZzyo+MzoQmpJblbE/juAq8Ix9MllOsGIoQ84ZZ0Gce5BE5+9vi4Hp+cEOkQXkhKNyyqjhAn6H5p6N1ZAmq4syBVLbb++oD3KJwJ2zfsaajqj0BicIWRhIkTl/hAHLQPBzZf6RdN7YFLDnVZtOg7HIDx5Xu44eI7nwHKWcxXOLw== 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=/8jB2jJzkYTL0I1kYVEYl51kOAJ0C9Uw9omrLsepjRc=; b=er0yD75GA3IfBqqptqGHbZocsuzie3drB22Cnxx1g0w1Fk8eHu8GknGtiQFak1YzRp1ZI5mdm7d0Hq4/P/OlaJdFQQ+ZAZ4C9ccCM3BgIuFxHVaVXevBrnps61lFvrgJxUl+5LyYnIhfvAWg4yvUjzWOiNWS/orQbvKURzPWdIdnblXt6LOwCO3YHK6kafpdKEock/vYWmh357HBp/1fPvrVZbKXmnMsOjPrw6aSGgOa5hN3LFpC0ksCYiEDToBAdhS5a6WgfTPxgUg7jTJVNt9SYYD++EL0CKmMc+KUnImA+bYIXYl7gMfRBD6JbmKPvN027hmNMfRjgJWGt7KMMA== 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=/8jB2jJzkYTL0I1kYVEYl51kOAJ0C9Uw9omrLsepjRc=; b=GF4QfpvVH8Z+fODyEy18ShIjaMGMXbTDZdUDowREByX8DytbtironiJ3ISOtoPrmRuLYQzcRjMNVctCmk5/R9OssPyIxJGsvELKV0TeR30nmdkP5bhPo95zeKKoAbqYVpIwmhd9jzq2QFDHHoiug1+QnNpJrE3Qo9BE+PjrbEwg= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB3658.namprd10.prod.outlook.com (2603:10b6:5:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Fri, 20 May 2022 19:00:49 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::918:be3d:3964:a311%4]) with mapi id 15.20.5273.018; Fri, 20 May 2022 19:00:49 +0000 From: Allison Henderson To: linux-xfs@vger.kernel.org Subject: [PATCH v2 18/18] xfs_logprint: Add log item printing for ATTRI and ATTRD Date: Fri, 20 May 2022 12:00:31 -0700 Message-Id: <20220520190031.2198236-19-allison.henderson@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520190031.2198236-1-allison.henderson@oracle.com> References: <20220520190031.2198236-1-allison.henderson@oracle.com> X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 122eecd2-ba51-4eb8-4cc6-08da3a930a00 X-MS-TrafficTypeDiagnostic: DM6PR10MB3658:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: A1N6/xnMR+Ke7pc2htPnvcLuZxKeeWNAYLHRm6LIlbZ3CSlNkI+feXGEGfr0xatcHUPAike0XhWoQTkabntUOrsN0NPSTiOm4bom8kWLTZvlv1uaNSMU7wwXKFKl7d3X8CCPLPgtC3QQEeYCs/AiVoJumVAAVO+ug+cAj+MFZrEsGExBF/TMrPvMqrVvaxWOH77uCsSSQLlpelwHYTHE3ieNzacK4LRS9sEB5YZWL/ZBWClO/Z74MeOiLuNh1NdRGdiPiM0mrWIVULbEXOL5a0QVWEIWAaUZSpbVBEsZl1bkT5djDhEtqXPcgSrF0dbq4ZNuTu0GrhbVrOWnGFWfw0KeL3XK3irwkvEOK50ITUsNrjuAZY983atuQvymZ6j/k+/Z2DOR9aMiAnFeDqQ343BFAQ/TcVljWLWT4+vTI44J4envuBTWIw+lp9rMYOC0JXWWm0aDtN8n5buAgl2jdWngB9OGu/Z4O/a4sTieJj9NQbctyCowxVZh8+KWQn3i26c8UU3t2WTBt+AlXMKY1hDdMOUZ03fdyGz8HJm4Dq3uasSpM7WKYdbHi8jdnw4bnGEL0TJECd+a4/5Uw1lKJ4aCHKA41UefviLp8KU8CkRsO8WvFOaJr3CyqX8GQ9CwHzCFyiNxQ9Hrgx76czVaDm+EXkTbsy7l/cXh3Li7IYOEisl+fzUU67NojNr7dS0KNyap5mbNORJIJC2d0dk+CA== 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:(13230001)(366004)(38350700002)(86362001)(316002)(66946007)(2906002)(38100700002)(6916009)(8676002)(66556008)(66476007)(5660300002)(8936002)(44832011)(1076003)(508600001)(26005)(52116002)(6506007)(36756003)(83380400001)(6666004)(186003)(6486002)(2616005)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: x8Gr/Z+27oTAQjcDmC4v5uEHuiybalX5+cfNtcasCg2UR3OKdrFGvgONDf6lppfVaQcYXmJxSnaBkUukdvdEHfUFKWN6/oX1gG/EOAuv/F/U/H61E0Z0u88QZe/qixQf/cxLMQIkbH/mEDovvOHvvd+rkSB9la0Ob5/Yk2d0MjBgVbEuEhB7pV0gRFVb9kWq+bsXE86M5BvlnjNjRNzF/E7flmDjvjhh9BCiLKBqHMaCE1n2z/4owU93QRkto4EffgB89Dj6oh5ljWPRhEtVoRrTP0WnTHfcIueQnU+b23/h8Aurch+k+DKVddzF9JLRIrti5HLLWIe+dS0lpxmNPyUFeIbT1wHPnaFT0enYHXlHYuiTXj1HW6MuyMCKxJy+iz3nqW9r++x/yOdBR4DOK6Rvs1ZkRnHmToIPtMaVqjS6GKzlN1kTvxJnhoIEFs5DgcO3PzY9RImQE7syU4jA1Am42wRBrTZBm/MQEOF7/g8yc0Ik2CA2kMg13f/booKBKyjPsxgi1MxS76O93x70DAYe320c5ILmMRVSenQmt9b4KSzZe1kFJVBERtxpRcNaQk0Hysqx/zC8o0ysKN8kT57aVeTsJ7xGdBxoMUdcvyIjHDnvxig/e9EGd4NXjzu84CJO1Zjlfpk34Vl+zzQRk4hsDkFcRn+xfcSHoYqI+J5w0AqGouwGPmZTlBhI/St3Uyk1AfZJisWbVP8sm7G+eDcyzr8VWvoUCZhzvjxUNbq/Q7adtxplt6cYBLoVZlIhpweJ8nS3BTcmqSOjyQOTYlAU1yItFIKpDUls94vxVuOqOuwUbKOFxyHaeg23GG828ek1sr0h0cwK/eq6XOzzo5BteAjp5hZrssJgDDvI/SzaQQy6M22SMMH+LzLrO4E5WhXSQOb88G1pQL5+qiBPkLwk7wZg0VH6UEEEl3s5AIwEX6RUZykpgrESAPaWXcTsNYlr0Jm55TjnThay4hEEANwZ/xtx/5AZwiZy5S9u8R/2ERaZ67/n87iR8T/faL8QKIGrskbGarSGCJbRY2ltIhBg3aJcGjSHZ7o3GPiGIEO3V8UohasWoecSchZU4oiAWbvmo3RkA1j0pKzmEPfC0qgcjVrOyds/yXFrgoKOE7vz00rOapiyuvWdiEtrY41uQQ5diR9ixoi5D0Hbm8HGNO1tb8H5dNqUfJ38ppKlTl9GsHjTjrpVWIuB4Udbi4AIE8QUsYDH1uEQki0QA3WPM/bceY+2p4h9FXDgrbaFwDOVkKScp7nkyxVXY10tNBF8b0tuSlR/rxufskXI4OZsHbD0ibc+xE96Pch+2W/z3mVkcbypJYsaq18riD/H+371dzKgltDTrsbEWXQpCutDVr77urgXbqXUtjY6lUaOiKWBa6fgXvwcdy7dzkMhaRnAGobTp6erAaJ9ywht+HvByEviKHiu1Ncf4Veq44Bl1UdANd0Ns6u7UYwb1O5dRmg8q1/LV6kOx1AgOjLyMeAB1sAfYLMN0WR4SnRXUUFxp7otmOv10EAuM8ApeUapXi3qCWv78BFZC3FCNma8jVxPUfAREEHfJbyam+zudhMmiP16hO2zutnvlACHDoG3spyJJm2ab1kQlQ0K8y5ji+jqSTVdZb1K4n9lvAEzwK+SBIMep0btadv58YAP+9Z2kY8rEOZSsdp4j3wgENhs3bhKoL6RK5S6QQQhnwdwMsTTAxmlgcPBZtt8TdARBvwRbShZehb9NPv6i2tSJo6rj+xDRmL16MW8CS2SDrMQd2fbDM8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 122eecd2-ba51-4eb8-4cc6-08da3a930a00 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 19:00:42.9835 (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: xJ1Xz4HN0IQmjEfO7eSMHEecMq1Muv1Ot00GNGft39+wsdm7/UQTsH1xIFeiFOWdwhScDTyed2EbK65WUuxzA8imzoouhFAavZOP1OkUQiU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3658 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-20_06:2022-05-20,2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200119 X-Proofpoint-GUID: 67cQc5cP3hyLmHXCzLWG3PCMe4qpSPBe X-Proofpoint-ORIG-GUID: 67cQc5cP3hyLmHXCzLWG3PCMe4qpSPBe 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. Though most attributes are strings, the attribute operations accept any binary payload, so we should not assume them printable. This was done intentionally in preparation for parent pointers. Until parent pointers get here, attributes have no discernible format. So the print routines are just a simple print or hex dump for now. Signed-off-by: Allison Henderson Reviewed-by: Dave Chinner --- logprint/log_misc.c | 49 +++++++++- logprint/log_print_all.c | 12 +++ logprint/log_redo.c | 194 +++++++++++++++++++++++++++++++++++++++ logprint/logprint.h | 12 +++ 4 files changed, 266 insertions(+), 1 deletion(-) diff --git a/logprint/log_misc.c b/logprint/log_misc.c index 35e926a3baec..a4372a67a811 100644 --- a/logprint/log_misc.c +++ b/logprint/log_misc.c @@ -54,11 +54,47 @@ 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 +997,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 182b9d53aaaa..79d37a2d28b7 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..66d6e9b76eb3 100644 --- a/logprint/log_redo.c +++ b/logprint/log_redo.c @@ -653,3 +653,197 @@ 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 = max(value_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 */