From patchwork Mon Mar 21 05:17:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786794 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 72945C433FE for ; Mon, 21 Mar 2022 05:18:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244797AbiCUFTs (ORCPT ); Mon, 21 Mar 2022 01:19:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51894 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344310AbiCUFTq (ORCPT ); Mon, 21 Mar 2022 01:19:46 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AAB8533E3B for ; Sun, 20 Mar 2022 22:18:20 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KKUL1s014720; Mon, 21 Mar 2022 05:18:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=Z7Yt3yFtrQG0i+Xe0ApYS7Wfz2lWrJEMLwKwrrUHkLY=; b=MPXPEkLq0TRSvvnrqyXT/HhuwZAJcP8Bfbd3K5+eAFcK4WPMpTcnc/3GTQkK1PbIxrVp sFnsYo7+yO2NP1vFw23U+9H5ozLoW/4/MzElr+bazzJ/19boJSUAT+iZsP/N2Cd3GeuC az1TwwUYqHRlOy2Ya66A6z9Rw82v5fwd+q7bwZGiiOxPX9Fb0k4Anyy3gfDgt7UzF0ak KGN+9ADSdeAbSTO/ytlc4q2i+t8+vG9hW4yEWs40JIjBwhRACInfmTmVESsXtJE32ZjK +Bs7vWHR7FlZtVhLrDzKDN1FQQIg21EWD2hmHAU8Tfrw93Y9LboeA9gcLomghi5mgAO7 8A== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew6ss23gc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:15 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5GIHF155800; Mon, 21 Mar 2022 05:18:14 GMT Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam08lp2049.outbound.protection.outlook.com [104.47.74.49]) by aserp3020.oracle.com with ESMTP id 3ew70096gq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nc0MqkdV0Cb1g9Qg6ZcHBKDjy8P2Zn/aACk+QYTqyeRTpvU1kL93WDDS8KigfArsMKJ/lSaJDMtONTDyrEco6N9RaiBOj3IProQ0W6T90BrtoLHDG9sArd3YB5npzzBlf5sL7nWcEm6OXd1X0xu5NAZqQtoeFfRwTt+ye8WhqqfTWrdX3/hlDtXPRkfcLfnwOxjhcY9CDFGWFB4nTeFHfQ1aZ7cTD5SBleU6Yf4hxyb8FQJkN7ld0Cn63DGBKg6oBsmFCUrG3BLSb/ggA47NEnxzLD3XYSPmdDkWmoTbzbL8FQz3BDsVD2EANkHyTPuC5KIcuWGNF2gVi9zLrcFK6Q== 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=Z7Yt3yFtrQG0i+Xe0ApYS7Wfz2lWrJEMLwKwrrUHkLY=; b=VX4jiPkoPfpeFp6xSzih4jEVpYlls8IrE3Usq8OjLEk1hahtIxDCkNMDJ59dgB/A7b/3DbzjPf6Oy712U2Ayy4WrNq/LlZ/M2s9SmB09sZXGslCco0SoKqT48VvYzeipfTvU5kmQSPMFAPVXI54Ev7dOVFu/n9cRRPkXASqjnXsn6bEpwdOi90bcUJiXhwnrI/ssjjR5k+FVOuFTFL4zzzuI0Jq4f/tnrkEVZnX2ARXN/spmxApYJQvwjjd9gTOD8x8or872O0tgS5RG4gtQAHWuLfo2I/VOOFz/LcOWKft7DYw/+FcSDKWzfRw8OaYy2JrytYHskKM79YWWsXwpdw== 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=Z7Yt3yFtrQG0i+Xe0ApYS7Wfz2lWrJEMLwKwrrUHkLY=; b=G6NMxzLVkYYWELu6INoOF8rH6/MFG8ypFfNr0YllAj9BG4ZC6oFaNgE6mgik6uyR4hO/2Y7QPRLLM2fsW71rgZpz6FuHmOhA/EfP/UH0lIw+LsB0OH5q7IDHwLFniZzg8I2A/InofAnDhlIgpeToAahstq4yOadRF4zdbmXK6Gk= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by DM5PR1001MB2105.namprd10.prod.outlook.com (2603:10b6:4:2b::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.15; Mon, 21 Mar 2022 05:18:12 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:12 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com, Dave Chinner Subject: [PATCH V8 01/19] xfs: Move extent count limits to xfs_format.h Date: Mon, 21 Mar 2022 10:47:32 +0530 Message-Id: <20220321051750.400056-2-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 05a1756a-5a47-45a1-97e2-08da0afa3225 X-MS-TrafficTypeDiagnostic: DM5PR1001MB2105: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: qvg3CNUvU0UxBhcGKBeSfwd/kl3+cuSmRuJsZoysKX4iC2eL9EhBo4tDgzroGVLAH/8YORNT4kGqMmzOaTQL+edFZF+w1dEQDTk+o2ZDSzv3mV5eASI12sV65g2PyXWu6ACZeum0BlUQuB/uPM3XBILbsCq/6dMzxWCQUXnJf0FFfl7gOjoAFNNMiEjMelfQ2CR8RkUu/+rt51bXJHEwvH39tyuBGz+edN5/8jNLO3XRzZ0CXr7g5JLn+CeM+l7xaYrS3cSo6s+A5Hxtt/fxnAKoxRwpJ/cu+S2/bfZ0TiUcaRoOBmlUS2/QuhzR0bmDMXAWMBZ8JxmELAR3nRSUX6YLank0Hqi5AOxhCi0oVXew7bog4cKNsu9NFdM5p/cthP2ScS5nIw0iyBOEEm6c9b/D/FauXB2gerq9alDTxL/rY9JPCnjGJRuXNr30lp9HJCeruT+3FWa0P1ns+VZeGDgkZmpGli6nXmUeHlztHADWoQ69KbCDhGoDunMPFSHQZyLg2LfwbUjst2jAT5M6BnQCYF/u0lyGa2ShdB8Bo/mhsiKskNk4yC2r2L9fSYhg8kwaeODKsY5+SbT4H2HMBYOpXxs9+jT8/VD696BYuj0WTvFDtzYxAFehUjGt3PnMa7j7Xu8HLh9+xNOy+s/7z72VJEXq6j/obmnYFRr/0I3ad/T1a0XbBTr0J/KhowxQEt7C4p290Bpum0G28BVBNw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(6486002)(66556008)(8676002)(66946007)(4326008)(66476007)(5660300002)(86362001)(8936002)(508600001)(6666004)(186003)(1076003)(26005)(83380400001)(52116002)(2906002)(6506007)(6512007)(2616005)(38350700002)(38100700002)(54906003)(316002)(36756003)(6916009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VuLsAf0r1jctJ1CQ8kgyTFZivSrCsAEWW4ig7QogCaxIA+3wSxJWs6I542WMyBByR0XlDDOuBr2QwWPKrwQkskHL/lXVIgfAsvewmtpdwy4a8GLHSQf+MLlA2+wBr8CmD0WLWzE2HvYRV8EO5x4o/u0P5vteyRQeR72EFiORddm1pMiOaPLeHhRW3UfeA0r5rrh0w7bVfbY2E8FUbuqMDrIuDnCo/ZjCHBk2c24isjW+kX9niDI39lOlBfB1m4wtllBdzhf8r4lQPC1X6ctYS88Wy1HL7AZxJzADnHjuYISolu3GMhe7k7jzDQNqCtJSKqtnXM03LeW/b5iWnRUme/a5UDQn+1TJA35WvR2BYYJ+UgxkWorP2y0B8BJ4BYde/IGc6g4DdI1QSxo3w/S5RZBconGDKLlqdb79u617zKcXaYN0F6R0yRyRpjrBgxn5fg/qjYaod/eWw40KUtiE02UKLMjbgDKtgW0iHa0mdpUnOJqWBwEkUcoXS8l3yhY3O0C4Tje+07SzycdNe+6VKIwpH0fsYIQodOwZYzoCYl7oZs7WeFk+crwuawqNgFDp7JjC39t8+GJpjX+cbXUbye+4ldVBKmPxlPkCOrQk/2sGbOw+6QNkzKxl1wl5V79JiyGEtyyjMMgQkfDAuOGo5PbB7qBm/sx9o5Y+UEKxz5gTCt9Qh/wBw945rRHeO3tCy5disxTITUXH+V39Mfp5fqK4PgWGbw/z/HpJypMajKqINCEi6ymU5TIJNNK48m9I9kWnSdj1hGoPDcQuCEi0jKOa0fEWb4xXd6q/b0jeix4v1mxoRfrL2ymFZx/ucKcSPNAdyoLGRFQn2JKK3sQWxF5Df+X3M8cxPVHNwkfDxpxZlliQLE0V3OS5uWaA59psw4Xa0O1VuehuMT8kCoK33jHdNZGLxEqfswUJ5PldPqFHs9JV2e+BELA3pmzB8wQL9HNxGu3DFnTQu3XYktdA3RvO9K/YLokoUdC66gJrPSsHJ4Vl+KrlEwuiVwckUO1AOJIjZI1ar+DCx0ZDs3vonOkjokg+9ZsD6YjB+7BC95ZGM8zPOKgkFiGqIe60cAs1bgjZyREuBkYqRFaaB+AsyRdraK19YSO10IN8ea7ZCXxWTHun90eyspVxx22Rl+gDJMmnxLGsEyCssT2DWa9hg0C8kWI/JBi4LmnzI/DKfKun9jvS9YgxMIJ8y4aO8fG8InqUKx/bywqlAMQ815Ir+o/DyMtEjR/s64gOlST3oWq1spn5qLsCuFu5mqCZ9QJNR9jdPlj8aEARPSbMiRPkxewldF+N1oOWXAEEIs6kcfLZ1bcHeKP31ncn9FfbBfIL5oah1dkT/PkVadBIRlKHZ8wjDj2uULMznPMhN2D6gaQ8li13yLve+QJNyidtuQiR/B/iBFzOkdhd1TTPLMrwa0VC5R83EaX+LTFCyOE/dekGzepZjayw33MXXAl6bEnVZo1vkIbLuR7UfJnVs5yRmw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 05a1756a-5a47-45a1-97e2-08da0afa3225 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:12.6241 (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: cHly47VJaxqJop84IMC9Q99QMdEbfWBVCFLseG2ReuRgcKiUsGmRuHteCY2OP0ib2AImTe4R4NHIwWingLzpZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1001MB2105 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-ORIG-GUID: alo7yjGqBLGz0oRJs9_F-nwpBd8RKaVr X-Proofpoint-GUID: alo7yjGqBLGz0oRJs9_F-nwpBd8RKaVr Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Maximum values associated with extent counters i.e. Maximum extent length, Maximum data extents and Maximum xattr extents are dictated by the on-disk format. Hence move these definitions over to xfs_format.h. Reviewed-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Chandan Babu R --- fs/xfs/libxfs/xfs_format.h | 7 +++++++ fs/xfs/libxfs/xfs_types.h | 7 ------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index d665c04e69dd..d75e5b16da7e 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -869,6 +869,13 @@ enum xfs_dinode_fmt { { XFS_DINODE_FMT_BTREE, "btree" }, \ { XFS_DINODE_FMT_UUID, "uuid" } +/* + * Max values for extlen, extnum, aextnum. + */ +#define MAXEXTLEN ((xfs_extlen_t)0x001fffff) /* 21 bits */ +#define MAXEXTNUM ((xfs_extnum_t)0x7fffffff) /* signed int */ +#define MAXAEXTNUM ((xfs_aextnum_t)0x7fff) /* signed short */ + /* * Inode minimum and maximum sizes. */ diff --git a/fs/xfs/libxfs/xfs_types.h b/fs/xfs/libxfs/xfs_types.h index b6da06b40989..794a54cbd0de 100644 --- a/fs/xfs/libxfs/xfs_types.h +++ b/fs/xfs/libxfs/xfs_types.h @@ -56,13 +56,6 @@ typedef void * xfs_failaddr_t; #define NULLFSINO ((xfs_ino_t)-1) #define NULLAGINO ((xfs_agino_t)-1) -/* - * Max values for extlen, extnum, aextnum. - */ -#define MAXEXTLEN ((xfs_extlen_t)0x001fffff) /* 21 bits */ -#define MAXEXTNUM ((xfs_extnum_t)0x7fffffff) /* signed int */ -#define MAXAEXTNUM ((xfs_aextnum_t)0x7fff) /* signed short */ - /* * Minimum and maximum blocksize and sectorsize. * The blocksize upper limit is pretty much arbitrary. From patchwork Mon Mar 21 05:17:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786797 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 9A2F4C433EF for ; Mon, 21 Mar 2022 05:18:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343929AbiCUFTx (ORCPT ); Mon, 21 Mar 2022 01:19:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52070 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343854AbiCUFTu (ORCPT ); Mon, 21 Mar 2022 01:19:50 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ACEAD33E10 for ; Sun, 20 Mar 2022 22:18:24 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KL409f012459; Mon, 21 Mar 2022 05:18:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=XJTt5oLyR1xITM+tSGSRTH2IZ4K9y7GzE8ApSszBZgQ=; b=h1jn7ECPXxTzqTb90/dNcOAi05VTVhuGzcsD3Al4K9gCeyU2oGcHTpK2GW3v9OzSVXY6 fqW93S7wIBqtCPlWkBlFZAoDejtBahV5Xv61wW0d6CQHgNDg5w5jQ6QUSPP5IVTdrg77 7DunWDqOGoZL/+vBaGfbBRKSiJOe4xbHhWi82ue0tdCEBjxhTvzX8SmAEoqGeJA3Tf2p 1RQiYsD1Yl0cLeaEed88WgJ3LmnTLewj2RVJlum9hXjmcKskQcs9/Um03ZSthQ4ii4z6 6hOtsInQC7O3L4YgVJ97OP24slhthZxXxucde+1dcgaacMc7SqZZFe9F11C9zJCXZDBq GQ== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew6ss23ge-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:19 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5G2xL058068; Mon, 21 Mar 2022 05:18:18 GMT Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam08lp2045.outbound.protection.outlook.com [104.47.74.45]) by userp3020.oracle.com with ESMTP id 3exawgeuyt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aYQ0qH6o/P3l78T6S9klOQnkFTsUpzROus4ozWTEqf5zhIAeQJeKsL+4JJ2ikiEecQvlXsY/fgJpFQrjlhLsUUvnPFB375FFUheaaWDcIa0ePsn4gY/4EqcbTLMxO/6wMvuV7mAHL6LADcvjG0IACgEJRqtfZmt5T7k787grE0MutqMqa/A1yC9f4jezrjCkU69Z+1M9Pj6PWxFGBSThLZz0eEcHWb+Brmq28RzeovxqZHtZQzQuJ3tKc9GYNebuUJ4S4eujN9VroY9JaBvLf6Ue8ag1ERl8a8KtWItivxKpFRi1lZgxddKWjw1GSUDv6qb5e4wKCpZRvENRM7V+Fw== 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=XJTt5oLyR1xITM+tSGSRTH2IZ4K9y7GzE8ApSszBZgQ=; b=KXJSKo0g9UrpsaLR/bLGuIgHKQ5MMHgNfqgKbQ/d2XZ7u20o1vd2ZbutLEv91hipTwU+vcJTYP5cCS17BZ5Qgy0fP2ZQwL9/zAXa7apvQWqI3pCXQFYs+RHYrW9nXRp/bPBV/cMyxJBXspos4YyAJAxgdeku+yZEDkeVhslkVlaJmA/NXvzomlKNUlnJGIA4ARoPYBtw6bBpgEN3lsiJEHpalFIZbkZuwsMvZjX1aRLwMDVaKnBwDXXUd8NXHssCJQfARIfbMAwXOyCTIeLmAoaxaL0gP6lTZUk9DRuJ7GMElOnIeo6gFNPK5mz+M5wnzOpP3aZX/TC5q3lBK2msmw== 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=XJTt5oLyR1xITM+tSGSRTH2IZ4K9y7GzE8ApSszBZgQ=; b=FvVI5et0mUAWyl1cUGzhO4Y2Fdb5MdjTW4qu/kR4CQ56J825o/QnMVVFcHCN+xAv6nE60OKRYYTyLNJymY2QYpXP7eKyWyrRIfr673giHvPiyUwbGlu0n8NiiOlILYuArc4Bcsc2oepw29H/9G9rmPOIWm+asWkxTJ/qvhhK/ZY= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by DM5PR1001MB2105.namprd10.prod.outlook.com (2603:10b6:4:2b::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.15; Mon, 21 Mar 2022 05:18:15 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:15 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com, Dave Chinner Subject: [PATCH V8 02/19] xfs: Define max extent length based on on-disk format definition Date: Mon, 21 Mar 2022 10:47:33 +0530 Message-Id: <20220321051750.400056-3-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4f09cb6c-211c-4132-ecbf-08da0afa33ae X-MS-TrafficTypeDiagnostic: DM5PR1001MB2105: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: c2rTWR5mdpx+c3w4FaPlOCH7qKYuRMJp6iTe8GDp/fTAntnT/nlV4HdG97QTzZjoipyB/OUu5alKxMN+tkvVrLtEBHisPGsGrJIgL3CHNOqn1ILe4buH3upgymI4rNQhTRqeFjGlg5NECV1hU4BGy6EDS0YgGGjalWjvB12Ujgg+gwX4b4txUwDnTxdeDKxAJdUcFtGewSWL5e8rncI/dcMSxyLb2sP9sK5/MfdiIJnf6QwD4Er6f2vAgsctmqJO00/kmvJc9JiDgkpRqUnLPmYCMvhTFG40BJLatgw5+xfdDItYY1TKjltouJV5PU1hLrjYdFLtoL3riGpTEXMWBPxyPWAg/Ksxs1iv4amPDu5bXpderYTIfFpNFCQjC/dvbH7BZBgNaqKqwuPC09Vp2mDErGIioEphcc7CuEi4hn9wk2JE/mrD0v2fohWmgvVEeZoGXXNGfEDHExPWAK9MyHBoZ/J48q3O5QN9GidH0polMy26Xpr1H6vmHLV432AFxAE9ms/SechI17qoEiVrQGjdc43LIO6tjqm1Ot9YvST6jiKYysXiNbRvxTYHhE1lvq2YgWbCer50XgjVimxtdcA+OiG3LnXqSnHhlSrq1XbfVRGe8HiwLuQv7N1JHtze601tPGwByzKCfSDMNtDNalPbZXMPzO+QctKjEQcAFcxGDUIR/2M7NeiJNEZelYuQy+CGd39s5TddHu5kn/vwGw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(6486002)(66556008)(8676002)(66946007)(4326008)(66476007)(5660300002)(86362001)(30864003)(8936002)(508600001)(6666004)(186003)(1076003)(26005)(83380400001)(52116002)(2906002)(6506007)(6512007)(2616005)(38350700002)(38100700002)(54906003)(316002)(36756003)(6916009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: iBUi+B4xIbEomrHgVcYN8220v0jBKLghqNcNNXwK9uAtCcKQZQ87Ly9A6njgWh5N71A2lhveNy1VpiFWALFsaAusg3M4UtFoeaR4z7ZEkeKlccSWXN1LCBjOqCCf2N2th86SVCF5BxiIttkqUkhE8AOGEsST7A/Du/3jItbFOn2kndVPQZGej+//G2drvmNOLB2zSHmY0MfF1rafQwshhFdhPJPWF4rJiaQCWAPUTbfCMDLlgz3+Cr3diaRNuVCIs6xwL6KiddJ2w8+csWQ+ej/5VL13AMSi32b9mV83m2S5soVZgQnT+OMYDbPr7GOBlI0FJXCr9IU24AsBQjUlho2fEB2S0wAxUBmaBiyeV4EGqWSXHMesQslTZ4weKAovCRLpoQc6CDtqBDynl1LwiIpxAWtDKIwf4/WVfIbW1674bVj/oksz9SCfghvlVxdk0XiGqZi/szQV1IfhkI5WfSrkmw2+aBgTlZCsJC5xGgcyEuwTYk/VSHPRckD8ahhVeaSg7aw2aALfuLt6QF2p9wwyR2X+mtPft7EqF+8f36JmnE2qtJM1cFtJ0JrNG1obzoJ2PT258nfYcEbumZaUIJQtIcaTSQfOuXHaNrZPWjlC+T2QMPBS24NLebMKAXoFITeZikBqsmStLdIbPCFe4l1xPEOMK9fMJyPP3uMN2aPImbvB2M3mGpeEkp0hNQdZPdDrugEVeqs8ZYqeDNi7TEsDm1QKdAkq67ALOURgBJqu6vw5pnDnuOBwYmoVOy8EzNlzfcG7oEbOuw/GaI2/66aGxiZmhuPh+Smp8w/4uphnne1YNxBDUiDquTYEoShtKlnUrHp8U3cJ8cNxn9tz3mrjxEOTf4mSKPEEbzyPjIt6J461MCQp4Yr/6gtaeT8pPbxrbl3ycRe99HB0FUSduDcvcINXbFrFETdrBt325nseP5o+ko+GgMhicpPFwf8ExvzarTqVJ4EWxhjkv3QHmvmkV6BOK61SQ+bi/VZxXJS8qx2Mz3KG1yEGz6szHbMHIUjvHwgWeqs3mPKRESNOjeXBOIWxlUwZjwfMEsOdaM+K9b9seC60NfYtp/VM6iE3wAHgeuLBNnMpFZFFhluExgKT/jpM5/ZGJZiJ/RNnTdk+tlMnuFs7qs8qYYd5z0D+CW6i4UfbtKG3woW/wto3O+zGPE2rDqQSs13UWZgmwTIWqIR9sn4q4Fe2hrUr1zMi+Sj9UvLn6ttr3FfVHHtfPkTyzArouPjyW83AE4AGiDNgMFcA0PN/RKVhdCGnf/MZsUl1dWx59v9J2S2SqwzmqU1+YbbmM9095yndRbbcvz7isgZ1d20xdkIT8y0xzuuSYdvnzCIWm6RAy23iOxVqnp8EQ042s1TzYtuW16dlj1s7l6z2MlsEXyXzP9U4c4VTlCH9J59rXsdG9lXg4N9c1VDKZW82+H99fhhbIxJ8NoqjqSdMc4rJbJl1+PufXqZAsgbvgW/3zSJaH1zwQLLSbw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f09cb6c-211c-4132-ecbf-08da0afa33ae X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:15.3737 (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: b+Tc3UvMwH3SXV5C7M/R+2Ca/2wHDKw3DLyPRsvlDNqowo2lQzBHVXteUfGw6J+uftTQ4onpkTx+pKk2iJ4LaA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1001MB2105 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-ORIG-GUID: pWa5LzhcHNTqTVRiff98KAnam9lLVBj5 X-Proofpoint-GUID: pWa5LzhcHNTqTVRiff98KAnam9lLVBj5 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org The maximum extent length depends on maximum block count that can be stored in a BMBT record. Hence this commit defines MAXEXTLEN based on BMBT_BLOCKCOUNT_BITLEN. While at it, the commit also renames MAXEXTLEN to XFS_MAX_BMBT_EXTLEN. Suggested-by: Darrick J. Wong Reviewed-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Chandan Babu R --- fs/xfs/libxfs/xfs_alloc.c | 2 +- fs/xfs/libxfs/xfs_bmap.c | 57 +++++++++++++++++----------------- fs/xfs/libxfs/xfs_format.h | 5 +-- fs/xfs/libxfs/xfs_inode_buf.c | 4 +-- fs/xfs/libxfs/xfs_trans_resv.c | 11 ++++--- fs/xfs/scrub/bmap.c | 2 +- fs/xfs/xfs_bmap_util.c | 14 +++++---- fs/xfs/xfs_iomap.c | 28 ++++++++--------- 8 files changed, 64 insertions(+), 59 deletions(-) diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c index 353e53b892e6..3f9b9cbfef43 100644 --- a/fs/xfs/libxfs/xfs_alloc.c +++ b/fs/xfs/libxfs/xfs_alloc.c @@ -2493,7 +2493,7 @@ __xfs_free_extent_later( ASSERT(bno != NULLFSBLOCK); ASSERT(len > 0); - ASSERT(len <= MAXEXTLEN); + ASSERT(len <= XFS_MAX_BMBT_EXTLEN); ASSERT(!isnullstartblock(bno)); agno = XFS_FSB_TO_AGNO(mp, bno); agbno = XFS_FSB_TO_AGBNO(mp, bno); diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index 74198dd82b03..00b8e6e1c404 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -1452,7 +1452,7 @@ xfs_bmap_add_extent_delay_real( LEFT.br_startoff + LEFT.br_blockcount == new->br_startoff && LEFT.br_startblock + LEFT.br_blockcount == new->br_startblock && LEFT.br_state == new->br_state && - LEFT.br_blockcount + new->br_blockcount <= MAXEXTLEN) + LEFT.br_blockcount + new->br_blockcount <= XFS_MAX_BMBT_EXTLEN) state |= BMAP_LEFT_CONTIG; /* @@ -1470,13 +1470,13 @@ xfs_bmap_add_extent_delay_real( new_endoff == RIGHT.br_startoff && new->br_startblock + new->br_blockcount == RIGHT.br_startblock && new->br_state == RIGHT.br_state && - new->br_blockcount + RIGHT.br_blockcount <= MAXEXTLEN && + new->br_blockcount + RIGHT.br_blockcount <= XFS_MAX_BMBT_EXTLEN && ((state & (BMAP_LEFT_CONTIG | BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING)) != (BMAP_LEFT_CONTIG | BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING) || LEFT.br_blockcount + new->br_blockcount + RIGHT.br_blockcount - <= MAXEXTLEN)) + <= XFS_MAX_BMBT_EXTLEN)) state |= BMAP_RIGHT_CONTIG; error = 0; @@ -2000,7 +2000,7 @@ xfs_bmap_add_extent_unwritten_real( LEFT.br_startoff + LEFT.br_blockcount == new->br_startoff && LEFT.br_startblock + LEFT.br_blockcount == new->br_startblock && LEFT.br_state == new->br_state && - LEFT.br_blockcount + new->br_blockcount <= MAXEXTLEN) + LEFT.br_blockcount + new->br_blockcount <= XFS_MAX_BMBT_EXTLEN) state |= BMAP_LEFT_CONTIG; /* @@ -2018,13 +2018,13 @@ xfs_bmap_add_extent_unwritten_real( new_endoff == RIGHT.br_startoff && new->br_startblock + new->br_blockcount == RIGHT.br_startblock && new->br_state == RIGHT.br_state && - new->br_blockcount + RIGHT.br_blockcount <= MAXEXTLEN && + new->br_blockcount + RIGHT.br_blockcount <= XFS_MAX_BMBT_EXTLEN && ((state & (BMAP_LEFT_CONTIG | BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING)) != (BMAP_LEFT_CONTIG | BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING) || LEFT.br_blockcount + new->br_blockcount + RIGHT.br_blockcount - <= MAXEXTLEN)) + <= XFS_MAX_BMBT_EXTLEN)) state |= BMAP_RIGHT_CONTIG; /* @@ -2510,15 +2510,15 @@ xfs_bmap_add_extent_hole_delay( */ if ((state & BMAP_LEFT_VALID) && (state & BMAP_LEFT_DELAY) && left.br_startoff + left.br_blockcount == new->br_startoff && - left.br_blockcount + new->br_blockcount <= MAXEXTLEN) + left.br_blockcount + new->br_blockcount <= XFS_MAX_BMBT_EXTLEN) state |= BMAP_LEFT_CONTIG; if ((state & BMAP_RIGHT_VALID) && (state & BMAP_RIGHT_DELAY) && new->br_startoff + new->br_blockcount == right.br_startoff && - new->br_blockcount + right.br_blockcount <= MAXEXTLEN && + new->br_blockcount + right.br_blockcount <= XFS_MAX_BMBT_EXTLEN && (!(state & BMAP_LEFT_CONTIG) || (left.br_blockcount + new->br_blockcount + - right.br_blockcount <= MAXEXTLEN))) + right.br_blockcount <= XFS_MAX_BMBT_EXTLEN))) state |= BMAP_RIGHT_CONTIG; /* @@ -2661,17 +2661,17 @@ xfs_bmap_add_extent_hole_real( left.br_startoff + left.br_blockcount == new->br_startoff && left.br_startblock + left.br_blockcount == new->br_startblock && left.br_state == new->br_state && - left.br_blockcount + new->br_blockcount <= MAXEXTLEN) + left.br_blockcount + new->br_blockcount <= XFS_MAX_BMBT_EXTLEN) state |= BMAP_LEFT_CONTIG; if ((state & BMAP_RIGHT_VALID) && !(state & BMAP_RIGHT_DELAY) && new->br_startoff + new->br_blockcount == right.br_startoff && new->br_startblock + new->br_blockcount == right.br_startblock && new->br_state == right.br_state && - new->br_blockcount + right.br_blockcount <= MAXEXTLEN && + new->br_blockcount + right.br_blockcount <= XFS_MAX_BMBT_EXTLEN && (!(state & BMAP_LEFT_CONTIG) || left.br_blockcount + new->br_blockcount + - right.br_blockcount <= MAXEXTLEN)) + right.br_blockcount <= XFS_MAX_BMBT_EXTLEN)) state |= BMAP_RIGHT_CONTIG; error = 0; @@ -2906,15 +2906,15 @@ xfs_bmap_extsize_align( /* * For large extent hint sizes, the aligned extent might be larger than - * MAXEXTLEN. In that case, reduce the size by an extsz so that it pulls - * the length back under MAXEXTLEN. The outer allocation loops handle - * short allocation just fine, so it is safe to do this. We only want to - * do it when we are forced to, though, because it means more allocation - * operations are required. + * XFS_BMBT_MAX_EXTLEN. In that case, reduce the size by an extsz so + * that it pulls the length back under XFS_BMBT_MAX_EXTLEN. The outer + * allocation loops handle short allocation just fine, so it is safe to + * do this. We only want to do it when we are forced to, though, because + * it means more allocation operations are required. */ - while (align_alen > MAXEXTLEN) + while (align_alen > XFS_MAX_BMBT_EXTLEN) align_alen -= extsz; - ASSERT(align_alen <= MAXEXTLEN); + ASSERT(align_alen <= XFS_MAX_BMBT_EXTLEN); /* * If the previous block overlaps with this proposed allocation @@ -3004,9 +3004,9 @@ xfs_bmap_extsize_align( return -EINVAL; } else { ASSERT(orig_off >= align_off); - /* see MAXEXTLEN handling above */ + /* see XFS_BMBT_MAX_EXTLEN handling above */ ASSERT(orig_end <= align_off + align_alen || - align_alen + extsz > MAXEXTLEN); + align_alen + extsz > XFS_MAX_BMBT_EXTLEN); } #ifdef DEBUG @@ -3971,7 +3971,7 @@ xfs_bmapi_reserve_delalloc( * Cap the alloc length. Keep track of prealloc so we know whether to * tag the inode before we return. */ - alen = XFS_FILBLKS_MIN(len + prealloc, MAXEXTLEN); + alen = XFS_FILBLKS_MIN(len + prealloc, XFS_MAX_BMBT_EXTLEN); if (!eof) alen = XFS_FILBLKS_MIN(alen, got->br_startoff - aoff); if (prealloc && alen >= len) @@ -4104,7 +4104,7 @@ xfs_bmapi_allocate( if (!xfs_iext_peek_prev_extent(ifp, &bma->icur, &bma->prev)) bma->prev.br_startoff = NULLFILEOFF; } else { - bma->length = XFS_FILBLKS_MIN(bma->length, MAXEXTLEN); + bma->length = XFS_FILBLKS_MIN(bma->length, XFS_MAX_BMBT_EXTLEN); if (!bma->eof) bma->length = XFS_FILBLKS_MIN(bma->length, bma->got.br_startoff - bma->offset); @@ -4424,8 +4424,8 @@ xfs_bmapi_write( * xfs_extlen_t and therefore 32 bits. Hence we have to * check for 32-bit overflows and handle them here. */ - if (len > (xfs_filblks_t)MAXEXTLEN) - bma.length = MAXEXTLEN; + if (len > (xfs_filblks_t)XFS_MAX_BMBT_EXTLEN) + bma.length = XFS_MAX_BMBT_EXTLEN; else bma.length = len; @@ -4560,7 +4560,8 @@ xfs_bmapi_convert_delalloc( bma.ip = ip; bma.wasdel = true; bma.offset = bma.got.br_startoff; - bma.length = max_t(xfs_filblks_t, bma.got.br_blockcount, MAXEXTLEN); + bma.length = max_t(xfs_filblks_t, bma.got.br_blockcount, + XFS_MAX_BMBT_EXTLEN); bma.minleft = xfs_bmapi_minleft(tp, ip, whichfork); /* @@ -4641,7 +4642,7 @@ xfs_bmapi_remap( ifp = XFS_IFORK_PTR(ip, whichfork); ASSERT(len > 0); - ASSERT(len <= (xfs_filblks_t)MAXEXTLEN); + ASSERT(len <= (xfs_filblks_t)XFS_MAX_BMBT_EXTLEN); ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); ASSERT(!(flags & ~(XFS_BMAPI_ATTRFORK | XFS_BMAPI_PREALLOC | XFS_BMAPI_NORMAP))); @@ -5641,7 +5642,7 @@ xfs_bmse_can_merge( if ((left->br_startoff + left->br_blockcount != startoff) || (left->br_startblock + left->br_blockcount != got->br_startblock) || (left->br_state != got->br_state) || - (left->br_blockcount + got->br_blockcount > MAXEXTLEN)) + (left->br_blockcount + got->br_blockcount > XFS_MAX_BMBT_EXTLEN)) return false; return true; diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index d75e5b16da7e..66594853a88b 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -870,9 +870,8 @@ enum xfs_dinode_fmt { { XFS_DINODE_FMT_UUID, "uuid" } /* - * Max values for extlen, extnum, aextnum. + * Max values for extnum and aextnum. */ -#define MAXEXTLEN ((xfs_extlen_t)0x001fffff) /* 21 bits */ #define MAXEXTNUM ((xfs_extnum_t)0x7fffffff) /* signed int */ #define MAXAEXTNUM ((xfs_aextnum_t)0x7fff) /* signed short */ @@ -1603,6 +1602,8 @@ typedef struct xfs_bmdr_block { #define BMBT_STARTOFF_MASK ((1ULL << BMBT_STARTOFF_BITLEN) - 1) #define BMBT_BLOCKCOUNT_MASK ((1ULL << BMBT_BLOCKCOUNT_BITLEN) - 1) +#define XFS_MAX_BMBT_EXTLEN ((xfs_extlen_t)(BMBT_BLOCKCOUNT_MASK)) + /* * bmbt records have a file offset (block) field that is 54 bits wide, so this * is the largest xfs_fileoff_t that we ever expect to see. diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c index cae9708c8587..87781a5d5a45 100644 --- a/fs/xfs/libxfs/xfs_inode_buf.c +++ b/fs/xfs/libxfs/xfs_inode_buf.c @@ -639,7 +639,7 @@ xfs_inode_validate_extsize( if (extsize_bytes % blocksize_bytes) return __this_address; - if (extsize > MAXEXTLEN) + if (extsize > XFS_MAX_BMBT_EXTLEN) return __this_address; if (!rt_flag && extsize > mp->m_sb.sb_agblocks / 2) @@ -696,7 +696,7 @@ xfs_inode_validate_cowextsize( if (cowextsize_bytes % mp->m_sb.sb_blocksize) return __this_address; - if (cowextsize > MAXEXTLEN) + if (cowextsize > XFS_MAX_BMBT_EXTLEN) return __this_address; if (cowextsize > mp->m_sb.sb_agblocks / 2) diff --git a/fs/xfs/libxfs/xfs_trans_resv.c b/fs/xfs/libxfs/xfs_trans_resv.c index 6f83d9b306ee..8e1d09e8cc9a 100644 --- a/fs/xfs/libxfs/xfs_trans_resv.c +++ b/fs/xfs/libxfs/xfs_trans_resv.c @@ -199,8 +199,8 @@ xfs_calc_inode_chunk_res( /* * Per-extent log reservation for the btree changes involved in freeing or * allocating a realtime extent. We have to be able to log as many rtbitmap - * blocks as needed to mark inuse MAXEXTLEN blocks' worth of realtime extents, - * as well as the realtime summary block. + * blocks as needed to mark inuse XFS_BMBT_MAX_EXTLEN blocks' worth of realtime + * extents, as well as the realtime summary block. */ static unsigned int xfs_rtalloc_log_count( @@ -210,7 +210,7 @@ xfs_rtalloc_log_count( unsigned int blksz = XFS_FSB_TO_B(mp, 1); unsigned int rtbmp_bytes; - rtbmp_bytes = (MAXEXTLEN / mp->m_sb.sb_rextsize) / NBBY; + rtbmp_bytes = (XFS_MAX_BMBT_EXTLEN / mp->m_sb.sb_rextsize) / NBBY; return (howmany(rtbmp_bytes, blksz) + 1) * num_ops; } @@ -247,7 +247,7 @@ xfs_rtalloc_log_count( * the inode's bmap btree: max depth * block size * the agfs of the ags from which the extents are allocated: 2 * sector * the superblock free block counter: sector size - * the realtime bitmap: ((MAXEXTLEN / rtextsize) / NBBY) bytes + * the realtime bitmap: ((XFS_BMBT_MAX_EXTLEN / rtextsize) / NBBY) bytes * the realtime summary: 1 block * the allocation btrees: 2 trees * (2 * max depth - 1) * block size * And the bmap_finish transaction can free bmap blocks in a join (t3): @@ -299,7 +299,8 @@ xfs_calc_write_reservation( * the agf for each of the ags: 2 * sector size * the agfl for each of the ags: 2 * sector size * the super block to reflect the freed blocks: sector size - * the realtime bitmap: 2 exts * ((MAXEXTLEN / rtextsize) / NBBY) bytes + * the realtime bitmap: + * 2 exts * ((XFS_BMBT_MAX_EXTLEN / rtextsize) / NBBY) bytes * the realtime summary: 2 exts * 1 block * worst case split in allocation btrees per extent assuming 2 extents: * 2 exts * 2 trees * (2 * max depth - 1) * block size diff --git a/fs/xfs/scrub/bmap.c b/fs/xfs/scrub/bmap.c index a4cbbc346f60..c357593e0a02 100644 --- a/fs/xfs/scrub/bmap.c +++ b/fs/xfs/scrub/bmap.c @@ -350,7 +350,7 @@ xchk_bmap_iextent( irec->br_startoff); /* Make sure the extent points to a valid place. */ - if (irec->br_blockcount > MAXEXTLEN) + if (irec->br_blockcount > XFS_MAX_BMBT_EXTLEN) xchk_fblock_set_corrupt(info->sc, info->whichfork, irec->br_startoff); if (info->is_rt && diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c index eb2e387ba528..18c1b99311a8 100644 --- a/fs/xfs/xfs_bmap_util.c +++ b/fs/xfs/xfs_bmap_util.c @@ -119,14 +119,14 @@ xfs_bmap_rtalloc( */ ralen = ap->length / mp->m_sb.sb_rextsize; /* - * If the old value was close enough to MAXEXTLEN that + * If the old value was close enough to XFS_BMBT_MAX_EXTLEN that * we rounded up to it, cut it back so it's valid again. * Note that if it's a really large request (bigger than - * MAXEXTLEN), we don't hear about that number, and can't + * XFS_BMBT_MAX_EXTLEN), we don't hear about that number, and can't * adjust the starting point to match it. */ - if (ralen * mp->m_sb.sb_rextsize >= MAXEXTLEN) - ralen = MAXEXTLEN / mp->m_sb.sb_rextsize; + if (ralen * mp->m_sb.sb_rextsize >= XFS_MAX_BMBT_EXTLEN) + ralen = XFS_MAX_BMBT_EXTLEN / mp->m_sb.sb_rextsize; /* * Lock out modifications to both the RT bitmap and summary inodes @@ -839,9 +839,11 @@ xfs_alloc_file_space( * count, hence we need to limit the number of blocks we are * trying to reserve to avoid an overflow. We can't allocate * more than @nimaps extents, and an extent is limited on disk - * to MAXEXTLEN (21 bits), so use that to enforce the limit. + * to XFS_BMBT_MAX_EXTLEN (21 bits), so use that to enforce the + * limit. */ - resblks = min_t(xfs_fileoff_t, (e - s), (MAXEXTLEN * nimaps)); + resblks = min_t(xfs_fileoff_t, (e - s), + (XFS_MAX_BMBT_EXTLEN * nimaps)); if (unlikely(rt)) { dblocks = XFS_DIOSTRAT_SPACE_RES(mp, 0); rblocks = resblks; diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index e552ce541ec2..87e1cf5060bd 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c @@ -402,7 +402,7 @@ xfs_iomap_prealloc_size( */ plen = prev.br_blockcount; while (xfs_iext_prev_extent(ifp, &ncur, &got)) { - if (plen > MAXEXTLEN / 2 || + if (plen > XFS_MAX_BMBT_EXTLEN / 2 || isnullstartblock(got.br_startblock) || got.br_startoff + got.br_blockcount != prev.br_startoff || got.br_startblock + got.br_blockcount != prev.br_startblock) @@ -414,23 +414,23 @@ xfs_iomap_prealloc_size( /* * If the size of the extents is greater than half the maximum extent * length, then use the current offset as the basis. This ensures that - * for large files the preallocation size always extends to MAXEXTLEN - * rather than falling short due to things like stripe unit/width - * alignment of real extents. + * for large files the preallocation size always extends to + * XFS_BMBT_MAX_EXTLEN rather than falling short due to things like stripe + * unit/width alignment of real extents. */ alloc_blocks = plen * 2; - if (alloc_blocks > MAXEXTLEN) + if (alloc_blocks > XFS_MAX_BMBT_EXTLEN) alloc_blocks = XFS_B_TO_FSB(mp, offset); qblocks = alloc_blocks; /* - * MAXEXTLEN is not a power of two value but we round the prealloc down - * to the nearest power of two value after throttling. To prevent the - * round down from unconditionally reducing the maximum supported - * prealloc size, we round up first, apply appropriate throttling, - * round down and cap the value to MAXEXTLEN. + * XFS_BMBT_MAX_EXTLEN is not a power of two value but we round the prealloc + * down to the nearest power of two value after throttling. To prevent + * the round down from unconditionally reducing the maximum supported + * prealloc size, we round up first, apply appropriate throttling, round + * down and cap the value to XFS_BMBT_MAX_EXTLEN. */ - alloc_blocks = XFS_FILEOFF_MIN(roundup_pow_of_two(MAXEXTLEN), + alloc_blocks = XFS_FILEOFF_MIN(roundup_pow_of_two(XFS_MAX_BMBT_EXTLEN), alloc_blocks); freesp = percpu_counter_read_positive(&mp->m_fdblocks); @@ -478,14 +478,14 @@ xfs_iomap_prealloc_size( */ if (alloc_blocks) alloc_blocks = rounddown_pow_of_two(alloc_blocks); - if (alloc_blocks > MAXEXTLEN) - alloc_blocks = MAXEXTLEN; + if (alloc_blocks > XFS_MAX_BMBT_EXTLEN) + alloc_blocks = XFS_MAX_BMBT_EXTLEN; /* * If we are still trying to allocate more space than is * available, squash the prealloc hard. This can happen if we * have a large file on a small filesystem and the above - * lowspace thresholds are smaller than MAXEXTLEN. + * lowspace thresholds are smaller than XFS_BMBT_MAX_EXTLEN. */ while (alloc_blocks && alloc_blocks >= freesp) alloc_blocks >>= 4; From patchwork Mon Mar 21 05:17:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786796 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 A7C37C433EF for ; Mon, 21 Mar 2022 05:18:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344229AbiCUFTv (ORCPT ); Mon, 21 Mar 2022 01:19:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52072 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343929AbiCUFTu (ORCPT ); Mon, 21 Mar 2022 01:19:50 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9D53333E3C for ; Sun, 20 Mar 2022 22:18:25 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KLLRAh006156; Mon, 21 Mar 2022 05:18:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=fBZUMunqmwJnwFs0rcIfU+gr1slsG608CbnR6gLmH3E=; b=ZBfyxGrDKa12o8QPUtrBdrZJ7EWhpGbN4FUBWF2MicxX4aTSyAJ6rJsvVFokiWISZ4l5 HtcW8HungyHkbn1xnSfoIbs1z0E42KpL7ey+d1Pj1dmbOHSA5ImeEKVsrhF2+PZVnGLA sci0l7sx0slNZsq//swNW+U3vhQJI4jYJgjd45RzMzzqTwRnurdlP9UTaDyQzUKgkWKu 3Xv1Cz1cN7vi8MMwUWQ3LB8gt64bBqodRMoqmYGj7mHeyGpcis07LF/6xKyEW7HNftAu HdFbY6MZW6Ni+TLjmHOgYCKRyfw4kqyhIGjiuq7gH/4qvXZh0l/RgXSN+u5PeEFS/oEc Jw== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew5y1t4qr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:20 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5Fwim057906; Mon, 21 Mar 2022 05:18:19 GMT Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam08lp2043.outbound.protection.outlook.com [104.47.74.43]) by userp3020.oracle.com with ESMTP id 3exawgeuyy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XJ32eeUtueUAX6KHP+ODLR83nvetlY0bkqNllxQH8XW7IglDAacywcPrp+b+jff/qTj0C0UlXBQLhrCDTNccwxqubHdRmA0aoxbmcn2JYx+E9KpEmeIK9RNOzrP7fnYPHjtQ+5shYnGiF7N4yEUW7tUpxuucUhmgkuuAgpHw2WsrluV7I2GfTbJImqV0eGj8NUaZIq1g5HUdkfq7ifin3dzcsJx4DBkmZylSyRuhjHuIGy3AruLq6uHsCcOLuiQZtOkPmfHpfvIsVcvF8Ohg1g638FEddwSvnSBn2oTsIXLQGb3rhTSe6F+KWYLvquYygy51lmV91uFBP3z+h2hUIA== 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=fBZUMunqmwJnwFs0rcIfU+gr1slsG608CbnR6gLmH3E=; b=NWxH4frEDUKTG/ZOdOpq/EvW1fiFTsGl9aVPv7ynXyv8bgXQPab/OmZg/kWsX5oq6aO7ZQPTSPcLLBAdRybdE9mUkd0fQQATlMABWOPd3wuGR8Vd4iTVickBw3I34KgbaF27bVIaXwhycVslYjS1+caJN5fldJqoQpKMBsOuNJG5K5gNDuvM3AvQevV0ZVxp4oWS7skOLjQDFsuAaL0CEQY5jHDAO25Ns92/iWZIkvjeHx/vmcNk6kFE6Dj0Wt1xy+WyaHOU9DtSy5no7aZVXJ2psMo9YzC/CqmPUDcJoQ9bbBbTX0wPSCvmLFHXUD2LokM9PhcuUpfM6L47rN37hQ== 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=fBZUMunqmwJnwFs0rcIfU+gr1slsG608CbnR6gLmH3E=; b=rbKcSBItbsBBJXza0dkk6l74OFnGiX9Xxe9eokhMKS0ijeu3W07fzj5B8GD2GVExB2x9EQPD9/Kzpks5JcNkOpvWYI/RnXnY5j2Ts/EyKhX5WSbfxE5mR3RcRyj3LTGAlxqfMmQqFe1IdkPcvXj+qwokOmhfGZz7uPG+QSUkN1s= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by DM5PR1001MB2105.namprd10.prod.outlook.com (2603:10b6:4:2b::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.15; Mon, 21 Mar 2022 05:18:17 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:17 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com, Dave Chinner Subject: [PATCH V8 03/19] xfs: Introduce xfs_iext_max_nextents() helper Date: Mon, 21 Mar 2022 10:47:34 +0530 Message-Id: <20220321051750.400056-4-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0cf7d4fb-9c9b-4c5f-1ffc-08da0afa352a X-MS-TrafficTypeDiagnostic: DM5PR1001MB2105: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: jDkmd5fNdNxz5g3n2kXAnyQN6VFK9wyHruyto7LAa0qoPRnsPBPYNXRZzh4jh8iUg9j0lY1cRJ+TfeBt+bvxyNGHjSr7BwzAC2SE/ECMhSN3WePWjkAJwjwm6//Wawyc/6H2s4Ovt6VkW6a4RGTygsjP7aT2tVVhOueAC2WcjeRaMh+q/q8sfz57ZnYbPFsgYl+pZYrBsafe0V3KFxKvcY04JHDQFKcpoBqAjZsY7mYs9PvaRXttjao7EJz470Ix4zXH+k6JrRlpOjIusUPTmKB1N/+ceojmbEDgtuUzJnamEUDEU3eje5Jx7nLNKPpzO9NeHPCQmRr95IKuFcbO6iAF9edeC/EUI6VeBYfpOSwzKybIyn+8ppixWxn+HRhBQUTiRWYQXdSQT794WFBLppoqO+ndzdhEUd/2ZTEbOfMNhB1EFxQEev3NzkYVZS7P37pmWsDHpc6tK0zMB4ohNi8Se0JFwxL72TC0RipGILSoVb/EgeFJhgYqkNpjb0SgmIbmSdUlP2mvD8afQoEJ6YsTwtRh2xXjVLPUx+T1wfNSCxvflHQRNRPhx3eOasBYLYXXAcIcT6S7557d8w3f/UXICVQVu8/1BpO+gbauLDN7IuX3gqNb+NbxsF+eW3oSGuIjdDyy4La/lNhZ6Y7Y+YE12ZW+pd5gcI+iBcoPI0BhknZQMheetkhoTZoM8RcHCDbUKFRpDaMm8Mstt8x58g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(6486002)(66556008)(8676002)(66946007)(4326008)(66476007)(5660300002)(86362001)(8936002)(508600001)(6666004)(186003)(1076003)(26005)(83380400001)(52116002)(2906002)(6506007)(6512007)(2616005)(38350700002)(38100700002)(54906003)(316002)(36756003)(6916009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ShMNMGz5i7bAaUV5vhIRfYkGuh3pSvittMm6Sh3lHr1bwNYM0LAXdOXyz3XyO/s9AOImObMiFaKD95UKdDG+utG3K9HlRd18YaB1DB++knxZCyRE0dEZehiSV5iiRKpRX1YBm2pwCVmXm1XQ0KetwG1JdI5ZBSvYsPc93MYOknhT+rqXKrR1eYbaQETA6DEj3mGUqCi4MKD7470Pu6aBBBQq3hj6Z2VD6R4iw623wEnpNGHuN8imgdNk5beT/ppBBLYtBMMdf2QQUEk36ilhUw5jLBMSGV3A/9d/tNKJA+OwVkaVa+2PnOQObvsT1Nt90yU8bbtAFShfxPCe5XFb0sCUTizkjvlTSHLjnt0C0TXR3Vj6vL72BMvTcVbIN18JeyQPxtqiiBi1J223rplskBHyEC94+pt/RZfOdDFxKAh1XVggZiQkVubosscMz86Ok0vYUM2zojiu07HQs8uRiHr37aqestZiFB1YYCxnqUXmya6hZgEcPy7WIkvjTRdF5O+oCOZhF5L1WIPJVtbiOA8ju9WlBPIMRUJoye/ObzMpwrmTouAS6yilNoYGMK+7Hxuwmq3+AOxQlhWihEKj8UmEleYACjtlu7dAqKnXPze2uYF/HywMssEC/0nw8YzYZYtctN44AmBBudfxJ6RPrmEDkBGiOBxBpzX81pf3TZAUDEo/pvXUOzJRLBNDDQaUqxOjAM2eh7eoemP6vsr0p10p2JgUo5E6koIbpLc3SdnNFW+cubEp7NvclMkj5BqxEbkvOdF1BMGVm6MkU+0zMlCllngWg4aElwn9yIya0cuHJadl7uvIizpfB+PJuromm0qGfklZlAXnkj4iFHhi5D9iw0py3HNTn+NgWBAvFGrms292FAG4SoUxYpO03CFW2kqPVjRHDz5F6baHp2vzDL/+kaL9N7ARKUAOpWP+hEnMlqQxUjfFcz5dWQzfHlLilYQALlYqFhDiPxXdkEDq+SgOeL1uqu1aX59V5hVKwccntWnrjJnO7wqWxqUUjIEQlWnvKYaXS5zi0QN/P+lDiaOgXmmbF+5akT4eDgcog/PZnjlDUfnfpCx//WxlmKkVxw0EJoFuIQBQoxx+IcfYIMWOQLkDz1gc5wnf/mQV+FhqBFjTfPn13u4oBjNh5pfDW9J2/OcDV5j7gcSeExvUoj3/Fc+npE2Tib6aXoEj4PmCD8Wn+gnUKeytb0rS7VPL1EsL97SMnEIko5uIVqXLbR9lnBVCbVjwwfVvn7C3kufvM6nifyiI1PS2Kio73ydlNuhYCJ6aP44CQDNUpYUKOe/Qs0UnfinMegbX6nCNXqqvsoTjQ9WyNH1AIMXb6A6xK4AhwpOS4+Mwytk4csO4LZTlbELVOL8o5CjxGbUZSg4sCnZ9ilb/bzOD+fAHj0ruSV5UCdpgTV0QX4IFwgs4aJrk4ZKSNCIiHmICBWn6c8FKB/QekWDak7kOxlFY+QxWI6n/yfYraRj6XSC2mcsSjg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0cf7d4fb-9c9b-4c5f-1ffc-08da0afa352a X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:17.7038 (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: zjVcc9+NIbquYZplpI+eb8vRdYEI7EHPwyvCUPj5DKus5vy5dnHpPAevKiStv/Gj6gk0iMqzThDPzowqrdVLiQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1001MB2105 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: Ak8Ui2b4kVvXB6_w-eobRJvcAPju9d4y X-Proofpoint-ORIG-GUID: Ak8Ui2b4kVvXB6_w-eobRJvcAPju9d4y Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org xfs_iext_max_nextents() returns the maximum number of extents possible for one of data, cow or attribute fork. This helper will be extended further in a future commit when maximum extent counts associated with data/attribute forks are increased. Reviewed-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Chandan Babu R --- fs/xfs/libxfs/xfs_bmap.c | 9 ++++----- fs/xfs/libxfs/xfs_inode_buf.c | 8 +++----- fs/xfs/libxfs/xfs_inode_fork.c | 2 +- fs/xfs/libxfs/xfs_inode_fork.h | 8 ++++++++ 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index 00b8e6e1c404..a713bc7242a4 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -74,13 +74,12 @@ xfs_bmap_compute_maxlevels( * ATTR2 we have to assume the worst case scenario of a minimum size * available. */ - if (whichfork == XFS_DATA_FORK) { - maxleafents = MAXEXTNUM; + maxleafents = xfs_iext_max_nextents(whichfork); + if (whichfork == XFS_DATA_FORK) sz = XFS_BMDR_SPACE_CALC(MINDBTPTRS); - } else { - maxleafents = MAXAEXTNUM; + else sz = XFS_BMDR_SPACE_CALC(MINABTPTRS); - } + maxrootrecs = xfs_bmdr_maxrecs(sz, 0); minleafrecs = mp->m_bmap_dmnr[0]; minnoderecs = mp->m_bmap_dmnr[1]; diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c index 87781a5d5a45..b1c37a82ddce 100644 --- a/fs/xfs/libxfs/xfs_inode_buf.c +++ b/fs/xfs/libxfs/xfs_inode_buf.c @@ -337,6 +337,7 @@ xfs_dinode_verify_fork( int whichfork) { uint32_t di_nextents = XFS_DFORK_NEXTENTS(dip, whichfork); + xfs_extnum_t max_extents; switch (XFS_DFORK_FORMAT(dip, whichfork)) { case XFS_DINODE_FMT_LOCAL: @@ -358,12 +359,9 @@ xfs_dinode_verify_fork( return __this_address; break; case XFS_DINODE_FMT_BTREE: - if (whichfork == XFS_ATTR_FORK) { - if (di_nextents > MAXAEXTNUM) - return __this_address; - } else if (di_nextents > MAXEXTNUM) { + max_extents = xfs_iext_max_nextents(whichfork); + if (di_nextents > max_extents) return __this_address; - } break; default: return __this_address; diff --git a/fs/xfs/libxfs/xfs_inode_fork.c b/fs/xfs/libxfs/xfs_inode_fork.c index 9149f4f796fc..e136c29a0ec1 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.c +++ b/fs/xfs/libxfs/xfs_inode_fork.c @@ -744,7 +744,7 @@ xfs_iext_count_may_overflow( if (whichfork == XFS_COW_FORK) return 0; - max_exts = (whichfork == XFS_ATTR_FORK) ? MAXAEXTNUM : MAXEXTNUM; + max_exts = xfs_iext_max_nextents(whichfork); if (XFS_TEST_ERROR(false, ip->i_mount, XFS_ERRTAG_REDUCE_MAX_IEXTENTS)) max_exts = 10; diff --git a/fs/xfs/libxfs/xfs_inode_fork.h b/fs/xfs/libxfs/xfs_inode_fork.h index 3d64a3acb0ed..2605f7ff8fc1 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.h +++ b/fs/xfs/libxfs/xfs_inode_fork.h @@ -133,6 +133,14 @@ static inline int8_t xfs_ifork_format(struct xfs_ifork *ifp) return ifp->if_format; } +static inline xfs_extnum_t xfs_iext_max_nextents(int whichfork) +{ + if (whichfork == XFS_DATA_FORK || whichfork == XFS_COW_FORK) + return MAXEXTNUM; + + return MAXAEXTNUM; +} + struct xfs_ifork *xfs_ifork_alloc(enum xfs_dinode_fmt format, xfs_extnum_t nextents); struct xfs_ifork *xfs_iext_state_to_fork(struct xfs_inode *ip, int state); From patchwork Mon Mar 21 05:17:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786799 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 C9828C433EF for ; Mon, 21 Mar 2022 05:18:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245600AbiCUFT5 (ORCPT ); Mon, 21 Mar 2022 01:19:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52192 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344287AbiCUFTx (ORCPT ); Mon, 21 Mar 2022 01:19:53 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E115733E3C for ; Sun, 20 Mar 2022 22:18:27 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KIsrE7027768; Mon, 21 Mar 2022 05:18:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=J6KX/tNnOC7riNJxBwdY33hOhJ/s/RGBFlPrfwzXQGk=; b=slCISZeK4r4eRqRKqz9EkSlul/Y/0Y8OMpU91i0nH3mhXk9lzUkjypnOTvzZ4omsK/1I xobr2zktHZJ9zJtf7Cvdcfyz19ps7PDkuHpzB6PA6t2IqW51qmiAmTpQ72KWJwvuvvLl w8jOduke+HWWWclNq3GIQyUr8EVDiASfFIAeTuxpNPBrfw4cllfXCi9oRqoB+zZzyAUa tAYzji97UXHWnnB7dcoPbMhKBR+STy/FBMhbZN++wcMJCiIWqt847DWzeJMLckTYC48/ +cyyQcASONankfqbCRocc2a0EF5ZtiBAwexojT5IT3luzsmQLw1QeboUfRGT+kgsD9nQ vw== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew5y1t4qt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:23 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5G1ee058037; Mon, 21 Mar 2022 05:18:22 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2048.outbound.protection.outlook.com [104.47.56.48]) by userp3020.oracle.com with ESMTP id 3exawgev08-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iPLy96c+4xZ3jUiPQpmfFCvVYE55fOIohk9rFsdAMD/wPb73grSFCTlyO5KbFBuXdGojef9l9+aQ/sdFAcBcfdYbIoMxYRGpFJuWIKjfiV3hQqLomwzobhfi6qFV9v/sDsUU2KEot0Xk+OnQmshAsQ3r9hZtJljSIprFKCnFkgTue83n9A49KQ8MQgYzyEW4g76D9z2EnO/ECU7Vfxr33dF/4AV8d/OYe4wQirwcg2KPL7tjwW0jLHTtmlof4AqhOoTjHoYVFBK1RROnFxWrpvWnYiUtiW7QhbWngTirV6Ml2Jz5fsHvQIr019n8s1VpUbbc4umtVohQGUSP335qoA== 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=J6KX/tNnOC7riNJxBwdY33hOhJ/s/RGBFlPrfwzXQGk=; b=Z7TAOdCWXnD9j7AJTyZG/kqYqqT0cSIbE01CiVQffKrjbaU0Ugl+Zcw1cj51sOSTwElo026Fep87r7ixt8h5bPjGyZOTYFCno+12arpqG2tgoRhs40iugIxa680WnPVy2kyp4HslK8ADdJfSJbimtst6QOweCRZBonbxXBC0QY93/o2oQ+W9U8yD4J51oMFfMXKu0XOctpWpEMHjyKUQEE+5F8oWuuqQQYEl0Oo4lZk9y0GfqxwTSQrPKEyQQY4IHiBrzKCT4pOjexAPFe4Me5saxt/wVWYUxN/iDvSt/AO43CPKMz9jCqeq9hwqK+sTyR6IMDNhqFG+Yks+hcRg+w== 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=J6KX/tNnOC7riNJxBwdY33hOhJ/s/RGBFlPrfwzXQGk=; b=rvQuCnGCBlf/lZocY1HbpG/mHekFf8qkTUmkEaRLvWXDVKgdamuVQY7b09P8CzM8GlspS2E6AzEyen7t6LN3W/fuKIRh3aUlHr5Qjyw9PnUPLVIDhg/iwbOElhDSrS/T3jFzXTZ9bB4p4JqYaCcKSdM4mq/TCOPjbnM+Hjt181Y= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:20 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:20 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com, Dave Chinner Subject: [PATCH V8 04/19] xfs: Use xfs_extnum_t instead of basic data types Date: Mon, 21 Mar 2022 10:47:35 +0530 Message-Id: <20220321051750.400056-5-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8d43f775-26d8-4441-1c6e-08da0afa3689 X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: OYuW+rriXF0LrhKuRnPHGof2+zO6h/IeTpXYCiG213j7Kdw1s+6ZmOkCeVzrhVLodNsp6YuTTPfp7muFDwi9KgL7+1ANjifL6jV+3GuW31aQw/ctF0qD5zvykKljnTp1xmcau/NQlDhwLYmL6tCcsHL9+rBc8PEH+G/fPoB3j4mn906E/ncA6Z2MIsDWoYZa2QII+Mwy8v3VRop8RNnL9m/1vCpW3lisme8jlH+N4THa1cexSFIdLeM3upz28f9aQy1UFWQNYCCydqQY9AIxsNw+Ii7eRnqf2hx5y3C03Jr9fuv10I22EG6pXFYNlDH0oWdEPEblC5KV5P5XyWm7TusPriUqMPuKKXCp5ApsKrx8GSiC3zKM0a/MaQDSEJawEarwHTcvpY7K6X0tj0VZU0HvAYpLjPtInpxJa8+nEFWXxcmYCUokrciGqYGUM4+bGkwgaLuGNOKfxZrEYce21fxNR0r8/ZrCpKzHcmrFzvZNBiZjK+2DNiD/NMmNOdYnloGP8BfNurtnzPVT1JJF11ChwT9YOPSFQOCSjFUxfvzp+sxrODW815DX/3gXUyHJcQDkI9To//pkUNeiEGAp5AUsUvatwofPNewbU3rUMseDTsMc1kEBCZvp65GinOMbEG2mSpjAWk0qNYLIda+gKfARCY8Uw3EEYU5GaBmbo879RsswQBbNciEpOYM9Ls4H5/YSfLF8vOxQ5nm1FalSww== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(54906003)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: FAQRSPC3eHX99Y456KD2++IGEM22kElNNJWCqhdgC14VqeEr5t2wRQPhaOPcgTWNwUCVhrd02mXHpOng+nBZrd9n/7i6mcpD1ae0gFZ3W7Cb2APif2je70ipwT8jthdlh/QFXpjRhq2b0Hk7jvMl6Txm4Vw7cxiyJ22yVZ9nCCTph2nIupzxA1LlTxNTmTLHbyiWD3rIupAW7PegJL3qCpnUKnI2cCR1dEc5y4JlKe3GW3HQ1m/NY4IZcyvfAlF8odMlxNbw49VGervF0PrusUqQahSkbSdfCYvfbS9xuEJ4SphQK6iq2oja2mA6FGCveZr7c9szMFQyjRl7QkMjVj9VaEM0NA52W8+9Uu4mzuIzkEDmWHAcPjSLQqN1a+Gz35Im1EGj+kLVbKjJu37J2lglxCdrIiMBwOL3H9ho/JLXy1y5TW3f8RGDTfDjlXqPYt3cUjVDWE6kT4F3d44MYeNSqgoPgvY8rL5xcDKjih2Yq2rLCR2Y1LOxzODz3LCt9d+vsQt0/loSuiMzGUg4Ic2mSWf4RaED7bYFqcxbzHzvmuVSuX1fBf4iccrG3pMx2SB8oX9gF0HqBX5UyMHgwjVo8Pm6/4ASOUtyjs0z37NB9TUOg0xeWY1+CleW5899BA9JXHQxx/amcjX0+hVkoRmD95rEfvhJkvJlOeVBMhBAE4v1kRRdAM836y+0Ayn1Abvz1ic27snPeG67iCBbZhnuDk4iVpYDi9PHEm3Avt6UgkIdYAMUA6OuYrPvdAYcO7ARxIkFmMc8eGRc5xoaQSn+n0kdWllQkBGI/sIMcF8rH94PIWAaGuc87D4eMk/C9MIS9IFpnsHgPEsYUejMyRUjyqui5FM60+EQ4mJATpIl4fFu53YrcMoo5dUVQLuZqCP6GwcpIkCclmioK8ZWXXZdRNzo+7uX+uqP/MGJyOnjq3fh3PXuS2/D5usCfQLLhD4Xjo95yF8JyAeLkc5RvbiL+CyDZKyalu/Y58Wv+uEkwhYBR3iXrRxizAzIeSRSw30eqw9kLwzAt6eFiP2+GvU7QUQrb8a7+vuGdZSJOcjiG+te1BpOxRXG+kevBgBRuNS+eFxHyhfFfYGm+b+eSyeRGKQ6kxUESJ7ddcm16m7UBNbRHOmfPHdHm7etF7D3ZjPttOuGNHmhEV0BjE37aVXKcK1vzTbkN2/otB9ypZZt33N1/wL0wgeYOGZwpBnZJhE9+NDuGi+buafNF6SjuIIx2XrolQxuqsyejqrpzrPxHDZAFvDcSNI4jEyCfG57MLMGNa451/EJJvPovaz8M9XTIpd/G+tpLISKypSk6JIuFT20HTerpNZH+vxpU/CgtIY3OY6V8kVJ85i9GEcSMDJnk+8P6U8IDIQbDy60wqxdtP1gLM3G7OAA/miJxxe6Fk/l5eF/aST6EYptPWGjfpzACrAvrHq1XTQjMtKEUU2dAMJ1q2y0Y69zcGpdrGC0ZaBMN10nFEX1bVewjpmPuw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d43f775-26d8-4441-1c6e-08da0afa3689 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:20.0029 (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: drI6rAFwFFuhBlQRSdQpaImCbqjPFi3HhtUHgTRlgm7lBkVVZNKp9PcjkB7rx77Dzccxs+OXz0kAABYUaMDVaQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: EcIPNmDJwotpH8S5-g4svKH0YLl1FhFx X-Proofpoint-ORIG-GUID: EcIPNmDJwotpH8S5-g4svKH0YLl1FhFx Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org xfs_extnum_t is the type to use to declare variables which have values obtained from xfs_dinode->di_[a]nextents. This commit replaces basic types (e.g. uint32_t) with xfs_extnum_t for such variables. Reviewed-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Chandan Babu R --- fs/xfs/libxfs/xfs_bmap.c | 2 +- fs/xfs/libxfs/xfs_inode_buf.c | 2 +- fs/xfs/libxfs/xfs_inode_fork.c | 2 +- fs/xfs/scrub/inode.c | 2 +- fs/xfs/xfs_trace.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index a713bc7242a4..cc15981b1793 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -54,7 +54,7 @@ xfs_bmap_compute_maxlevels( { int level; /* btree level */ uint maxblocks; /* max blocks at this level */ - uint maxleafents; /* max leaf entries possible */ + xfs_extnum_t maxleafents; /* max leaf entries possible */ int maxrootrecs; /* max records in root block */ int minleafrecs; /* min records in leaf block */ int minnoderecs; /* min records in node block */ diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c index b1c37a82ddce..7cad307840b3 100644 --- a/fs/xfs/libxfs/xfs_inode_buf.c +++ b/fs/xfs/libxfs/xfs_inode_buf.c @@ -336,7 +336,7 @@ xfs_dinode_verify_fork( struct xfs_mount *mp, int whichfork) { - uint32_t di_nextents = XFS_DFORK_NEXTENTS(dip, whichfork); + xfs_extnum_t di_nextents = XFS_DFORK_NEXTENTS(dip, whichfork); xfs_extnum_t max_extents; switch (XFS_DFORK_FORMAT(dip, whichfork)) { diff --git a/fs/xfs/libxfs/xfs_inode_fork.c b/fs/xfs/libxfs/xfs_inode_fork.c index e136c29a0ec1..a17c4d87520a 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.c +++ b/fs/xfs/libxfs/xfs_inode_fork.c @@ -105,7 +105,7 @@ xfs_iformat_extents( struct xfs_mount *mp = ip->i_mount; struct xfs_ifork *ifp = XFS_IFORK_PTR(ip, whichfork); int state = xfs_bmap_fork_to_state(whichfork); - int nex = XFS_DFORK_NEXTENTS(dip, whichfork); + xfs_extnum_t nex = XFS_DFORK_NEXTENTS(dip, whichfork); int size = nex * sizeof(xfs_bmbt_rec_t); struct xfs_iext_cursor icur; struct xfs_bmbt_rec *dp; diff --git a/fs/xfs/scrub/inode.c b/fs/xfs/scrub/inode.c index eac15af7b08c..87925761e174 100644 --- a/fs/xfs/scrub/inode.c +++ b/fs/xfs/scrub/inode.c @@ -232,7 +232,7 @@ xchk_dinode( size_t fork_recs; unsigned long long isize; uint64_t flags2; - uint32_t nextents; + xfs_extnum_t nextents; prid_t prid; uint16_t flags; uint16_t mode; diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h index 4a8076ef8cb4..3153db29de40 100644 --- a/fs/xfs/xfs_trace.h +++ b/fs/xfs/xfs_trace.h @@ -2169,7 +2169,7 @@ DECLARE_EVENT_CLASS(xfs_swap_extent_class, __field(int, which) __field(xfs_ino_t, ino) __field(int, format) - __field(int, nex) + __field(xfs_extnum_t, nex) __field(int, broot_size) __field(int, fork_off) ), From patchwork Mon Mar 21 05:17:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786798 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 96873C433FE for ; Mon, 21 Mar 2022 05:18:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343854AbiCUFTz (ORCPT ); Mon, 21 Mar 2022 01:19:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52194 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344310AbiCUFTx (ORCPT ); Mon, 21 Mar 2022 01:19:53 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B336D344C4 for ; Sun, 20 Mar 2022 22:18:28 -0700 (PDT) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KI01QU017476; Mon, 21 Mar 2022 05:18:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=E0PdgIR8ZEVPzFE5qqyOOgJ2po2wSe7h6y85ATO9fZs=; b=wFzSKklfBkMk/uz87S4rNSfkr5qObIW1ihU6C42OboFBfGNJHTzGgOBaRgEEDLO1Udps Jc9KNhkWw78qe8Pn9nyiAqCsAEiWfoVQ+7w5Kr+pw0DQHJScUl0FISCJ1Leqke1SYiCJ wDFW76j2w6Lk8hxRKIFrGvdxugbAutsl+X/iZdJGs6NZQuRefNX+Xk2TNxe9VBPIR2yB stjS0s5PPB0fRVOvdfluP4IHl2yOzrwpMGjTJfZ4X+I8NSAc0mR5mDFJyURIqrsgcusi Wh1z2qRg/ji1y9PWHnliP6cWyl6plzO1lBXy/tQNZDXFofzZiADs2+0A/mRmXTptqM+F WQ== Received: from aserp3030.oracle.com ([141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew5kcj4rn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:24 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5IFdI121142; Mon, 21 Mar 2022 05:18:23 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2049.outbound.protection.outlook.com [104.47.56.49]) by aserp3030.oracle.com with ESMTP id 3ew578rnsx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mPqvMEVpee5ckeewRSdz/3HbsR/y2K4wqW3nJ9BxwDz9dh3A/tIRMHUPcpKsuQq8ahjEEDUsASamJinCTtVrntZuP4hzB/ZYjx2MD5dQyAhY3lDxKsWJFWzQKEifZ6Q5yJ9hL+T/lscpxXq+bp3+TFY2k6tBLSCoiHgI7lmy6TeY3I51suaG7hsw80DFqDz351QENAkETSVSVHwaj90cyZMzuZM5SZuE9beMDTYxk9s5dVw9BInGaRysM/JtSppq6//Sv83oDf100FF86kJI0Hga1liuwgDLIrpLG8bG2zmdkByQL96A2fr1U8DHvQZltjAsSPYTpT7aqUueniZ5Ag== 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=E0PdgIR8ZEVPzFE5qqyOOgJ2po2wSe7h6y85ATO9fZs=; b=Dee32+SlocuFNtUHrL6bHhUKSfbKqcr0Buhernjmv8KTofcgDPo1VQmho3bbyPYl3zQwQDjmXRpFu2r8hf80t2OjJgSRJny0CUM08Jsz5cEMOxhTcNGhnMsCBwQI/T/LprWu3wP6yhnfcVprq1rTgHRmq+GG3c5LkJ3bK3eJqqcwwLlGiuePZeyvC3FlTF6j0RPPxsLdKMY/flA9qI211Og/TC6pBo8FviikvggxQeprXZyMYp8G6ruIoz3nXzaYeRdhaNhIk6rshNloGpn3S/yZzUowWsguTWUjoEB5VfflmoMll6AxSM6kw6x7XWoqguEsH7SWlihGlUth4f1nbg== 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=E0PdgIR8ZEVPzFE5qqyOOgJ2po2wSe7h6y85ATO9fZs=; b=pP2DU0JonlzGKDcm2MwQHwyFO6Ayz+95grdR+fNROFnuVLydkl7G54CAoV3TSgVo+vTICNi6Sw5TEOvWrdVEoiER8NaqnB7ZNsZh5cEPeM7Yl3KNQqagQnyjM6vmXw6rfm+GR/OGjFOssmj86lkmpCBana6ErreUi1WmMO8xcvw= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:22 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:22 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V8 05/19] xfs: Introduce xfs_dfork_nextents() helper Date: Mon, 21 Mar 2022 10:47:36 +0530 Message-Id: <20220321051750.400056-6-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6f55be79-ac7b-4e85-7fb0-08da0afa37b5 X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: ETFSw5Jt917h4yWIG1mHsTmBozRuf1rvGwWhc2UHqjOuRs+nRMpAC3VhmQQBRxQjEMk8AVxbmZReq6VecCBahwKDzVqv1FEcPXMIk7r+VbreV7Qfy5gNvEJEOpYPknDintOkKMEVWPHnPYuvuCH9dyL1hwrXFkElJ1w3c5TqqAvr2NuyZFPV35thTGZV7c53g+uyIB4zudR03nPY/uksDO4WYQB5SJxsi/0HbgNcyoHRwwgDY0oYbWffpiVM61CxuAR9NS/aDYrEr4h6buKLvZtqSqnMqFLEkylpexf5Kn49DmtJcrwJwKgA+l5KCbcrPgdXA2wYE3QMyTqgNLrxd1nniz00wpiAhZSvFRsfb4U7HOg9sMaVDcOhTNIXlcRbjppS8HaOMtfhRBGzRiNvqXeQza5IXt6b6mz0uumQRACFQQHYcxv/oLnPlDuxo+V/dqBe3zJptd5q4Dsq0uYj1xVwU+zh15qFucji8NKyHOTK9W6NuAycpHrEJa4FBNBJbztoIxJxTAREJ3bQr4PIh9v37251uDuIZrsLw+1kPLcsDaziBZWBrAgL0h9MWUap3/z8lIXI/a57Qvt300ocBPlsf26kckdm+5a7WgZlpJu3yC4T3CkZXEh3a+lPhxtclbcAnpRh6f5Xy7d0doYBo5UgKP92MvNUhthRFXNdGJmJbLYk3ArmN0Cfuy7Gs4+al79frk1Y6CSkDcz39UNWXQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: azrLxKoYwqrpStGNmQodmtmG3Y7Lfwx1lI3QQspI4pwekWpofmcrY5ZTSpRkERVMipmQM3e9r07irVnQ/P4FPtHSVMPN9kKeeParuniY/7qPVKLGE01rA0FNZgWoXpjgUfgHnqfRiSRT8DS6rfK9jOtG4XH58yOvPKsSw+lnfMCOHXlQWc5uB9LUyg73H7+0uspq9PDLovXS2rQSiKCUPBb5in+zBCOlkNms+h855G+wG0Aky5LlNKPRpaZBfTja2W7OBjy+7SUIUjxcWMEIbsYukXp0/Un2+3I7dWpSyFL2uySH7W2mRGNpBlx84+/5Rgz9aZaQFW+lg+rHKYAdhdw2L3S5WeZPN16V5dSzLYickP8XK/4qhmKdUpqcVOaNdOROaHazqEWL4vxmCPtc39JLRaw5sLlAKYnT1Pt7wIlVHMoLLUXJhmrcNCJ+4cOUzzxDXzWG5KExx2c3t8G50X8bI5Li0AEizJKBFnirWNxYHZ0/FbbUpFt46Z4dNOnUs8/zrDGfRt7y8hY2jjBXHcnNUAxpExU/V1JySQHCLuvyx+/nLNN8XEox7cv1y79dYAMK4XmF8da3LbDXL+aiObiNzy0dDJVzeofaqdCpPK4fnjCG6PA8+7XwkAdVOJC2tmLm35VJ2i0fvKhJYB+mZfEgLQg+wkl2vq/Kr363Fq4SjP0ODtCFHs4pQd41Txl9IAKSUmjMqxrA+XVl+ejzeiN4KQ7m+Qg0OySka02KKYMQf8F37p8sNOZkSXHJmWX/TkDm4iGGx/YtNbzfZBm015uO2Zi/cYntlyBla6iXgffRTfT5087Hi0cGlqxcuhj7vYia7LTtvqJA6FkwidlurI/2XTfhWhVgM01au6lnQV6IpJK10+ZATm20YXolXxG63au9/nZGLE4qyCDBpcZe9JK/aTmpO9N37lzAjm4Omxn2McJZwnLp5Vw3SB/00zVKtNsmQzPGhkvzGeXSXdBN3iC0uNNOlrKDwSy5bne3mgYeo11W8tSW3//l6G8eCeG0T4uOenMFrgf2Cp9zvFNBI8kt1Gm+c/IJJ+hNrI6ttXkC9Wn7TIlE9WaLzR/zJxBUzYnvpSN5J+GEsTgM5h8lNTy7Ch1MWZKD2uZnr5x2QB4PMqq1gj9pn5gk88h6F0Wla91CgZLP37xw+0hu008V5PaqPaIxL8PftPJ4eTTVTaMcnKdPQF8qTI0QIjX0L/XlLvCKzyAsDYHkJczoFOYWZIWlqTSDLVnqnWB50AyQp9SyjQy37XMT6Y1oDYoHPNOVYh7oUoszmFawgk94jVYpG1hhVboJe8q1xjjMXi38sMLWXtJmWKV06u3yol3h6xZgmTpJXs53gaWS15r7q8U7tmgdHybYBCgIa0Vb61InHrF85pqyw5LIB+MKbnzrc4f5eCFUK1ClsXuzVScTGXt9U38+YnsQgNI2Uw+Bb6gwhLPDSxI4KwsLphc9gunYlNiCnOwfWUr0XH2oi4FEVRqntA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6f55be79-ac7b-4e85-7fb0-08da0afa37b5 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:21.9714 (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: Aj6Ixr5dGA2cpT0sdssSEfz4WQmiKexNQ0LUcaOd+BI0B9fAtKNBWtrGNtCOruQrX5xvjiPQWFOI1IO4HA0KJA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: X-VmZ8SiH6KuPtov5kH8hKjIKT19GUK3 X-Proofpoint-ORIG-GUID: X-VmZ8SiH6KuPtov5kH8hKjIKT19GUK3 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This commit replaces the macro XFS_DFORK_NEXTENTS() with the helper function xfs_dfork_nextents(). As of this commit, xfs_dfork_nextents() returns the same value as XFS_DFORK_NEXTENTS(). A future commit which extends inode's extent counter fields will add more logic to this helper. This commit also replaces direct accesses to xfs_dinode->di_[a]nextents with calls to xfs_dfork_nextents(). No functional changes have been made. Reviewed-by: Darrick J. Wong Signed-off-by: Chandan Babu R Reviewed-by: Dave Chinner --- fs/xfs/libxfs/xfs_format.h | 4 ---- fs/xfs/libxfs/xfs_inode_buf.c | 17 ++++++++++++----- fs/xfs/libxfs/xfs_inode_fork.c | 8 ++++---- fs/xfs/libxfs/xfs_inode_fork.h | 32 ++++++++++++++++++++++++++++++++ fs/xfs/scrub/inode.c | 18 ++++++++++-------- 5 files changed, 58 insertions(+), 21 deletions(-) diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index 66594853a88b..b5e9256d6d32 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -924,10 +924,6 @@ enum xfs_dinode_fmt { ((w) == XFS_DATA_FORK ? \ (dip)->di_format : \ (dip)->di_aformat) -#define XFS_DFORK_NEXTENTS(dip,w) \ - ((w) == XFS_DATA_FORK ? \ - be32_to_cpu((dip)->di_nextents) : \ - be16_to_cpu((dip)->di_anextents)) /* * For block and character special files the 32bit dev_t is stored at the diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c index 7cad307840b3..f0e063835318 100644 --- a/fs/xfs/libxfs/xfs_inode_buf.c +++ b/fs/xfs/libxfs/xfs_inode_buf.c @@ -336,9 +336,11 @@ xfs_dinode_verify_fork( struct xfs_mount *mp, int whichfork) { - xfs_extnum_t di_nextents = XFS_DFORK_NEXTENTS(dip, whichfork); + xfs_extnum_t di_nextents; xfs_extnum_t max_extents; + di_nextents = xfs_dfork_nextents(dip, whichfork); + switch (XFS_DFORK_FORMAT(dip, whichfork)) { case XFS_DINODE_FMT_LOCAL: /* @@ -405,6 +407,9 @@ xfs_dinode_verify( uint16_t flags; uint64_t flags2; uint64_t di_size; + xfs_extnum_t nextents; + xfs_extnum_t naextents; + xfs_filblks_t nblocks; if (dip->di_magic != cpu_to_be16(XFS_DINODE_MAGIC)) return __this_address; @@ -435,10 +440,12 @@ xfs_dinode_verify( if ((S_ISLNK(mode) || S_ISDIR(mode)) && di_size == 0) return __this_address; + nextents = xfs_dfork_data_extents(dip); + naextents = xfs_dfork_attr_extents(dip); + nblocks = be64_to_cpu(dip->di_nblocks); + /* Fork checks carried over from xfs_iformat_fork */ - if (mode && - be32_to_cpu(dip->di_nextents) + be16_to_cpu(dip->di_anextents) > - be64_to_cpu(dip->di_nblocks)) + if (mode && nextents + naextents > nblocks) return __this_address; if (mode && XFS_DFORK_BOFF(dip) > mp->m_sb.sb_inodesize) @@ -495,7 +502,7 @@ xfs_dinode_verify( default: return __this_address; } - if (dip->di_anextents) + if (naextents) return __this_address; } diff --git a/fs/xfs/libxfs/xfs_inode_fork.c b/fs/xfs/libxfs/xfs_inode_fork.c index a17c4d87520a..1cf48cee45e3 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.c +++ b/fs/xfs/libxfs/xfs_inode_fork.c @@ -105,7 +105,7 @@ xfs_iformat_extents( struct xfs_mount *mp = ip->i_mount; struct xfs_ifork *ifp = XFS_IFORK_PTR(ip, whichfork); int state = xfs_bmap_fork_to_state(whichfork); - xfs_extnum_t nex = XFS_DFORK_NEXTENTS(dip, whichfork); + xfs_extnum_t nex = xfs_dfork_nextents(dip, whichfork); int size = nex * sizeof(xfs_bmbt_rec_t); struct xfs_iext_cursor icur; struct xfs_bmbt_rec *dp; @@ -230,7 +230,7 @@ xfs_iformat_data_fork( * depend on it. */ ip->i_df.if_format = dip->di_format; - ip->i_df.if_nextents = be32_to_cpu(dip->di_nextents); + ip->i_df.if_nextents = xfs_dfork_data_extents(dip); switch (inode->i_mode & S_IFMT) { case S_IFIFO: @@ -295,14 +295,14 @@ xfs_iformat_attr_fork( struct xfs_inode *ip, struct xfs_dinode *dip) { + xfs_extnum_t naextents = xfs_dfork_attr_extents(dip); int error = 0; /* * Initialize the extent count early, as the per-format routines may * depend on it. */ - ip->i_afp = xfs_ifork_alloc(dip->di_aformat, - be16_to_cpu(dip->di_anextents)); + ip->i_afp = xfs_ifork_alloc(dip->di_aformat, naextents); switch (ip->i_afp->if_format) { case XFS_DINODE_FMT_LOCAL: diff --git a/fs/xfs/libxfs/xfs_inode_fork.h b/fs/xfs/libxfs/xfs_inode_fork.h index 2605f7ff8fc1..7ed2ecb51bca 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.h +++ b/fs/xfs/libxfs/xfs_inode_fork.h @@ -141,6 +141,38 @@ static inline xfs_extnum_t xfs_iext_max_nextents(int whichfork) return MAXAEXTNUM; } +static inline xfs_extnum_t +xfs_dfork_data_extents( + struct xfs_dinode *dip) +{ + return be32_to_cpu(dip->di_nextents); +} + +static inline xfs_extnum_t +xfs_dfork_attr_extents( + struct xfs_dinode *dip) +{ + return be16_to_cpu(dip->di_anextents); +} + +static inline xfs_extnum_t +xfs_dfork_nextents( + struct xfs_dinode *dip, + int whichfork) +{ + switch (whichfork) { + case XFS_DATA_FORK: + return xfs_dfork_data_extents(dip); + case XFS_ATTR_FORK: + return xfs_dfork_attr_extents(dip); + default: + ASSERT(0); + break; + } + + return 0; +} + struct xfs_ifork *xfs_ifork_alloc(enum xfs_dinode_fmt format, xfs_extnum_t nextents); struct xfs_ifork *xfs_iext_state_to_fork(struct xfs_inode *ip, int state); diff --git a/fs/xfs/scrub/inode.c b/fs/xfs/scrub/inode.c index 87925761e174..51820b40ab1c 100644 --- a/fs/xfs/scrub/inode.c +++ b/fs/xfs/scrub/inode.c @@ -233,6 +233,7 @@ xchk_dinode( unsigned long long isize; uint64_t flags2; xfs_extnum_t nextents; + xfs_extnum_t naextents; prid_t prid; uint16_t flags; uint16_t mode; @@ -390,8 +391,10 @@ xchk_dinode( xchk_inode_extsize(sc, dip, ino, mode, flags); + nextents = xfs_dfork_data_extents(dip); + naextents = xfs_dfork_attr_extents(dip); + /* di_nextents */ - nextents = be32_to_cpu(dip->di_nextents); fork_recs = XFS_DFORK_DSIZE(dip, mp) / sizeof(struct xfs_bmbt_rec); switch (dip->di_format) { case XFS_DINODE_FMT_EXTENTS: @@ -411,7 +414,7 @@ xchk_dinode( /* di_forkoff */ if (XFS_DFORK_APTR(dip) >= (char *)dip + mp->m_sb.sb_inodesize) xchk_ino_set_corrupt(sc, ino); - if (dip->di_anextents != 0 && dip->di_forkoff == 0) + if (naextents != 0 && dip->di_forkoff == 0) xchk_ino_set_corrupt(sc, ino); if (dip->di_forkoff == 0 && dip->di_aformat != XFS_DINODE_FMT_EXTENTS) xchk_ino_set_corrupt(sc, ino); @@ -423,19 +426,18 @@ xchk_dinode( xchk_ino_set_corrupt(sc, ino); /* di_anextents */ - nextents = be16_to_cpu(dip->di_anextents); fork_recs = XFS_DFORK_ASIZE(dip, mp) / sizeof(struct xfs_bmbt_rec); switch (dip->di_aformat) { case XFS_DINODE_FMT_EXTENTS: - if (nextents > fork_recs) + if (naextents > fork_recs) xchk_ino_set_corrupt(sc, ino); break; case XFS_DINODE_FMT_BTREE: - if (nextents <= fork_recs) + if (naextents <= fork_recs) xchk_ino_set_corrupt(sc, ino); break; default: - if (nextents != 0) + if (naextents != 0) xchk_ino_set_corrupt(sc, ino); } @@ -513,14 +515,14 @@ xchk_inode_xref_bmap( &nextents, &count); if (!xchk_should_check_xref(sc, &error, NULL)) return; - if (nextents < be32_to_cpu(dip->di_nextents)) + if (nextents < xfs_dfork_data_extents(dip)) xchk_ino_xref_set_corrupt(sc, sc->ip->i_ino); error = xfs_bmap_count_blocks(sc->tp, sc->ip, XFS_ATTR_FORK, &nextents, &acount); if (!xchk_should_check_xref(sc, &error, NULL)) return; - if (nextents != be16_to_cpu(dip->di_anextents)) + if (nextents != xfs_dfork_attr_extents(dip)) xchk_ino_xref_set_corrupt(sc, sc->ip->i_ino); /* Check nblocks against the inode. */ From patchwork Mon Mar 21 05:17:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786800 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 02069C433EF for ; Mon, 21 Mar 2022 05:18:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344310AbiCUFUA (ORCPT ); Mon, 21 Mar 2022 01:20:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344374AbiCUFT6 (ORCPT ); Mon, 21 Mar 2022 01:19:58 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 53D0F33E3C for ; Sun, 20 Mar 2022 22:18:32 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KH3BEQ001841; Mon, 21 Mar 2022 05:18:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=c/lx11/gHIVK6FDz75L65J9fOCcnJAbqsmARSxwEjE8=; b=yDdg8qrsR8pNFkhZgoL4vGzODZ1jqlG6fNUscrktS1uEwPoV0u3S6WIAKisOSgANV0EG Q6ocLv0j9tYWAMwhNwEbzTFsUOSIYA++Tg3JtoiT/afIhWCrBfNYiwm7y9uacIlkWXpd MttfEOvO0rk1xLcu1CKJIahAlVoD1v6Yug+1uxyP8bhFeExW1O+KUrXOr385VcSbfyg7 4F5yuHGK2Z2OaZNkdik6FaFHHRCvUA4XaO5ErYCH+UR4dsCxK0VkC/1/8nPEYyXXRNsT kRSnMgp+bGEI4D0l4fxwEXIXsMAJYfPGrix5UMU0kXGaSE61KfKwcos8nANodKkZrSPp zQ== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew5s0j508-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:27 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5FwNu057894; Mon, 21 Mar 2022 05:18:26 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2042.outbound.protection.outlook.com [104.47.56.42]) by userp3020.oracle.com with ESMTP id 3exawgev17-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bU0i+YuRx3tVk/aeUbLR4bs/Xqx7vdNXJIgNPMCkaSW9p78xyplUURTEUwRjt5Tt0obfo0C5AiapeUZeIdaIhlFv7TNnQwsHotX2bOyr7semn4w1gxZun7p4JGpMHSxrPle4vvvas19uOZ72NS8190dq9RoaKQOxYa5tY2vXkCIK9vh1leBNYrsCxRfB4onKZBCyPgFGJX0qKJUlykfH48Z3DRgg0GWV5lbW47HQE8ws4jCrrDa2squpFKS9k5SeBiPU36pXN3x9j7pGRcQw2UwvH0lVTm+06MYmVkFt1jGtedAw/qqkgYC8CY4eI15RWTFmWTPKgvwvV1v0KZXwrQ== 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=c/lx11/gHIVK6FDz75L65J9fOCcnJAbqsmARSxwEjE8=; b=LMFbWAHLwVQ7QFlkwE+2JVSon2O6F9WOCKuTHruCEUk5vgNmnxS+mlayegF7BOFrkNtdg1CpA7CHbqrWJR1UGJjDI7hHqEtxDo95A+MZrtw9Ms/SrtSvvuf73MfZkn1a62QezSabosyNZYd91YdRnCQZYJA871hgT6/I4D2THJ7VLEyfYvWhG5s/1lkOwRSbnYp1M6Sl0aUaB+euKAYIv1Pox/Mm2nqpSouUkaRmEQNKEF7G2N7Rz8+Mjw4ihFaSLTqLXqSPryMXkw/UWKxStKSGsRVfYSkioWg4KrlGdS7/5jev8L/BjvrVmo/VHBj/+czrUqFbvlzOY1BYV3Cngg== 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=c/lx11/gHIVK6FDz75L65J9fOCcnJAbqsmARSxwEjE8=; b=fwQpFjIqtJLGKNnH4B3cZglHdWtOxwVsMTpL2/qH7MWQo58b5vZW9zQbgVa8V41iHB29wWlEuKklZo5+faGRyxk7TEmE4Wpuc9LdmetEtVK6+hoeq6FJWE8kiXuPZYTwD8xvfXSH4WKfV1gq0agbuDRN0Pqc+va43wSjpu0wP7c= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:24 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:24 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com, Dave Chinner Subject: [PATCH V8 06/19] xfs: Use basic types to define xfs_log_dinode's di_nextents and di_anextents Date: Mon, 21 Mar 2022 10:47:37 +0530 Message-Id: <20220321051750.400056-7-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b319201e-388c-4c25-0edf-08da0afa3901 X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: xFkjnlEitZnPbBVII+1gbrrSCpC4TL1gTPnUxqaIxtM/aiXqSzmZcuN1phrilEnXRNpM7VPQGXq6oeP6uwNLfLTQmPOKA5hkM+rMWelMA43tkMxEuJfSUCbMAWgQJ5aAAoKYWlZ/9tgAAONu3dZmaO2UOVO43BBhp3uxLlsGwhQvII+SYDG2KYTCw7DFz2NV/zB7rC7EECbAujAvdE2jKBJU+gRdNVAeOelB1BY759GxKrU7nQzKZ1JqH1t6wUO81sB4XOr4iZHxLAVCXW0NSZC+EmtFRJZMlhmqx+CIFmeN6fkCyiJCCW+4oIzf6S42cB5gn4ieF4IM15eZ0lO7MjHue0butwctwDyMgdwv3Aavf8XhawHTagnczL1M96Zt0NI33AWB8kVlIUz/2/8jf0QltIUA6fUerwoDovCsEQaMJKUBQhAWOCwPXflqlk93+/9eGUBasgvuU9W4iX2sJQfho58sDyo0rADQx6MiwXqrtWiwfrL6p9pWQXt0vg1GmpfTFLSWi0jgc7QB/Sb0OMwjGtfSXENNMf7fFLM2HHznq3sg5BacK7Z/qqUaw9OPHruIrQcCDU9Ve7F6aXAJXRvwV+cckH8yyJ3ab02gfTYdQT5bqH6eIX6BsTAMnE6tiFYe64JRYfon/ZpMFVSTiIkNXHYYNCU0tf28kOLbe4eJN/+RJgGD7B99W7vIZ+2plIHjenC13xmNslRtmmoxFw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(54906003)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 43P/M6lzr1lr6aHRJrNJcq8M+0AvWbVVQW7/fDfgxZ90J4qTvpJ2Al094GED+jJDo2uqwavFdlmaUpMnWCLNDjuTrg1jajyhF1+dolMeb8FA1tlcIBzXiDIGs3Zd85u2YQg4tS2rliJieinNlKjTgCWcsznifQVGlNJ1LdXA5KDDZNkfFF9o0oYMpVzBiUhk4zb91k1F3+cVfBffmhl2Hma/Ga7CBBDvk4SVMsvChEHkQjMOOeDROh5DLQjY3vOd+fnlzHLNYb8K3K78LE61CKQZpxvsDNO9d0iI0XGE6OmiTRCpYV6YFsTQ6ued0nccbA6QElBBxjEefEKCjKHTxxTFqp5A2RSyXczZaNlj+CjyA5SjhyIew47ubEhSxT3ZSQSE8U0AuqeyKxFr/QHXrNESXSrFxOMlUQUbSHPyymxk5+yMweeETthnq5RUNt9dSNdpFdR36BINURF6NODvysSR/ycQWSM2YIgXgX6eN0yU5NzH6eSNWsNHwebJa+E9uStMFVeDsfWyv6lVZwXae01AqGqCmWd67VQkqbdJs9l4b0uwiQQtpYYK+Ol2Bw/72ugcnVKg1to1y5ZlUwW8u6JJZ8L6MGpSjcTfvFVZuphoHhmFeygNLLL6eEpbJRrtE2IX1EuWv0odr0xKxuYylTCiHFwCnrV/yVjNXvHFpN7NV/P03Vl/0YkaGY68YNceKjV2+vJ8SFaLXLLhqB2ehGsIX899jTnW/khjo2y+o9bfa1B4ZrX60695BTxyvawUmYOLG/DRcWQaSQg4AwbMlk190tCi67rrihxC59xRdvxR9+3/O0bE2SU9xnVp0Hl9oaowLZtbn2FRwaJ7aGfMKkjiH/CDNZeahGHJn1SUJR/EIVsWNJMUMv5AkOw+hL+dPfDAEWfNAYpL5R/L9/T85C0aPFhz1GV3BUotjOHLF7Be3HjhfhF0mxA2gh9DoE1xFrpHhIZ1dBigGOBY7kUprCMVbo7Mvy0yd8INntABfBUxg2B9YX0oZ6AzEBtoKnepohVtHBRneTIKoY+rpeKJQfQ/8UAopAuT3o7Do+z5yo0VstNdHYsvpeZEOsv4xEW4ZY9KL70Z/xBKvaqwdwEBmg8YtxVV8sF65Kb0jczIRmXgG1Eqb5XURwbbLB25zMA3YNyAyqQ3MEChko3VqgE6vDoFZinJz89oNW90a3go0iUP7Bt7OkGKJQs5EFh8tPQc6/IOfLw49k8XPi8OSOc8Vib1v27YEHtDrOLuFolN0xzoTY7/7fuZhMs4il1a8IIqTuikIg/xYh5mgoTbT0JGx2Wvo56WjUP7pJOWsO0UCOd5ILIvomeGifmVPF8llfUeVNryRSP66Dat7LDr84/39eLAshwIaCdqmF44SJbDNEtf7+atl0nCBQNeldD4elMxFruBwZ822K/GbBSeitH1kPDaA6EjwOjDh8E464OSzSDMkeG3TFhjXspoiVbLwxr63Cfi9Co/iO5mMkWzjz1nPQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b319201e-388c-4c25-0edf-08da0afa3901 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:24.3162 (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: 2YZAE8eLAm+xNrUJ6qwDLVPwWRQouB6Pb0nDwQ0NIzfYGLyg/3XYki6QNC0yCkhw3A7Fc1doESZBAec8eVogQw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: MeTIIaICh_XUdFoybCMpFiT9pAnrmRWT X-Proofpoint-ORIG-GUID: MeTIIaICh_XUdFoybCMpFiT9pAnrmRWT Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org A future commit will increase the width of xfs_extnum_t in order to facilitate larger per-inode extent counters. Hence this patch now uses basic types to define xfs_log_dinode->[di_nextents|dianextents]. Reviewed-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Chandan Babu R --- fs/xfs/libxfs/xfs_log_format.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/xfs/libxfs/xfs_log_format.h b/fs/xfs/libxfs/xfs_log_format.h index b322db523d65..fd66e70248f7 100644 --- a/fs/xfs/libxfs/xfs_log_format.h +++ b/fs/xfs/libxfs/xfs_log_format.h @@ -396,8 +396,8 @@ struct xfs_log_dinode { xfs_fsize_t di_size; /* number of bytes in file */ xfs_rfsblock_t di_nblocks; /* # of direct & btree blocks used */ xfs_extlen_t di_extsize; /* basic/minimum extent size for file */ - xfs_extnum_t di_nextents; /* number of extents in data fork */ - xfs_aextnum_t di_anextents; /* number of extents in attribute fork*/ + uint32_t di_nextents; /* number of extents in data fork */ + uint16_t di_anextents; /* number of extents in attribute fork*/ uint8_t di_forkoff; /* attr fork offs, <<3 for 64b align */ int8_t di_aformat; /* format of attr fork's data */ uint32_t di_dmevmask; /* DMIG event mask */ From patchwork Mon Mar 21 05:17:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786801 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 A1FEDC433FE for ; Mon, 21 Mar 2022 05:18:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344287AbiCUFUC (ORCPT ); Mon, 21 Mar 2022 01:20:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52346 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344376AbiCUFUA (ORCPT ); Mon, 21 Mar 2022 01:20:00 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C1E97344CA for ; Sun, 20 Mar 2022 22:18:34 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KL409h012459; Mon, 21 Mar 2022 05:18:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=ZFdypuEB4RaPAAnqyb1cr2a4tcpFwv2bZU95gk0DLjY=; b=l1sidCNMLYN6ujYPq5pG1WOswp1gSqTpSQtiB1GUq05TBAiz7JMcH0Lgi3rZNcvgGhre 4yTmgfQfSzvlilBBrqIBcaXHXFZQ5mYsvfOUlpseV+M+JvYfZ0wu13TJi0SoffffS4y3 qK5oEvIj1LkBSNCp4rCe7vzM5qOH/XfnPIsqvA6lvzmYv5JVokvA3MhyfZI/H3o/L8d7 DAVYWS8FKl2TMWMTlhV7eM9FkjK1v1+elV9gv75+J6bUgk7C54WLYiqxhgvaJddS8r1o c1XBCkg9XYRGW7n67k0/ym9kfFRb3WfpItjfy56ylflsEntyympiPiPf8Rpwc/m217V3 7Q== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80] (may be forged)) by mx0b-00069f02.pphosted.com with ESMTP id 3ew6ss23gq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:29 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5IS4S092668; Mon, 21 Mar 2022 05:18:28 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2041.outbound.protection.outlook.com [104.47.56.41]) by userp3030.oracle.com with ESMTP id 3ew49r2gyu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ibB5LdNxWuUmkvI1Zrrn+jPBtc7kh3IlstW6Bzqvs454dWcjPH9wjDkKGwO1pKnXHFyPvk9KCyxu4LZJvu85b4V7GJqP6wziGAVYAN10PhLXXszo4NTpj95x4b53sjOs6rIz7tmnJOa2G5F7e50jCz9WX6LyXVu8QETrfa+uYFt6Y9/pO6xXUSrtVwUsIauq59louJLgWPxi8WB2sg1kC2+MfVXoSdB1I9nvkVf/5E24LEFA9MvIUgkmtafZyY78nTSD16WKzZsBMirVenSZmuoos0EYFLddRGChKuByIDMsDdoyz7vN8X/XNPM1iE19PXSjeAZy8vk1aeXE6x+1nQ== 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=ZFdypuEB4RaPAAnqyb1cr2a4tcpFwv2bZU95gk0DLjY=; b=Shxlpzh10ISfL3XiQJM+9i+uL6OyHy2DQorRmtVjBhOQpnPOzS9ounv4Ym/pK7zJCg00DEoTEgVhrv5uBkcCS/+CCsNrhzMBUqZyM1STGQGxUkuKqPMvJgspN7zg3Z2CKAnltNndbBjwwbAhXPkFRjL6ohOo50FQXl2zLfaULNNNaD/a6yzZitCaJJbV7DqnoQU/sAc4pa1T0x6cpYmXYEMaCBV/LRcLL9Oy18IhTJXedd5j5Rm3/Ai0+fPrskvtg90ZAlUQwc3/xTxZkA59DRCfGys3XdP0Pj2do2ET6EbWNXXOoNzZtdHGcXcr1IUEiejsjJ3mR6cpuidmpJFr9Q== 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=ZFdypuEB4RaPAAnqyb1cr2a4tcpFwv2bZU95gk0DLjY=; b=MDihO6IiyyxdWCVJdfFTsQqS/ESiRXr0rbIJZ8uU3o7xy1Kg3jDMdlfVsaWD44ImOD4KHHxVy1hGgmsjf0MJZE+yWhNbTFEOXtlooTKLJyaNdrI0NIgOFPLReo4kij5Om6DlwCG7xMI6r+YVwebLlicbgUu8rGDdoFHxMt9I3SI= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:26 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:26 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com, kernel test robot Subject: [PATCH V8 07/19] xfs: Promote xfs_extnum_t and xfs_aextnum_t to 64 and 32-bits respectively Date: Mon, 21 Mar 2022 10:47:38 +0530 Message-Id: <20220321051750.400056-8-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f9679942-5850-47ef-7d06-08da0afa3a66 X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: hnTeirEbw2bYYwahslog/8fMIHWKgBcTsb5bB5jp5A5SbEbYWZm2BteoA8Y7DgS9lOsPflLPJl5xrLhUo1SALMTnoL3oAG7sjbnYFUcbWEAFs+7bWPVr5AoljO4WuB3C79Ov+8SUQMBQtrGO5NK5vi0HTj7GD+unpMTM/GU9thu9l1ucEp+IWGeQsdht9bqUl0Y+CQEAqzNstSia4pCZqc4T0UsMEhVcJLhybTV62MKKkHHcksdeJj8oBJsdvIXAEr+utYTY6sewAve81QwcPowGrQApo/0BTLIWNLDYc81sEwlolLzfIEFFYPN08AOcooRlQq0V1RgBCpsB7BfLCA/d4CaiCODfP0jAoE5FmPyQpcijnc4EPpz7KJk3eFNSMmWvObE+IfzMEzeka0hQjkpXi6T+/DvcAIj7Mp7WohvM/CMk8CsA8HqDTdEDuDgCjNItyTCxpAamSmFPwtjCE8Uu8rkyGoBopblHExi8lTAfC6fq2tuKc2QIR2HwftOstgDs6yJ5xICOn41LTfr7dlSNI3ydr6UiLkryEWXJkmtEbc4J1KTfJJse95Q2z3xGVrOK+tGsdHC8DiACTcCttZchxaE40aWuW4uXotDRCgYEm/dhoOqzmOlMuOJ23g6CWspeFjbZj/C24WZfmUSWENL354hTwHEfnQr7gzpzS0x1MAiTXZABuPH46Waj7p8RKessvj8vSa14Qw0riJdEZw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(54906003)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2um0cv8oJpUD4P30PfQO46wBCb2mjVOzDlo1hoW3g5XPzQuxpLx9ILj78+xRpVKtMghkrI8dlyZplWPe2ubjLGe3xmBxL587YZwUmNj6ykJmDJXBmlVsWIUfuykNrzFR40jXgDAHuNiInzyQGWI8Bm5Ye42JTPCFw8kZ5b23205yPRdz0GS13YPULAnCJmVcB/RfCp5X6DriWouD2i3laYH+cb1qp3b5mKvyixtWV2/tNW9u5FIIXH/Oged4RBr7/JaxahtZocZmJTWcVvBBx7tT28Rd9WB4BOmhlEs3zky4JhB0u1GeFU0sQ5mixsvytvjAuK0scQDJLa99B7/Afg88gF4g/DBgwuV5cRSyYAwzyH29/dJTVdRYUSow0EzgNCjqvj3Nc6sgPJHdOFoGTsLy/ZZSDfpO4JNan/zMVj5HgnMvPYgRG+LejI4DgEQHvBT/S1gAJ0Qn0gG0WvxNpuSvwRvIKUNHWw6oews72dJ7mS3R6YJB9nbMprgJq0MFqcScHQOU6DEr9pcolkMZucuymQEo+/VmeINJ2o7OxvYsw+6rECwHTAIlY7/OseyqexhoI0GIsWhJ4q7v/NoqZxI5p0aQEd8P9i9cEdHIq7ZMJ8NuTHCgG1rcPELOQZ3pAImSPzgGjO64LHdVHXgpZX18IF7op5Ej4uKhoJwW3CCBMtxmaesfXHmu6LsaiU3TvnzFNo5Caiiz/UZMBe+o7xz0Xaf5TI/str2vCpMu0Xb5AOFfFq0tqGFByxfY0qsuX85wtrd0iDZqSbrQFy6qKD02WIN7EaB+SVClTWKMS9Tc4YZJfu6GnRkUZoQ7gRTQjpFwwpthRJFm2PlUb7BdT4K46an0KPGA2HGlGQN6D1WfRAajicvaJVjcTe4jyzHJfSZt46ZKwl3/UuQybWum93+fK7hOpYlVRawoyn7KAUGr6GAVJIVc0Q8NNz181zkKajhZ4hcvlCi8rxpUkVdfCbBkLXScC3NZ2Qm5+14jCT81D80A24umA09JUEScML0IItF4ztkUs7N2RCnGKTzT9Qbs0oF2uz70W6lZk8nF4hD5gwggMDArEQkhndA1HZHqPH2IEKXh8UxPJhYbboVsbEnkbuSpZubnKo+rrJ4ZETJLFu9oYkBesqlK6G15vt4m3/JmrLCtIuSBrzRQO/33fcUCFVYrJz+JmtV0Fk7t2U0/rlYG3N4hdIwwkXIhF0JMgAEDaGjMo+Jxr4OBWd7lgQT1V7G9PNrT3pHZj4iAIkujOSueQbvIiRt1lRLxkrMRek2wP4bcC5VdrlBBXa3b+caIL1aLj4epNIfxDO+iNM83+7g6OZq8Cjouu0y1HAMHfn2Sgz/Iogih7Y1Rxf82qQJw0EH8H7JgAKTJPMWL+3z4fh0XGcs1TwRaRbofPjjdeXRhP0svZcCy3PwTYj4AfCui8vOgfio2nNxpA0po6gmif4KKEsEh/8sGe0+VVuK5l8yyQ4C13I3LHvnO3+chlw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f9679942-5850-47ef-7d06-08da0afa3a66 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:26.6118 (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: sfgZ3xP3XeZ7KuZ9naPFvLbb9Peb76r65g04nhGf1l8Y37ijONPynzLRfYdrE6JgKHSu26QFRSj9eQu9bYtSAQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 bulkscore=0 phishscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-ORIG-GUID: cezMDl9bguQKwahvU5i75TKEeOFUHqwQ X-Proofpoint-GUID: cezMDl9bguQKwahvU5i75TKEeOFUHqwQ Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org A future commit will introduce a 64-bit on-disk data extent counter and a 32-bit on-disk attr extent counter. This commit promotes xfs_extnum_t and xfs_aextnum_t to 64 and 32-bits in order to correctly handle in-core versions of these quantities. Reported-by: kernel test robot Reviewed-by: Darrick J. Wong Signed-off-by: Chandan Babu R Reviewed-by: Dave Chinner --- fs/xfs/libxfs/xfs_bmap.c | 4 ++-- fs/xfs/libxfs/xfs_inode_fork.c | 4 ++-- fs/xfs/libxfs/xfs_inode_fork.h | 2 +- fs/xfs/libxfs/xfs_types.h | 4 ++-- fs/xfs/xfs_inode.c | 4 ++-- fs/xfs/xfs_trace.h | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index cc15981b1793..9f38e33d6ce2 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -83,7 +83,7 @@ xfs_bmap_compute_maxlevels( maxrootrecs = xfs_bmdr_maxrecs(sz, 0); minleafrecs = mp->m_bmap_dmnr[0]; minnoderecs = mp->m_bmap_dmnr[1]; - maxblocks = (maxleafents + minleafrecs - 1) / minleafrecs; + maxblocks = howmany_64(maxleafents, minleafrecs); for (level = 1; maxblocks > 1; level++) { if (maxblocks <= maxrootrecs) maxblocks = 1; @@ -467,7 +467,7 @@ xfs_bmap_check_leaf_extents( if (bp_release) xfs_trans_brelse(NULL, bp); error_norelse: - xfs_warn(mp, "%s: BAD after btree leaves for %d extents", + xfs_warn(mp, "%s: BAD after btree leaves for %llu extents", __func__, i); xfs_err(mp, "%s: CORRUPTED BTREE OR SOMETHING", __func__); xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE); diff --git a/fs/xfs/libxfs/xfs_inode_fork.c b/fs/xfs/libxfs/xfs_inode_fork.c index 1cf48cee45e3..004b205d87b8 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.c +++ b/fs/xfs/libxfs/xfs_inode_fork.c @@ -117,8 +117,8 @@ xfs_iformat_extents( * we just bail out rather than crash in kmem_alloc() or memcpy() below. */ if (unlikely(size < 0 || size > XFS_DFORK_SIZE(dip, mp, whichfork))) { - xfs_warn(ip->i_mount, "corrupt inode %Lu ((a)extents = %d).", - (unsigned long long) ip->i_ino, nex); + xfs_warn(ip->i_mount, "corrupt inode %llu ((a)extents = %llu).", + ip->i_ino, nex); xfs_inode_verifier_error(ip, -EFSCORRUPTED, "xfs_iformat_extents(1)", dip, sizeof(*dip), __this_address); diff --git a/fs/xfs/libxfs/xfs_inode_fork.h b/fs/xfs/libxfs/xfs_inode_fork.h index 7ed2ecb51bca..4a8b77d425df 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.h +++ b/fs/xfs/libxfs/xfs_inode_fork.h @@ -21,9 +21,9 @@ struct xfs_ifork { void *if_root; /* extent tree root */ char *if_data; /* inline file data */ } if_u1; + xfs_extnum_t if_nextents; /* # of extents in this fork */ short if_broot_bytes; /* bytes allocated for root */ int8_t if_format; /* format of this fork */ - xfs_extnum_t if_nextents; /* # of extents in this fork */ }; /* diff --git a/fs/xfs/libxfs/xfs_types.h b/fs/xfs/libxfs/xfs_types.h index 794a54cbd0de..373f64a492a4 100644 --- a/fs/xfs/libxfs/xfs_types.h +++ b/fs/xfs/libxfs/xfs_types.h @@ -12,8 +12,8 @@ typedef uint32_t xfs_agblock_t; /* blockno in alloc. group */ typedef uint32_t xfs_agino_t; /* inode # within allocation grp */ typedef uint32_t xfs_extlen_t; /* extent length in blocks */ typedef uint32_t xfs_agnumber_t; /* allocation group number */ -typedef int32_t xfs_extnum_t; /* # of extents in a file */ -typedef int16_t xfs_aextnum_t; /* # extents in an attribute fork */ +typedef uint64_t xfs_extnum_t; /* # of extents in a file */ +typedef uint32_t xfs_aextnum_t; /* # extents in an attribute fork */ typedef int64_t xfs_fsize_t; /* bytes in a file */ typedef uint64_t xfs_ufsize_t; /* unsigned bytes in a file */ diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 04bf467b1090..6810c4feaa45 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -3495,8 +3495,8 @@ xfs_iflush( if (XFS_TEST_ERROR(ip->i_df.if_nextents + xfs_ifork_nextents(ip->i_afp) > ip->i_nblocks, mp, XFS_ERRTAG_IFLUSH_5)) { xfs_alert_tag(mp, XFS_PTAG_IFLUSH, - "%s: detected corrupt incore inode %Lu, " - "total extents = %d, nblocks = %Ld, ptr "PTR_FMT, + "%s: detected corrupt incore inode %llu, " + "total extents = %llu nblocks = %lld, ptr "PTR_FMT, __func__, ip->i_ino, ip->i_df.if_nextents + xfs_ifork_nextents(ip->i_afp), ip->i_nblocks, ip); diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h index 3153db29de40..6b4a7f197308 100644 --- a/fs/xfs/xfs_trace.h +++ b/fs/xfs/xfs_trace.h @@ -2182,7 +2182,7 @@ DECLARE_EVENT_CLASS(xfs_swap_extent_class, __entry->broot_size = ip->i_df.if_broot_bytes; __entry->fork_off = XFS_IFORK_BOFF(ip); ), - TP_printk("dev %d:%d ino 0x%llx (%s), %s format, num_extents %d, " + TP_printk("dev %d:%d ino 0x%llx (%s), %s format, num_extents %llu, " "broot size %d, forkoff 0x%x", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, From patchwork Mon Mar 21 05:17:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786802 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 2FD97C433EF for ; Mon, 21 Mar 2022 05:18:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232851AbiCUFUD (ORCPT ); Mon, 21 Mar 2022 01:20:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52344 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344380AbiCUFUA (ORCPT ); Mon, 21 Mar 2022 01:20:00 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5321A344C9 for ; Sun, 20 Mar 2022 22:18:34 -0700 (PDT) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KKn1SM008844; Mon, 21 Mar 2022 05:18:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=O5UuIdNLay71rXjjG3acKgzgS7KnpvIaVigQl/yuA74=; b=LL5ULXSt2BUSL3tJRZuSJ7lwKnVn2GXYYdteEqfmmlF5af/oDTHvchpMby3kuT3gYu/S YaFE4al61k1498+qJrOuWJaU5/4s3hUIybWV4FAxUs+z00rYqd6wVbSbyYik0lkcaTkH f4yqrVr3MGf+sXL3BdXDCTyfkdv1yUM4pGIcr9B2pEIN2Q9m2X3lAUHy9oRCeUmsWdU8 xj6SKsB/ctYV8jmpKfbX5cnO68VZEp7JfPIfupEh8VpFOYMD4D9uQDs4EK/q5J9wnogx Ia4MQFG/ZF4h+SqTycy8IK0gac8Xi/9kvrwRB5XMothcri8tbQjvLjBoVPhitiyx4Bqb pw== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew7qt22v6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:31 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5GSxg155914; Mon, 21 Mar 2022 05:18:30 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2043.outbound.protection.outlook.com [104.47.56.43]) by aserp3020.oracle.com with ESMTP id 3ew70096ka-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T8tc53X1Q6dheN+nQIE4wvJvMjuJF7dNajlPz5Auep/M6Wl1EUIaJnbXqpO5G9BmgcIuUhRf6rTkS3YDDQg991F7ufJUqF+P5qyCSegIEJKDxFiQ6NCLEqn/SgrcprYoIdLC00EbpjnumoOZ5mU+kQ/KIwWLBnIZw/t69REGAJ+cs29xWkzaW8iGchqDWHHP7O+64tsUT4oj3algYCUrVwUEj6lDBBr0OPGRkIAisd3iSbsML7eWdATCLlgvmrojoer/wYIOZqwGBCjkOv8wQ2ORJQ/DkfVGkj+qP+NBrEdbTtSVpECyJ8X4Ec5Ka1oADLk+jbOTq5pdPPhQyPz22g== 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=O5UuIdNLay71rXjjG3acKgzgS7KnpvIaVigQl/yuA74=; b=XT9f19n3aGybAwuR8wOV/3bk3Lpq619iqSZXr3zDTTtpEcloaNpK0N7WU58YpL02l6scdO9oH/0D7Hb1Lieli4jOvfL0t6VntPAIyuauwdahFYT3AZx6bcSYn1KSn6oUETjpjnHgwCRlm8IiN5ieqZTs54Ah6xXxAAF9R0r5catpOuIMpjiWp4D0pAGqvbtjgIOaSytnbtHm2KWQBl8pV6XF/hYBS/t802KTrAEbF12OaASxRtgtcExOskGTYzg0P7Z31oYlRcXYgbSVmBYwUSE2luYTG4POM2osJ9A7pV6wb6VmtESgrZVSH+dvZn4320C8AdSblpeXJSE8PhshJA== 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=O5UuIdNLay71rXjjG3acKgzgS7KnpvIaVigQl/yuA74=; b=RAGLQAyxDetF2T8u8OoM+ZIceOKFFllhZoTZ/B5LaafH7zLMzfgVax2ITBigL2GmDNBKfHQarD5rj2Sh2dtaCRxqiMbdE8wN1FT9P5Z4GT6tm1q+xwAeGMhkbIcS5kytR1waykCX0n5LaazdQpASZjSXSOinm9LtLoZB02Rfzn8= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:28 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:28 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V8 08/19] xfs: Introduce XFS_SB_FEAT_INCOMPAT_NREXT64 and associated per-fs feature bit Date: Mon, 21 Mar 2022 10:47:39 +0530 Message-Id: <20220321051750.400056-9-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a8957fbc-c692-499f-7a3d-08da0afa3ba8 X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: 9fKxmf+gQLJOQ3YM3MX8Qn6oNyYv9ul6iuZumLopVr7Q9HPgzDe7BPK6nJwvC7oxaXEVQjGUOfAaZ/E91RqAk6ENrpw52LFPUO8fvy542LQ7c0BnU5UCbUWsl3LggrR85vc4K1Wcb5b3/gzL6WT1ST4D2rk2GSrOdumEetrytXbCUiKkIxtLA5mjWMqpxwwhiOHvXyWaxl4JpO4WXRRZ25uorx9PWN+bVGNwgMIiDeUVJLrnu9WdnL7215+uqajR6EVAruzL+XTkQe1Q+Q0M+yvVowWddPjHRkVSFx3nxjSwiYlx1iKXdSrDXrIdzkT0ZVoZZntXp5zn1SlLkye7QMM/FCrZ3vkQfm3p200TLtfSa3SabSXEFIpqAtlE8Lzy8QtNUgl1W9rRIsz4z64uqFYo/+NMcS8tVuuzsTUjE2vBFxrECulpcXvMIvtFDeXCkmHSiphw0hBJpkr0UX5XG17oetPiG6NTjC8VmVgxD1mxaDmwmQ6uyPFj1vEZ6FG+R3H5PdvB/E+CSCeteqvucMetAIWOsDk0QthD/Yk1mI3KykKKV22kPKLR7Wrgi6LRmQ5sVnTRBM6r3IHoL5646uvsMVuEGEt0sea5rryuxbq1iAc6/UDEkuiDKNbD/10RpjCZGi1sleD1h8G2kXr4zVQM7hcgVJOI9gr21UMbXZPmJA0uuDbPsNAkkJhZSuFCEhaISisLAp1rnv07zKdmfg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /xRauiJ/p8OwM8ETgUGdORqhG1RLRDEKhlSwD24B7T753KeMIjcr+tY8I98KNW/ryK7ZchYcuDbVc0rmHchOvIPC1ZvZuc+R49UoRo+ydQNB2g0q4C6H253c8rYH41s4KB2CK57sYL38KoAcjtXofQFS3nNzkD1ieI5kx1bbHlCUPau4+8tiuKaozx+K/ZqvzA9wvl+o79yThdkjM4RIGn8hWvu4KoJeW3u6v3WieyELrfPPw9aFnbJwkjumjV4zjTkrgKs3mFepX0e5zm634n74in4EJXTJYt6y3mePCLPpF/QMWxTonbonCt94p3hxTN/mM1AUGY0Xj/u5M4HbJrnvcKV7oaAvblSNA2+2WZSnaueMeZhBWi6p4Cgf6mwQV+HwgtQlrXzg8oJnbJ53zPqEXh5t3uWw15TDRe2WHv9KIaMP66lSZHPMxxiylY9OjgRwnxPm9Frkzyj9lo5sr9XDb56MzTjUCToLZiLYUArSkt2kPpJlGeLpjfm6gpqSuw40ofelhPAdTPnqM28KL3itVJJOshcyo2kipNocPUBGcO5FsX+rqO2re8egiiKhxez0yDisu5cqh5t6ArZw/I+AwjtGsoWOD+gDlzDXYxEeWGuzODtXycSDprdVTOeMzQtcW+WjpgRvffaA5BjP0S+hBZ81bMNqEkvLCxN9jFNS/g6Sjv8DpDSV6XOdMbp0tbFzybWhXiGni09PDT89EDo84WyrY5TiMGJmNorR0s4ZM1/XYBJNolotFRAC4nNOM6Q/bKEwEnu2X3VpJ1X1+yoFfrKgiTXCbBM/VeeZfIHioedb5GM2tQBjifDO+ZeZfsYusCZl8f/SttHsiNfByhyIpCXEnPLnL44aZ4VMvn/SlUv2tyFEa4IJ8KABSvrMmh8FNP6XEQNn93l7/JXd6YBpBa9LqjN6Nf8e5jl+roGcHlDHQOZvLapRDwe0GQzrl/DrpQxanwlATyiNBE++PvFGrLa/luNGzSTVkuVhPpr3O+LQivUxdDhGc1Ca/vEwbfshIs1kvgpmAGncSGQtsz3SF5zDjOalMLUVT0XxQMnGRv28gwNLamnLPTBGia6zbwVq4lnhBhiB0FyjBRFesZkdAeNFe9z4fNwZjI5mSVkn4ttPV4ysLcl+i2JmnzK7yu7Z7JKtBrcxgBdF/lIZlp1Tt063adu+6zO6HSyUPihWQtNyIF0zsqfEoPRWWKI8NaGKpBtv4nDFt6knVHXsDhQmkrl70JJS8vzFx9Km/kYdetCF2WfQ+AYqvXnNGof9r5bvD0h4+ryl9yczMX9+IYWpWx0amJnMhP2gQmEI7w2tQy+yRQl6pvW0/ryFbQtqTYbuXbTzw0Rs6B5eSUf+tdESmxmu+WGlP99bnKV6CqJCfNrk43Exl9480v5rNk0E0EyPn4gJWlyAwumgnBo6onKA1l82lyCBxYCkjEu7nH6ZHASvzHR2Mmo3gwypgP4c/RDWm0w4+zIwu8tkbvg53A== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a8957fbc-c692-499f-7a3d-08da0afa3ba8 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:28.7376 (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: 7u6YRpkyhKyhQtkxAsKeL7XerHM9T0d13uQk0m1NNEKF9C3aFn5NqSiQbt9qhoIq/w3k+7aIebnArNFpwpEmnQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: xze09vKpku7tUlS1D36kfCs1BSl5uV3e X-Proofpoint-ORIG-GUID: xze09vKpku7tUlS1D36kfCs1BSl5uV3e Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org XFS_SB_FEAT_INCOMPAT_NREXT64 incompat feature bit will be set on filesystems which support large per-inode extent counters. This commit defines the new incompat feature bit and the corresponding per-fs feature bit (along with inline functions to work on it). Reviewed-by: Darrick J. Wong Signed-off-by: Chandan Babu R --- fs/xfs/libxfs/xfs_format.h | 1 + fs/xfs/libxfs/xfs_sb.c | 3 +++ fs/xfs/xfs_mount.h | 2 ++ 3 files changed, 6 insertions(+) diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index b5e9256d6d32..64ff0c310696 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -372,6 +372,7 @@ xfs_sb_has_ro_compat_feature( #define XFS_SB_FEAT_INCOMPAT_META_UUID (1 << 2) /* metadata UUID */ #define XFS_SB_FEAT_INCOMPAT_BIGTIME (1 << 3) /* large timestamps */ #define XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR (1 << 4) /* needs xfs_repair */ +#define XFS_SB_FEAT_INCOMPAT_NREXT64 (1 << 5) /* large extent counters */ #define XFS_SB_FEAT_INCOMPAT_ALL \ (XFS_SB_FEAT_INCOMPAT_FTYPE| \ XFS_SB_FEAT_INCOMPAT_SPINODES| \ diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c index f4e84aa1d50a..bd632389ae92 100644 --- a/fs/xfs/libxfs/xfs_sb.c +++ b/fs/xfs/libxfs/xfs_sb.c @@ -124,6 +124,9 @@ xfs_sb_version_to_features( features |= XFS_FEAT_BIGTIME; if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR) features |= XFS_FEAT_NEEDSREPAIR; + if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_NREXT64) + features |= XFS_FEAT_NREXT64; + return features; } diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index 00720a02e761..a008e8f983d8 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -276,6 +276,7 @@ typedef struct xfs_mount { #define XFS_FEAT_INOBTCNT (1ULL << 23) /* inobt block counts */ #define XFS_FEAT_BIGTIME (1ULL << 24) /* large timestamps */ #define XFS_FEAT_NEEDSREPAIR (1ULL << 25) /* needs xfs_repair */ +#define XFS_FEAT_NREXT64 (1ULL << 26) /* large extent counters */ /* Mount features */ #define XFS_FEAT_NOATTR2 (1ULL << 48) /* disable attr2 creation */ @@ -338,6 +339,7 @@ __XFS_HAS_FEAT(realtime, REALTIME) __XFS_HAS_FEAT(inobtcounts, INOBTCNT) __XFS_HAS_FEAT(bigtime, BIGTIME) __XFS_HAS_FEAT(needsrepair, NEEDSREPAIR) +__XFS_HAS_FEAT(large_extent_counts, NREXT64) /* * Mount features From patchwork Mon Mar 21 05:17:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786804 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 83F8FC433F5 for ; Mon, 21 Mar 2022 05:18:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344380AbiCUFUG (ORCPT ); Mon, 21 Mar 2022 01:20:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344376AbiCUFUE (ORCPT ); Mon, 21 Mar 2022 01:20:04 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98ACA33E3C for ; Sun, 20 Mar 2022 22:18:38 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KHh0MT000630; Mon, 21 Mar 2022 05:18:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=NEgwpDbYHwP042muSjauZUSY48vWBtV4slfQ2mBNbjg=; b=TKJSljTM6V2aHP42/CuSxDcRT5alu9a+rIn3S4mcM2JKZkVhb0vbLm8q9oqg/1E3wLD6 UvTx+6+W34dfSxzOO6qhizWQoxZS5WL+qJf+NeoZtHthrcdNiYIkrzWp8JvFDkx4vjAb vdZht2S76eC4Gal31BLr66rA53UFpSBesnQbRcU0eAc7qR0Ox9Lo1d1IJgInZP29u2XS +jnBs3oI2pyC5uZls8NeO5XU+7paDv4VCMX8aFCso/9Nrm1UO81Wu6Tj0F+x8sjzX2xk CnsKv5A8SWPQ+Qp3pZtLPMb5ICUr1Ck4Slp9S+XghYchCF+tg+9VUmRY5WSjQx9+MPPP bQ== Received: from aserp3030.oracle.com ([141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew72aa3j5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:33 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5IWUv121665; Mon, 21 Mar 2022 05:18:32 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2048.outbound.protection.outlook.com [104.47.56.48]) by aserp3030.oracle.com with ESMTP id 3ew578rnt1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IUxUxTPgPaKipPIGnbxHXDCQ5elDZQv+W3NUQmH2nfann1BDJuCgZzFY6yMpxmzBIb3NQ32Xz2wXROP3EUBjncHOMAKavn3gwa0WxzV3GdUmSRDy2h/CdxYOmkbjnvdYEmg/pvj4vktrp3Nfv4aGBKPkd949P1TbSdyMRIOg11BeJIC+OCjPbTXOR8Ewx87AxEu4IrPhsdYj74p3PNDBxT1m3EY3Ow5lfS4DZantkqGH7yZEcITH1U50p9xkxPD6g+9kVw2tAyBs5WTNWaRXMBjXTPa0DfU0ZTCo2QxnsFZgFMPTLhR1sOvxelU8avf+r1V0CmNoSXXlc6Cjg/hEZA== 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=NEgwpDbYHwP042muSjauZUSY48vWBtV4slfQ2mBNbjg=; b=nijqRKPnflv6Bt2l+FwF/i6pZpauxbW9UMXJzi91U0ZqLTsdAZNkBLlN7C/jW3YK1xCdFZqeHIuRfaZmza3LziTPYl2F9H9sPLzfSTqL7Hvo1IcqEE+VRRdzX2rWp/XbI9y4fXjYeD3do5lKMn1abv0miXJa5qvRzqKm324NHp7B/cKYukugy+m0rMN2hwBTzRxmze9g51OhApty+s2VVdaA8jfDzWP+02P3bXThWkXq5oAjcJ9MSamXtx62vn5swtRv1eHILBuL1qi1yeCD/opAd6RKfphBCdUq6vqScqXwCBDgD/drdCId1+LlXdCzOWpOMyHnPpzXT/qNCyCtMQ== 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=NEgwpDbYHwP042muSjauZUSY48vWBtV4slfQ2mBNbjg=; b=iAPNWVSLoo/zSiCheX8HTibSOCEUa2SosdczJvVVO8lj1+xHSNXA3jj1w383piLDASx8cl8N55HslSPalUbWvJrG/kbPjnLb8dBRs2J18WZgTSyG+2A1Egiblv4MioLMDYLPTsrBuuKP+KfV3FBh5IkqH55JWFhbPISk4oWNyMs= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:31 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:31 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com, Dave Chinner Subject: [PATCH V8 09/19] xfs: Introduce XFS_FSOP_GEOM_FLAGS_NREXT64 Date: Mon, 21 Mar 2022 10:47:40 +0530 Message-Id: <20220321051750.400056-10-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bb6bbb4e-c4d1-4a01-c776-08da0afa3d1e X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: 1dVDrLVc+B05Js7dy4pnysmi9uftAngLio/aPcLfHHkZy2RhlWqsLXo7aY9D0XG0PrPQxuEdbf4LgczQTPZHlkA+F3x4i2tkJnDJgCnwtf2e5IvAwEAVdKc42Zn8RcBgEMUOzsYKd7XqKNtK0RcNkgjjMI8GLI3GgYhVj3XjiG/ti5+9GkYaXvv+32Y5c1XI5ohshceasmxUtTZJ/R6JNTd6t+Dh/BKN1oTr5IFTyo/BviSvuFSr2iIA4Ty+2C5nDoyl6JB1ddNp+XZHHobiZbVlG9mbAhbBmxzty/aEhxXPEaAHA8URcPcye1frx5V4UJQ6biilTXYHcoRNIdqEbRgZ1liXUkhxT+XsT21G3jYUa1GMpmj9GAc4WA5eVm8p/4BHIEc3mlbNxnVrzIViVmP+MWI4HnUAyl9kscgXCi1tE7t6PrSFlw76YQW5eZ1gOls2U8ExMlPe4W5bgHSldKdU1cFUpz14WxK1mu8T5fPiStAdVpviQaSPG1blvntnE3ptLCVv8k6FGK2JXjmncEkpRFV8R7O4ESvVo2NIhz+RqBHzQ7sjHAXpeWmq7HdHxS7jWl5M4/3gjasOqHXGwfIlgathxEPcQUjjHmacPVl+Q/2HUcOC9EHb5Acoz7kCYhYYmgVJuTNTa/IWO1gD2PMlmjWe++0xGnT6eMvJR7POYGD4qhtY+az1i/ywqXuN7kDlIsR7Qb71fN//CQ8z2A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(54906003)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9lDsS2ZS3MKXFIdsUjA+gpXqkAIlOGTfq3A+Fiaf2Wz5rSe3AXXo3tp+7UTEI5B71UccplK8D8AyB0f7k3aC/pe0QWDtvI7xAk+JcfdIDRhsTLr5BUmlOkPMi58Na3YqZ19xd4ugKWN0bT+8m1qRt7Ekj5/ctFyrZ24SDjX7WStPzPOCNLc+aZQxkjGDz+JwJUQpbBbcxOe/gpMHc8jScAepDBSlbI0n9pBTYgfXt6f/eV9Y85Elva4g8ttktKv5oKWN3z/zBT4hqIADoaK6CFBSnNrhPT11spv8jfpmtfxxnI0kTxx2bfxNyt8aP2avdG/Nbb7nt7OejfYDILG1ru6PvyUfmmTWxbpqEHEGycw3q/qKr7u6pRuli3zSjLP660eaTgFzBliTxXRreVsxmgeiHPmmBDca1bertLICsD7wxn0sAuVK1w3JMijD3lae1rR4+ulcxyaSo1Fd/lTzgzEq7EjdEIaOaPIJ9VSlp026w7CPfv2RShZwjV4rPp1bfq4e1RoCXkEnMKUFUHXCynWM0VlrN+4AS2RRTWNVJGk0eTuZUx+HB7I+y8ngGtx7VSdhlF0x3t9hGIfze6zDNmOetnpmg592bbYdVsYAUWxDHppopu9FbsMZBYoAeIICIk9j3tgFsYwyQC326OINOmETAAaqQyz1WRXlJJZcrEGB/s4XBCs9EmY4fKRUqqzRyKj3YzqqfeJGdl1HHRhUh1XHTdYmmUA9gMshPJzdUS7P6gwFkOJAEE3MmtSJ4AjvU/Eabq5IrJzlp9QXkuqFQnIc6H2uIigyJ81zRhbHWuyCD44Qtx2gmz4lNonZm9jg8SIDm3uVt8tKYZ7VEDNmHoSaJ8Jgp81LoBGKouRyqMFekP7Z/FLtzeaVtHGpQ01RCwuFi7iYDO5ximO1koBZ0val/zDfWd9XePe/hGlV+Pbd+eg6vOeKO8VPt77Il0PFARrDjOByaIIEyxf/yeMPFqTlYPERPKtNRk+0namjbtOzCROrZRRE01U4kNe4afVxLvP55cr2kYKwqIGd0MB8/rxNSY+3KUMmOXpJXG1LbwOH3PlplQsF8Gri7nSsBjFRLIAEVHZTjIYO3ISFj4ob1GteMfKrMUfie6R1qi1fsh2UKzDSMxwHHFMDfq9I42KONxUYKmZ/+UjgIvnMCBO1UdHIyb3+CxpOfNddhintxRDIYeORBh8Z/jwHbsTBTbTdJ9J5gElpS2ZpJ+VLLg83L75rpfGJ0y7ycrXpxi5za+UHdOwAsmaaVkgomO3KYzGrNX768apDfvMpDsBlbV8NlbqVZVoXXjrWJYGuP1d+MbpWDfIXaBFkeHtdwmHvE5+mI16L7L8+3JMP12RXA2chT0EKNZ2Dj0JqTJOTCHV6Ypa3dNFilZIv8iTnzEJbVJnorxp5aDo44OlDhew+i2H96kSa5uB/RSmZXlh5YdXKxpJyRSCI/LA2NntTXBkuOwO8WT1FWe3G/i8cs3Bzz/RD6g== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb6bbb4e-c4d1-4a01-c776-08da0afa3d1e X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:31.1750 (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: NrNYuPolePfWC5Dhf3yySvvekn78pFmBJMd05t7mR2QnValab2wx8NpSN27w1npTl7r75GhiouQyHgvvU9WmEg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: r7wgo50V0WDw3b48eHJ_2eT3vqP51K4h X-Proofpoint-ORIG-GUID: r7wgo50V0WDw3b48eHJ_2eT3vqP51K4h Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org XFS_FSOP_GEOM_FLAGS_NREXT64 indicates that the current filesystem instance supports 64-bit per-inode extent counters. Reviewed-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Chandan Babu R --- fs/xfs/libxfs/xfs_fs.h | 1 + fs/xfs/libxfs/xfs_sb.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/fs/xfs/libxfs/xfs_fs.h b/fs/xfs/libxfs/xfs_fs.h index 505533c43a92..1f7238db35cc 100644 --- a/fs/xfs/libxfs/xfs_fs.h +++ b/fs/xfs/libxfs/xfs_fs.h @@ -236,6 +236,7 @@ typedef struct xfs_fsop_resblks { #define XFS_FSOP_GEOM_FLAGS_REFLINK (1 << 20) /* files can share blocks */ #define XFS_FSOP_GEOM_FLAGS_BIGTIME (1 << 21) /* 64-bit nsec timestamps */ #define XFS_FSOP_GEOM_FLAGS_INOBTCNT (1 << 22) /* inobt btree counter */ +#define XFS_FSOP_GEOM_FLAGS_NREXT64 (1 << 23) /* large extent counters */ /* * Minimum and maximum sizes need for growth checks. diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c index bd632389ae92..e292a1914a5b 100644 --- a/fs/xfs/libxfs/xfs_sb.c +++ b/fs/xfs/libxfs/xfs_sb.c @@ -1138,6 +1138,8 @@ xfs_fs_geometry( } else { geo->logsectsize = BBSIZE; } + if (xfs_has_large_extent_counts(mp)) + geo->flags |= XFS_FSOP_GEOM_FLAGS_NREXT64; geo->rtsectsize = sbp->sb_blocksize; geo->dirblocksize = xfs_dir2_dirblock_bytes(sbp); From patchwork Mon Mar 21 05:17:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786803 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 7FCF5C433FE for ; Mon, 21 Mar 2022 05:18:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344374AbiCUFUF (ORCPT ); Mon, 21 Mar 2022 01:20:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52494 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344381AbiCUFUE (ORCPT ); Mon, 21 Mar 2022 01:20:04 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E977344C4 for ; Sun, 20 Mar 2022 22:18:39 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KJYA12000642; Mon, 21 Mar 2022 05:18:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=FpIXWJJaj4jM5kdDoakQknAlYcf1/gZw2eTO/ARe4Qc=; b=hTGC998ohR8tSdtfGDNU0MCO/fo2Qx8xjotKv5+0YYry7zZ+U8PyBzDfH6EqcZTIkKfC c6sLDMcz9Ykecec36A/q0CNTWIht/JPVbJCOpi5ZKupDxcGSRd7uIqzRzqx2yfileu6t WrqGVbead3GnlilypqHfZZfpN7k1sVTIRPYw2KI3GuwG+q8ZnR3pMgrsjtDdIrOVbXBV 1srATg93/79ASHs/NKepxe3K5b1Y2YYwlcs9NiD8u3kkEzOyJqKMYQU23yWEycYwkbXj Um+PQX+4MFpEPzQuqN7y+1YgUtIIbwxrVT+uTLNt0MEwD1BW9rWrMR6c5oiCkGdEW8qR 9Q== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew72aa3j7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:35 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5GdOo155969; Mon, 21 Mar 2022 05:18:34 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2042.outbound.protection.outlook.com [104.47.56.42]) by aserp3020.oracle.com with ESMTP id 3ew70096kw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OtEYLTSkW0eVuNPvbsGmHyTMbYfK2DjIdXKzLK5KxAXoEYCiMgOphDhLpOjGP0aeKfAOTt3sTv1ARD89z49OvtxhTdbD/WfdtY/ZVZ5OLEu9TWV6fsEF2vQnaR8bFKDPXWCzWCLpzl8cfbivjVtbnFfN90Ruc6PbFD7pGzyOeIeyzLEAfOazEwR5j8oMxGIJ0y5+CV1SBQjozKSf+6RVNNQ+L6nrgb+31byPerG0uRmYaArev2FceqemDCsqMiDqe09sDxWcCY2an2ItuE9vhQ75DOS5qJF01Cj3qMSvc2XKFvspmmuJAdpVcehCbJ3dmQHDjc9xta6qobHqQWxEqA== 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=FpIXWJJaj4jM5kdDoakQknAlYcf1/gZw2eTO/ARe4Qc=; b=PcJrFAJhGS0j77aMzKWnNTRRiTTLUiN2beC6fW5Dev1XkN9A8+8iUbAvNM8EDXdAfpI0Jz7FaNdJhr4gFGc3+U4aQ7L0g+zuf9LXgWU/xmu0rOC5wFzlGp7g//9sOMgyGKKunoA/ji5awZexKYuyiWUDSU2Q/apO6aMrGU2PLvKC0BeSt5QgLNcM/xaxhaubHfYLj7sBX57yRvIQrpeFNPpP7IrZcqsODJ9N2RTr70yjRLPyF8Smol6SdP5q5XjRTGDa5CQapkE/0evvu7VWuQ1thdAIw6cs1Qrvtpad3fzQJ4NxpzqoWGTlnpIlckrjbfFMgHBhzM5S3H21tkKKTQ== 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=FpIXWJJaj4jM5kdDoakQknAlYcf1/gZw2eTO/ARe4Qc=; b=gpzw/2mQGf2/Fep9DQw16gJWK+uungqWi9qBkkRqb00FlATRZp+Ytgcq4180Ji0hkUiX5hj8F3xFlrqvpQriNG7SIQdZRwHVxNvuOt0GFtvfHmcAzjcUV+VurlUlF3c4VlClDb1hPCZKmR+qvlZJ1bx7s4o8+kKLa7PXyEDIpCU= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:33 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:33 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V8 10/19] xfs: Introduce XFS_DIFLAG2_NREXT64 and associated helpers Date: Mon, 21 Mar 2022 10:47:41 +0530 Message-Id: <20220321051750.400056-11-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 85328924-5a90-4236-dc93-08da0afa3e54 X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: nviOJ+PWj1HESHgrZOAQs28gxYyaxrDrLik1MUt+HYJSucRpWUA48L/5dsjaZyDB6Zwj/JaATRxxXQlgKNyq61z1H1mClu/sNmSDVLCEO50WwAgulctotxZZXLiAb85Gq9D1s90vNtKvvSw+nXQ6r/KVDGnvXrE667hKVQy4CrfMrF7tpZ03qwF9IPb4sUqrMtWqTM5qTQwmTMlCulwW/ziKJlhkcPTK9BPlkB2/rWkpc7bE013auneXOgNIytJl9Vy7BPYvJ/0fJVflpTENbpOJff82aPq/gC00tkiIJ3teNPZvaraP08TngLwihOC5JzagQzuB6Jbn5XZiXn2Pxvujpa4A79nV6c/3EEcrFkDiGqGx4kL/OeqYsTC3tiB5rBpcT19b2awdhL5ip0dNFmrsXV5cZ7MPtHQ+IGWxIctvbxWjDd0rYVpSgG94Vzasuu9XK+JoOVziK1EsYXasl0n8zmeq2s0sQnhKh9hQD2CYLhGnw1+eojjF/JN+V7BDkj4apT9PIcbS3OLw/CBE1ePv/cAq41UUXO9EwTzHXvPg8+oi42i8zrVXA9L+lJmZiqld/h9juU83ZfAP+rnvhn5rqikjwHVHo4OjDddRQn1nzp7OrcqfWMBjR+q66ajPJ5rG2p+lwVZFYtTLX15ccLRsATg3/JFd3lYwNBFjseRZDMbuHsiqMgi8azllL9OK3PEvbjbtN9iNBk8Fsy+FzA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 496n6WUZZi8mIIrZxu0jjcyOBTsgpqWlH+AwWCwQDIHClNLpK/Vbi8S0Cjr4pgQ7j4B1ZwT3GIBd7mdaU+74q3QcRpOFRUCGUYeCMtriy1hB9wSYHzIfBWHyngYZFf5H775RtOvFVZ0BneHv7owwRBq2DIWRWMKT8VXkaGk4XxEdR/NFHJ5uo2CYy7MzY/YHsVS29HtNFk1s9lRFu3/C3wIN1oeOlBly4u/d1cQFk3T9Ek45sBoRBJocjwUzJQGvUl7iAPbXKRR6J8Yq6qINAYik3VpvqwJRiF8ng2w+jx7plVmzY2vhVW5/xhqh5kQ6Ox/0PzhQ2vZn4kUt4VgV9EzFLYbXpLlB/kbro37geigAMFzP2e0H0srswGNhKSWGjKtWkbr10z70vU1AtburjK6ER6gD0YQVgctJ1w0ftypyg9krIHlzi2Ili7Iwxu5yNoU+lOvRMMnvXQn0uBdNe6Awp4ePcFQMNqB0MVMgnoXAWVSXku+VpuQNQbrwit0iFqO5ByXwQJnzaCRWGn9iLFxSonJYZdLosr8FQkQNzKht3Y0ZCOIgsghorPCRVQMTFbQ16NgQJG3alOdn2phyqkPL32iJlbmn+3wxyO2oOK7ZYifJKSVDnyn9Fzq+pZxLutJb+1oM6Z+mqTfQgwB6bpk1u0Y4Bl4vgT62KHC09uGQWKZsbSVuRIGtpJsmZYwMvNmf6plrn7hMSWTYq4z9KQEQ0G9AzWaH2BSfhaLOGGRiRgMod/U2o1nD3+39/erJuQQwcVyjBpJNi+gBVcKEYcfjXvx765FDzHiJtns9aMT7jSnsFYEWxcdS5KsDgqcaTkJENrnAkve5WTo3+v2Z8xNSMFa9sQ/JX8HGKuzBa0u/c7V9r0Pc9tdaEyyaWKiEoIo6k1LwQlo+URbI6RVqKmX1TDSGm1phYyv0REedtMCQmmQljSkGyXnJGBt6/hcRFtF2ZuXjrW0rU+zfx7BNPcOuPN7GMy+UoymQ/WJtHUOMLeMywSfEy9CwI1Xo+hEM7FizE62q8g7nMLMRmDcem2VrBUu83RoIUgOcJN9SMHrF6x5ilfqPPBPO5xWmDSowxJkBaNbfQhTAxiI3EKZZOV+Erisr4BKEgj53RAdsgmyEhi/OCzZAmYShjkR9uckhKB+VipMo0LbIF5ubdqFEZqh34VGfldwuq0pmPqE72CFejTRL7GQodXMRodwYg2OmSHStBEljcKAiUFDaNMksCbms7XipxH3bbSrGa3sDh8G5QqRThS+3RHuAa5vJFi3kQ9UuLiZYQ8oywJFmfd6/ETuXTt+ggtNU7fzrI2fDzUdlp5nSKKCiSnBKaFN6S+zx2MrVDeNhwpTUWfF6y5qLDghg4CjJcwTzj9HMC44VXajIUU8dNC63rJ119AzsmZtLtoEKITxjvxYOXd7sskWsyBTkp7z85r9Yv6N3yx47i6y9GcfwZWYJWTn9tq5U8K5DMn9LDnRJJgxvDXjd6iqp0A== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 85328924-5a90-4236-dc93-08da0afa3e54 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:33.1915 (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: 5rA7JVXUk9QYFsj20soDzoTfUihSioWBcsM6aEuRSpQL0zuyvDon7nsgqqfRpMUPKj8kfjwEuOG55RJVsgUFeg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: _Tbwh7gajgbU23JNuOdLbv0xXV-naavF X-Proofpoint-ORIG-GUID: _Tbwh7gajgbU23JNuOdLbv0xXV-naavF Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This commit adds the new per-inode flag XFS_DIFLAG2_NREXT64 to indicate that an inode supports 64-bit extent counters. This flag is also enabled by default on newly created inodes when the corresponding filesystem has large extent counter feature bit (i.e. XFS_FEAT_NREXT64) set. Reviewed-by: Darrick J. Wong Signed-off-by: Chandan Babu R Reviewed-by: Dave Chinner --- fs/xfs/libxfs/xfs_format.h | 11 ++++++++++- fs/xfs/libxfs/xfs_ialloc.c | 2 ++ fs/xfs/xfs_inode.h | 5 +++++ fs/xfs/xfs_inode_item_recover.c | 7 +++++++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index 64ff0c310696..57b24744a7c2 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -991,15 +991,17 @@ static inline void xfs_dinode_put_rdev(struct xfs_dinode *dip, xfs_dev_t rdev) #define XFS_DIFLAG2_REFLINK_BIT 1 /* file's blocks may be shared */ #define XFS_DIFLAG2_COWEXTSIZE_BIT 2 /* copy on write extent size hint */ #define XFS_DIFLAG2_BIGTIME_BIT 3 /* big timestamps */ +#define XFS_DIFLAG2_NREXT64_BIT 4 /* large extent counters */ #define XFS_DIFLAG2_DAX (1 << XFS_DIFLAG2_DAX_BIT) #define XFS_DIFLAG2_REFLINK (1 << XFS_DIFLAG2_REFLINK_BIT) #define XFS_DIFLAG2_COWEXTSIZE (1 << XFS_DIFLAG2_COWEXTSIZE_BIT) #define XFS_DIFLAG2_BIGTIME (1 << XFS_DIFLAG2_BIGTIME_BIT) +#define XFS_DIFLAG2_NREXT64 (1 << XFS_DIFLAG2_NREXT64_BIT) #define XFS_DIFLAG2_ANY \ (XFS_DIFLAG2_DAX | XFS_DIFLAG2_REFLINK | XFS_DIFLAG2_COWEXTSIZE | \ - XFS_DIFLAG2_BIGTIME) + XFS_DIFLAG2_BIGTIME | XFS_DIFLAG2_NREXT64) static inline bool xfs_dinode_has_bigtime(const struct xfs_dinode *dip) { @@ -1007,6 +1009,13 @@ static inline bool xfs_dinode_has_bigtime(const struct xfs_dinode *dip) (dip->di_flags2 & cpu_to_be64(XFS_DIFLAG2_BIGTIME)); } +static inline bool xfs_dinode_has_large_extent_counts( + const struct xfs_dinode *dip) +{ + return dip->di_version >= 3 && + (dip->di_flags2 & cpu_to_be64(XFS_DIFLAG2_NREXT64)); +} + /* * Inode number format: * low inopblog bits - offset in block diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index b418fe0c0679..cdf8b63fcb22 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -2772,6 +2772,8 @@ xfs_ialloc_setup_geometry( igeo->new_diflags2 = 0; if (xfs_has_bigtime(mp)) igeo->new_diflags2 |= XFS_DIFLAG2_BIGTIME; + if (xfs_has_large_extent_counts(mp)) + igeo->new_diflags2 |= XFS_DIFLAG2_NREXT64; /* Compute inode btree geometry. */ igeo->agino_log = sbp->sb_inopblog + sbp->sb_agblklog; diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index b7e8f14d9fca..3d28daba88c9 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -218,6 +218,11 @@ static inline bool xfs_inode_has_bigtime(struct xfs_inode *ip) return ip->i_diflags2 & XFS_DIFLAG2_BIGTIME; } +static inline bool xfs_inode_has_large_extent_counts(struct xfs_inode *ip) +{ + return ip->i_diflags2 & XFS_DIFLAG2_NREXT64; +} + /* * Return the buftarg used for data allocations on a given inode. */ diff --git a/fs/xfs/xfs_inode_item_recover.c b/fs/xfs/xfs_inode_item_recover.c index 239dd2e3384e..44b90614859e 100644 --- a/fs/xfs/xfs_inode_item_recover.c +++ b/fs/xfs/xfs_inode_item_recover.c @@ -142,6 +142,13 @@ xfs_log_dinode_to_disk_ts( return ts; } +static inline bool xfs_log_dinode_has_large_extent_counts( + const struct xfs_log_dinode *ld) +{ + return ld->di_version >= 3 && + (ld->di_flags2 & XFS_DIFLAG2_NREXT64); +} + STATIC void xfs_log_dinode_to_disk( struct xfs_log_dinode *from, From patchwork Mon Mar 21 05:17:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786805 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 6961FC433EF for ; Mon, 21 Mar 2022 05:18:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242077AbiCUFUH (ORCPT ); Mon, 21 Mar 2022 01:20:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52590 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344382AbiCUFUF (ORCPT ); Mon, 21 Mar 2022 01:20:05 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 27BA333E3C for ; Sun, 20 Mar 2022 22:18:41 -0700 (PDT) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KK9IaV008859; Mon, 21 Mar 2022 05:18:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=BhSIiPEEwtL8Rzw7W29dd4C6M6oyqjkml1CYmlzuPEI=; b=ieW3F2jEGTgj3POEmh3hdTFnXbk3nAK5NFM1I3mgNO+SM+LUTygw0yMUdTrsaqfULHFr 68i4djexEXEF9cdqGzVDfKb+zzi+2ta/9AYQR4LonlYJLzFDXWMj0BsgbtEc3Woi3wpQ 84QAX/wFuVldS6qE1ipu4Q2ald/IJ/HPlS0fhJKczLGiWn1ex6CAQytxuU0jZBNmd8Hs ZmiWlmI89ZkHpGlSDaMboR5gMvUHDWcH60G0dJFnVB2H7UF6k83allYzeF0l/bkmtFNz zJjRHg/mN6hgYsHsn1Z9pZZS48P1S++CX/TQeRRwRIyrQaBXTk1laUGaEaqOl00x7R8f 3g== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew7qt22vh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:38 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5GKMC155839; Mon, 21 Mar 2022 05:18:37 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2046.outbound.protection.outlook.com [104.47.56.46]) by aserp3020.oracle.com with ESMTP id 3ew70096m0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ONuLO8CoyAvsyA/wGLrdba7M89r83ql1c2tUdZh6WbdiFjya3Y0auYPehfiU1ECwmQl6ovm1ZtaDcF37B6Loc+kQzBbbae9m454AWJVoPefOR27c1osCcD5LXqjdD8zyMIQMCitj8A/qzTacgV32YtVrJL+2cjsfoCJio44QexgZ/770pTC9eSE5E41MEXjyHJhyuz25ohxPi7JkRru1eM/Mx3ujNFMQt8B25SaIPO5fvPV17MVg7EB96jx8bzfiBIGm9ccp99FWiKHHzpd5YvgE5UFemA38IPZCcyRPe26CeLpMwIVfdlto7vRwyFUU8pn1w4pCWE59Kz63mFgiwQ== 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=BhSIiPEEwtL8Rzw7W29dd4C6M6oyqjkml1CYmlzuPEI=; b=IBiBEKGT3oIdbc1SHuK1Wot620kQeap9FmA3wHvldcB94OZ0x9zwHnimmE2oiwK1uPjLTwtcGMy/beWZ9asZqi/bt6n5/RRFICHBZBOkkwWf50v5CsM9TLVHBfvutiVObVj8tiVQRf4l5GoFo0hJ/kK6K4g+OXswZaTME0991lKwpQN6TYy+B9+zeeDU5sqwbPrOvkygvGyCvsHJGeytKrkYwmlYy6pJGHPLMK+OAjpjVYtexy7t8DJkbW1zBbAEl2h11VXfXGa9oeQ2moIZ45HxJ4sKqzcQ2LiYnYxY4v6jV8QfYPgn1zGizkyra/B/zYvB53XgORpDKZAbv/uObA== 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=BhSIiPEEwtL8Rzw7W29dd4C6M6oyqjkml1CYmlzuPEI=; b=zY3yICV4GpUAFZ0c94QXaFsUC2yd7AYBrue6BMOezb2m2NOYg/TKfZ2NgsZv83kEuHrUJijnzcJHHfCqDXrWyvdtbJ3PTT+OMIUn1+eCfdO+EJlqJhS4BmK4jW+/7r+r2uuAWCfBJ6IYFSVuR+xDBr63QA2PS86bNZ5vgabe8CM= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:35 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:35 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V8 11/19] xfs: Use uint64_t to count maximum blocks that can be used by BMBT Date: Mon, 21 Mar 2022 10:47:42 +0530 Message-Id: <20220321051750.400056-12-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fe6dbc2a-403d-420c-3346-08da0afa3fbf X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: T13BFKvwQC+0v2OcRuXenVrwox1Y/0XteZYD5MFQEMdGWRsVVKQLCywibmZHPZXTMQqx8T3fW8mYFga8nndaSBvxOj3vQ6aWqNmhE8b5MjiXi7DKX5Sk5aerzq+sxFP2YIlSngluFim7/oiw01PMBILnncXGA3eHkuG4nJCgwRWyEnkaCStNVguB1XzRy77mFJJ3o1Cr5Tdcc8ySOeeJGk6O8rjpV/mmX0smrbftad1nLZSHhXo5d91X9uHwtJkR0yIyC4ELVBchWWuWLYtTWo44zXz1eEx2hXLNJSPXdMbj/Of6LbS712vsjb6/VV/omrc6uGtNOe4zF9JGoKfayFVt4lO6wLukXgQGhYqGDUQHI8t77a6Tt1E6DBRz46GtfOCyeeNQXrDJ3a5kPDPNUTZOwh0hOljwG7TgM3A01HQwWUsbtLG6Moy8SRZk2zaYKgd0UMfR6OK5k8Tx8S3GYqkLXRhoaK1ZBduhymH07zS3Kuy/OS94YoHkHYSkx02xvj4So4rlHwoWeOXxGcmuaVesXV8x06zk2ivi6ASvACtRjn/Y9SK9OPszZ6ArQS3INCo4wrqPE9GlNAUIQsaWkOfPNfd7/6qKlPUglDeleWgepS2oU2UJlG2LbOtLFWwze2iW2I1LHQfrhDEVQghyKgtXtdu6x9+d3PN5pvBsWsS93HKHqBCHh/u53FuUh6btj26x83ei09yiLrwQpMV89Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: d0jqFeMNq6vY4X0DpW2vfePA5ODR2iAyUpMGjz0x2/8xneTcfQcrLb2HOyjQSJSB9t+xBwEIqfTNbhJGH9Gl4UDJt1zxRRzbTfA2yGYxBCoiiD+8g7dvVUhKG3JpSBJ3PTHQMqx30rLQKi0TX7qjScPjTXlZrXPnySQQ597msDbc+AqapsfVL9B1UHzb5ZGWK1LuI5UK1lvpt/YeCbKA8zvygzp5CO7QteV/kIyMvqhXNV41Wc6DLK7ruSW+MKCoFG1GmTJu1dB+o18nOJwNcW5N3W0fMQnZDk1fadAdVq9bgDfBocPoT/gD/71vVSc99Jk4Wnxw6UP6LIKTrmhq2B4Xyj3O9CsPbB38Pe9xp+/oc2Ls4B8ylBVQkUtZiP5jGxc228AwQXYjdyAfnkS+VU6r64oh2Qd/U7ewe8nF6BcJQWn5qp3ygvpWshQks74NsR+7PAFvNTtruNCx2K1GGUzJ8VlSPMQnmHXEBy2xIJ9JtyYKGutqkbw6tZyDFU3SkkPa6PuSsd2k0DSUM65LvNjqQ9d5YunB4umQjrJwfnIpJVpjYIGsxsIxn0XUHndIaBLZnFnRDDLBUV35N3FugOJGW+ClyHbID190P4oeBltGEZo/A8xxBG+f8dkEv2vegVrRDkOwIpo1YrOn6FGtL17aNBYd7whMh1X00V01boIdkBo1bd6SA2k/hHku7kPgv5YQgJ/D+mLCgkNjBRQwwGYq+WwoqMOjivyIQRj4aQrUquW05GkPmDveu7g6QFhTpJbH7OhW+oLX+PjddUG5xwg20EX+CcgXgjmnZxIh5uN6byq9626cHc7vPO0uYAdCwb9yP8TfBXffruBGAfVh09jPqJCA5BZqMX5m01ZMV0xKSiNMTLleExjYfZGILfoqSEMv7GcIsh8lB9RcTK5l3uGC4A6O3oOT8jf7j5rfOGeHxwoUM3yEjd+PgHQfppH9wKk/JzI9qMUZl3tfdP0bDgmVN0+7aEDeB/PVEtOfXs/q7M6hxuoVtNTUJBZaCz/Hzqd+TNHsrZmTAGu0QmqFT0YS/4+xuHBPbZCN77Y6T7lAAAA7Y167SY95HU/2riljtNgyWNVPQ8+zKF1WOxKqBJGY5ud4YuL32tcq+mEKFVMkt/wpieXYrYkH76F0rGyMFU41DzYRJtxiauEvwsf9LihZMV0KrxuN2OqxaSYE0+CZC/CRtF51pltHH9lzY5Mv3Nv7IABy0XWLEfyq2k2Xk9jBDo3E73oqdZt7flhPkOM6KT7o2ti/OfW3BKOOF2U7g2KNYhycyW8HQz/GIB1pSO+VXnexmH3y/0xpJy69WcHg7ZTPB8s2Uu448XjuwStcfBN4c7Rjk55/7K/jU1NjboKehAhGqJLgKlT98cisDNmdLZSlHuO27dUTWCGI/M3IkVvJEi0F5BBTplRfbvyLBc5XfBoDzKLWQR7wIzG1JA/0e7N47Y4e8Jjew8YMhKhoOt6NBYTCHLdFaI7FvXmKTw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe6dbc2a-403d-420c-3346-08da0afa3fbf X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:35.4724 (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: E5sWV5LpaHd0gHJwPed0EsfQKOsCiCI1YClsevxqvapCZzEvwZnt+qW84K4M02crQu6ZrNZyLOuRAjnl3KkOGg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: CiKuUjANb6TidcTU7F4f6AOj7uyt0DYq X-Proofpoint-ORIG-GUID: CiKuUjANb6TidcTU7F4f6AOj7uyt0DYq Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Reviewed-by: Darrick J. Wong Signed-off-by: Chandan Babu R --- fs/xfs/libxfs/xfs_bmap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index 9f38e33d6ce2..b317226fb4ba 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -52,9 +52,9 @@ xfs_bmap_compute_maxlevels( xfs_mount_t *mp, /* file system mount structure */ int whichfork) /* data or attr fork */ { - int level; /* btree level */ - uint maxblocks; /* max blocks at this level */ + uint64_t maxblocks; /* max blocks at this level */ xfs_extnum_t maxleafents; /* max leaf entries possible */ + int level; /* btree level */ int maxrootrecs; /* max records in root block */ int minleafrecs; /* min records in leaf block */ int minnoderecs; /* min records in node block */ @@ -88,7 +88,7 @@ xfs_bmap_compute_maxlevels( if (maxblocks <= maxrootrecs) maxblocks = 1; else - maxblocks = (maxblocks + minnoderecs - 1) / minnoderecs; + maxblocks = howmany_64(maxblocks, minnoderecs); } mp->m_bm_maxlevels[whichfork] = level; ASSERT(mp->m_bm_maxlevels[whichfork] <= xfs_bmbt_maxlevels_ondisk()); From patchwork Mon Mar 21 05:17:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786806 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 1CF36C433F5 for ; Mon, 21 Mar 2022 05:18:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241372AbiCUFUN (ORCPT ); Mon, 21 Mar 2022 01:20:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52904 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344376AbiCUFUM (ORCPT ); Mon, 21 Mar 2022 01:20:12 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4295A344C4 for ; Sun, 20 Mar 2022 22:18:46 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22L3mJKJ027331; Mon, 21 Mar 2022 05:18:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=PlDRDpV4Ca0ybP85a8jLFUO6INlovw4duX+aQN3HEUg=; b=e3XiFbHXTrQ5fz0/+9nIC+94U1rkm+K7yxBLWqh16jleaMw2MkAJZmgHjxruBF/HHh+g zQVa48ZOs1i7J/rqVYJEJEObacxoBXlWzodNzeZE+SAkamo+gDX4NSIYPLVGUfiOqZcz t/01js45YY4c995AUsaXXJI34uG2/xCOb82O9iJRMjwLemRzN1MkyNTefuyPmyUVmFc/ xjwlfJ803c+fnxndro/44fQ2M2KgfJa+QGNUS1hWW6krbUT5EWsrcUrjiASbCSmAUa6S Yf/m/jZ0xWCghiac4IWhxPmq8W357DIny35kNGbjFqOJjmte3jXuVM7zfHjxSRRkoIvL Jw== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew72aa3je-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:40 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5G0ih057967; Mon, 21 Mar 2022 05:18:39 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2042.outbound.protection.outlook.com [104.47.56.42]) by userp3020.oracle.com with ESMTP id 3exawgev37-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oXB+6bWzrT+VKd28nsOrKwyfrqc7SDhz/wMjEYBmieQPOBYk8Zs+prgxR3w37yB75zXvStjsveEGcTngauErVK/wQxSxYy90v6eb2CHb8i3GiCl+kRntNOWHoDJton6XD1WQZBfrFiXkdCihjcUMtKnpz93vFHRzst32BSSJUb7EkZjX+NxiyPw/0vd+fxowizXxDD5r75wXTjwY1Qm2mZtDmJxxghe4Wue4/pGDcYyOM1AtVl7OQ+5c7wiNgOmFf5h/UnVAsU84qfkoAkb7AM9ExNVJP/bN7o1RsYPxUJSbgOma07dLCxwWVqZGHphKEtTgZCjiNQdumOnZCFRnIg== 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=PlDRDpV4Ca0ybP85a8jLFUO6INlovw4duX+aQN3HEUg=; b=cfnP7yhd5E1m0oJJUEYuLrsYLufDJ9LcYkr4rARkhs2Ei18w8j0CTg6vLIJU6TkgLf7NpqYC8lETlHlvFYWEB49pBZFBmaioN+w3Layu8GZODLTnKy2/Dzvz9j4T5vBZg9LLc2wYFWybOBmf+tasPpkQacXzKYB/2bvJQyffYUlaaZtKZIyfVjn69utcHixnnk8kLkvH/d7rN9E1vm60tdPZSkpxD08pfmNNjQGy5K9tC54B9YJOR7M/mgmhoVonh0M6GUqTEc5BADpKrk/tTlxqMpdrTzDKrEKvQuWTAnjTkvS1KqsTP8Ttp1KBfxjLWwEyFH1XNtqZ3xsOclcXvA== 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=PlDRDpV4Ca0ybP85a8jLFUO6INlovw4duX+aQN3HEUg=; b=kJMW2sAxMjhpMtprK19vSYh8L3vbhwHpOpoq/V360clx6XtUIxW+f3rLOLMJ1W08qltEsMAJkQ6j3a64a2r9JYL9ZroZ5cXljCKsiVz2uLqCYPddbGGED0xWOXW/7zh646NiPvHJINFKfTtKc0LvbXEbHj0/zJMw+MskbxqW7z8= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:37 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:37 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V8 12/19] xfs: Introduce macros to represent new maximum extent counts for data/attr forks Date: Mon, 21 Mar 2022 10:47:43 +0530 Message-Id: <20220321051750.400056-13-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c1e33d31-64f5-49e7-25aa-08da0afa40ee X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: N6r6dvsJ/yeLHJkir7rkk4G0WYTNTGghX4vdzZVKvpNhwyLcqwHHjGzui9BZZkUS62ar1Hfgww2Yc+pwvkyzsJ2OeyfpBej8rvwLXqN7xvhU8xpZ80RzFuFg8UjKy07Fjgdz0PiYx4mHmhMxdDSyZncJPgMcbs0B2fnG7bGVPA6/RfTxTxM2q+9Vb+CteO4ivQ23GLsWJSnAJnKNS2tJwfgzhDzmHwCcbgbvbrQUf52xtXbyI5ueR7Dn9AIaSXi3RnJ3MbRP1d4SDhuhazFBYlJ6Z7GUtxYzY0aRlrQilxiUCRdfQFkbDiXDQ6PV4F4Lp+EEy6cNgZiSoUt4DiU5dM8AzH4XHsup0OXiMjkOagaFMEQn7nLUsW53vlYiRM4sfwXP4gF4DwNmhu4VXcjv1ncr3Kgpf/p3sq0/f8KIOHXTXj+QKIUbnPgqDs2bxd6IfGet30dzryAPclrOz9wDJueviHFnPoPsZj3nRvldtzdgyQgrR6nVFRXxvwe7RTHoMmO4XBnV4tcWRVuWXcXKerCDgpDfyZzfFdebPjkKuf2jVxRDpMH4fzvM66bjIKFYt/F/mHkTyAt638w/Nl+JnjQvnfKLx2uIkB0WMlhOaWroePKhbKcKIXKEoab112tbHB3NidDWtPHA4vLnsaznK/9FmMAr2w41L4Cs3V/QpGmUh9fOyx3T/s0ZgR2+TS36y8K8WbEl/J4mrtV/9P81lw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: cgXGaQ1kWoHZdaY09AWqdArtv/fPeDWSftRN59/LYSUUmvERkE0OE2v9C6Yhz7tpqSLPDsC0RnNpkbncw8IwL1GC3hAfzULfhE+IWZZi57klMOw+XG+itT8HnMOgeEuHFOhgdzSMspN4/3PkgP8Eu8lGBo94ZwDehGDqDKBWa0D3wgddRbvUhd+7vXXPHJnAiCnpviUOV2T4vaS4tXXrhhrj3oUfAE33VQQKN8NHZ/8uNWYNdFG6mbEhSEqxNEC4SfKWpwdbNtW1ChNFTA5RTL5zbdsn1d8CFUG5uA8BU2OwAd6rBuLWpIdxhBw5D8i18LyOSKSDpxBHLzAgeW6CVm6eq0yN9Vh9cqMIrQCJMe/1y2Tmj0UZQMpQ7CrW4HSG/ALI5Te7uKVvjIA2uz/aY8QA3lR0lsvBhhSrQvM0myE2JTwPpzcOOPk6Uf32g4uXiHp+2yWOHJ7kRAup2mXwD6Q9Pnj848JH5pslqWmrtlWEkI+PwbOt99cXeKmVRStymYQCsGqLxX3/wNleLeusPthOxK0M4TjL81tbxwqru+TeJjrxP9XbZsasnB8MSsjDeENdi4wO5UxP4h5MIMEDi9aTi+O9V9Nq9z/m8VtDjKeo+XBNdAczeOaynmwaAhujYKhMrftYsa5dOyWWsLDaOLxV1uVsyy9K/oGbWgvZoyM5YDdDPmghES8PujG/2WevDhbTtTICBu2VHDF+ywXwk1uDJjUjymf1Ndnf13nu/SHynT2DFVk2jRyzqNqruDG/F86OhMcrozoi7ScA9OaUa4L6N+ZrCZrIvGyo9ci0QLQdj6/+L7wfXxIsisLqsmwd8reSXuiQS8Y6ysHFye+H2X5gnVAnc75WBlYFWGpcAOu/87NiCg3AKjBLr9kuJHs57PzLFUZNRBUEUp/MlCRUguOcWejOftbEk1Z9arVX5MwW5UWmiQROVZd99EmoN+GaEQOt6OlGONp9h6RaWK5JD3osvhy4uzfjCNVf+41cwboGv5pcforZpiw0htudPbXDk/+SOWEdOVXcBN4M4XzbH03DC7rccU2+RIiKL0InKpU5fqsd31fwUx8clCFEquJeTZuGCt2wYbIkA7aH2uGpZyC7hVpNmUKkGl09PqF6KLCR5AsjludMOA5q6L86TnB1qdqCxmasxLqOEB61sswGyajYzazlKh3GNQ4sZKhKOXA7YfwH0wVBiyeNdgrNhKpWJsOSXmBDJZQqdTKDE8fE0D9P16R/PZbhzq3AHcYTm4/DGLY0cBZ3Cxxu/sJTo2RUVVUBAkyqLztiVE4XTxxJ7EiM529omnR6VmmfUbA1clVeXVSOBaTIcAx+gumG/DquknpaIZGvf0GjTbm3ke9gasOwpEHgKdq8NIHOdAP7FCsXOVGcrZ38h/Ypm26sJtMc5qVdV7ePKzLUR5TxA1SbTYNPrFnBVbULQyCvaQ4ROlCY3q0vCKMlDY32BiIgD+cij/kWZClfPmDeu/tC9qATRQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c1e33d31-64f5-49e7-25aa-08da0afa40ee X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:37.5672 (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: 0l51I8IOmb0trTUK/UmK+01ZlHDA9K5vq0BKxFKRvYkOj+eNLvkiGS2KSSWKhtk1YL7GMGTzyDF+Wrt99RAWXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: x3uNlDdx0zhmN7F0-S2ar0NAieKkNA9z X-Proofpoint-ORIG-GUID: x3uNlDdx0zhmN7F0-S2ar0NAieKkNA9z Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This commit defines new macros to represent maximum extent counts allowed by filesystems which have support for large per-inode extent counters. Reviewed-by: Darrick J. Wong Signed-off-by: Chandan Babu R --- fs/xfs/libxfs/xfs_bmap.c | 9 ++++----- fs/xfs/libxfs/xfs_bmap_btree.c | 3 ++- fs/xfs/libxfs/xfs_format.h | 24 ++++++++++++++++++++++-- fs/xfs/libxfs/xfs_inode_buf.c | 4 +++- fs/xfs/libxfs/xfs_inode_fork.c | 3 ++- fs/xfs/libxfs/xfs_inode_fork.h | 21 +++++++++++++++++---- 6 files changed, 50 insertions(+), 14 deletions(-) diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index b317226fb4ba..1254d4d4821e 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -61,10 +61,8 @@ xfs_bmap_compute_maxlevels( int sz; /* root block size */ /* - * The maximum number of extents in a file, hence the maximum number of - * leaf entries, is controlled by the size of the on-disk extent count, - * either a signed 32-bit number for the data fork, or a signed 16-bit - * number for the attr fork. + * The maximum number of extents in a fork, hence the maximum number of + * leaf entries, is controlled by the size of the on-disk extent count. * * Note that we can no longer assume that if we are in ATTR1 that the * fork offset of all the inodes will be @@ -74,7 +72,8 @@ xfs_bmap_compute_maxlevels( * ATTR2 we have to assume the worst case scenario of a minimum size * available. */ - maxleafents = xfs_iext_max_nextents(whichfork); + maxleafents = xfs_iext_max_nextents(xfs_has_large_extent_counts(mp), + whichfork); if (whichfork == XFS_DATA_FORK) sz = XFS_BMDR_SPACE_CALC(MINDBTPTRS); else diff --git a/fs/xfs/libxfs/xfs_bmap_btree.c b/fs/xfs/libxfs/xfs_bmap_btree.c index 453309fc85f2..7aabeccea9ab 100644 --- a/fs/xfs/libxfs/xfs_bmap_btree.c +++ b/fs/xfs/libxfs/xfs_bmap_btree.c @@ -611,7 +611,8 @@ xfs_bmbt_maxlevels_ondisk(void) minrecs[1] = xfs_bmbt_block_maxrecs(blocklen, false) / 2; /* One extra level for the inode root. */ - return xfs_btree_compute_maxlevels(minrecs, MAXEXTNUM) + 1; + return xfs_btree_compute_maxlevels(minrecs, + XFS_MAX_EXTCNT_DATA_FORK_LARGE) + 1; } /* diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index 57b24744a7c2..eb85bc9b229b 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -872,9 +872,29 @@ enum xfs_dinode_fmt { /* * Max values for extnum and aextnum. + * + * The original on-disk extent counts were held in signed fields, resulting in + * maximum extent counts of 2^31 and 2^15 for the data and attr forks + * respectively. Similarly the maximum extent length is limited to 2^21 blocks + * by the 21-bit wide blockcount field of a BMBT extent record. + * + * The newly introduced data fork extent counter can hold a 64-bit value, + * however the maximum number of extents in a file is also limited to 2^54 + * extents by the 54-bit wide startoff field of a BMBT extent record. + * + * It is further limited by the maximum supported file size of 2^63 + * *bytes*. This leads to a maximum extent count for maximally sized filesystem + * blocks (64kB) of: + * + * 2^63 bytes / 2^16 bytes per block = 2^47 blocks + * + * Rounding up 47 to the nearest multiple of bits-per-byte results in 48. Hence + * 2^48 was chosen as the maximum data fork extent count. */ -#define MAXEXTNUM ((xfs_extnum_t)0x7fffffff) /* signed int */ -#define MAXAEXTNUM ((xfs_aextnum_t)0x7fff) /* signed short */ +#define XFS_MAX_EXTCNT_DATA_FORK_LARGE ((xfs_extnum_t)((1ULL << 48) - 1)) +#define XFS_MAX_EXTCNT_ATTR_FORK_LARGE ((xfs_extnum_t)((1ULL << 32) - 1)) +#define XFS_MAX_EXTCNT_DATA_FORK_SMALL ((xfs_extnum_t)((1ULL << 31) - 1)) +#define XFS_MAX_EXTCNT_ATTR_FORK_SMALL ((xfs_extnum_t)((1ULL << 15) - 1)) /* * Inode minimum and maximum sizes. diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c index f0e063835318..e0d3140c3622 100644 --- a/fs/xfs/libxfs/xfs_inode_buf.c +++ b/fs/xfs/libxfs/xfs_inode_buf.c @@ -361,7 +361,9 @@ xfs_dinode_verify_fork( return __this_address; break; case XFS_DINODE_FMT_BTREE: - max_extents = xfs_iext_max_nextents(whichfork); + max_extents = xfs_iext_max_nextents( + xfs_dinode_has_large_extent_counts(dip), + whichfork); if (di_nextents > max_extents) return __this_address; break; diff --git a/fs/xfs/libxfs/xfs_inode_fork.c b/fs/xfs/libxfs/xfs_inode_fork.c index 004b205d87b8..bb5d841aac58 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.c +++ b/fs/xfs/libxfs/xfs_inode_fork.c @@ -744,7 +744,8 @@ xfs_iext_count_may_overflow( if (whichfork == XFS_COW_FORK) return 0; - max_exts = xfs_iext_max_nextents(whichfork); + max_exts = xfs_iext_max_nextents(xfs_inode_has_large_extent_counts(ip), + whichfork); if (XFS_TEST_ERROR(false, ip->i_mount, XFS_ERRTAG_REDUCE_MAX_IEXTENTS)) max_exts = 10; diff --git a/fs/xfs/libxfs/xfs_inode_fork.h b/fs/xfs/libxfs/xfs_inode_fork.h index 4a8b77d425df..967837a88860 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.h +++ b/fs/xfs/libxfs/xfs_inode_fork.h @@ -133,12 +133,25 @@ static inline int8_t xfs_ifork_format(struct xfs_ifork *ifp) return ifp->if_format; } -static inline xfs_extnum_t xfs_iext_max_nextents(int whichfork) +static inline xfs_extnum_t xfs_iext_max_nextents(bool has_large_extent_counts, + int whichfork) { - if (whichfork == XFS_DATA_FORK || whichfork == XFS_COW_FORK) - return MAXEXTNUM; + switch (whichfork) { + case XFS_DATA_FORK: + case XFS_COW_FORK: + if (has_large_extent_counts) + return XFS_MAX_EXTCNT_DATA_FORK_LARGE; + return XFS_MAX_EXTCNT_DATA_FORK_SMALL; + + case XFS_ATTR_FORK: + if (has_large_extent_counts) + return XFS_MAX_EXTCNT_ATTR_FORK_LARGE; + return XFS_MAX_EXTCNT_ATTR_FORK_SMALL; - return MAXAEXTNUM; + default: + ASSERT(0); + return 0; + } } static inline xfs_extnum_t From patchwork Mon Mar 21 05:17:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786807 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 E2E93C433EF for ; Mon, 21 Mar 2022 05:18:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344383AbiCUFUT (ORCPT ); Mon, 21 Mar 2022 01:20:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53018 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344382AbiCUFUO (ORCPT ); Mon, 21 Mar 2022 01:20:14 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1C357344FD for ; Sun, 20 Mar 2022 22:18:48 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22L3PwE3017596; Mon, 21 Mar 2022 05:18:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=dA8ckTZYeyH8fFY/l+eZKljKQm6XrCNBN06stTvfM7Q=; b=TDPrC/wR1tLEweM+GeXnULci40+l0M4q+ZS3YOYVdxycqW6Fuh+HIPUL9bw9mbjmJQZ/ H9bPJ1E/NYnPFjX4QDIDDbD6Oai0dgZC/1INDF6saXvT23b9jWOOC2MXjs0nA+mWiCib Q+wwuEC6O7v/mSuyNctYO/PKm6m+TxbAEhfizdlW2+KzLzfo5fgKu5/Zew/TCQ+lyh0q 6stQfo2CwCm+WMjAcvU1edYwMsG/wdCnXZAnWaIp9Kwu90CHUqMwPADS/1tZJ5PzgHyY cMiyEggngLqlL5yywJFJYrOzaUNJXTWb7csz4NHAAUxKXDQB8GoVpTgd+CKloGRCNsak /w== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80] (may be forged)) by mx0b-00069f02.pphosted.com with ESMTP id 3ew72aa3jf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:43 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5Iffj094842; Mon, 21 Mar 2022 05:18:41 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2046.outbound.protection.outlook.com [104.47.56.46]) by userp3030.oracle.com with ESMTP id 3ew49r2h07-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kem78ZEgfBW1W8qM+/xOPfJCbTtCcfWgJ1Rig4wN3NCVaxYRWQXzRpQPp86udpYtF/y4j76JX6AxaHNKfrkAZ41dK739DZUzPMXs41X77dD7EfaL2qcxfWyNsf/lqkePNm7ooPnboSR3q7SlnK7LxkrO8Cx+BKdoxTA0hZvA5hYMOdwrn+f/HOlolhCHJOWQpqIkO8pdMcOB4VchozvmsN+v/FN3DLH0FDDor/mYS10v8y8cWFZVCN/KM219o2WjmqM4igE2mDRgIqBH7UdXqfwpRaor8s5NYs0sbWsbF16Ji0SZofmv28RJxJU7Y1rZhyL61X+bBUmyGtKdgUHHPQ== 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=dA8ckTZYeyH8fFY/l+eZKljKQm6XrCNBN06stTvfM7Q=; b=L8uynjmfNsnCFaoLBSwasK5QBC4YaMR3V1NZyKT5w4QDhTXcgmsF0AbrgCWxeLoOCcWDTPDWoxdaoc5QRG4WrxCwDLoa+VPUYGStOADvbtyCxFhgc0Y3EkB5mWjSxuui7JejCk3F+zSGMV1snNoCZjhUKH+LNDmSB+VBLQdB2pIkeYCypnIgMDQRbOrehtsLjf+V0U1zzgLJGGbncRwO7M4WV9sYK/oww6XMPGoLZMxZZkLekuHhtA0YeN2Y8RKvIcjz3L1OlmdcKLOphP6UJC5ikxp2l6kLxdaTDrwIW6OdUOmRTsvY8avyOx6Uuzam4J+NlT8yc+hYA+4YLndScg== 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=dA8ckTZYeyH8fFY/l+eZKljKQm6XrCNBN06stTvfM7Q=; b=QQYchvD6+H/7Z3Hs5YKpghU5JERUl6VUWxk+zm4lgR0m+gdUhf1jHV4i8UAI4nlkwTBjqvasDvOWBkWyRa/aAEPUn5RRC2yXzKePe7fBMfZ+UGQTSpZLWw5WoHKPkkqjds2E2oyMK15y5YN+12cejUKinQPFXtbkl/tNvLOI/jU= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:39 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:39 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com, Dave Chinner Subject: [PATCH V8 13/19] xfs: Replace numbered inode recovery error messages with descriptive ones Date: Mon, 21 Mar 2022 10:47:44 +0530 Message-Id: <20220321051750.400056-14-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 306207e2-580f-428c-8143-08da0afa424f X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: /8cp7PNuzNn0mjhI9jE1kXte+bnhMD1R/+ZrivhhhV7PO1uXYH09w0qn9ocR+TuVfAiw7d49BSsz7Tll89++h8hHadpJwA/TJ/Hy42c8QRVAfKDQnNS+k1xIQlN7LiiIkKpOVHwoi5EwEqxzAc5kS7UEAgF38nweIkQ9YQcUNlAwMJLHljfLSrcunzaBKgmikhUuDhuZ/eBibG98c9sFV/D9Ebv5TwpZQNwwj/ewiGx912U/fEaUn7CKt3iUwEu66i2ED3KaW/vcLt0as2oCdYupv1NLgA+kpvtzL1GZpymeUAsCNY6bILYaaSC3U+CHIzpzF30zypXbzAvUuxhGNfSHxvXepIaNl4NDNuLjiwj2YX+ppfFP/fPfXdZ63Hinon5drhkRuudmNxr8P7TAF+ixDnVKl0srVmDof4AYLeIC7DeC/k4zqbiVztf6n31T57neav+oa3s5H0Wn+38wiUnZqbwpf6A9fsNCA8IuQ9DhRiHS76DTY9LPlFKImoiZtunEsl43E073MYy747CtW4MyhNHawtZHmfAqN49ZI8vUnV+TO9AE7Ap2G5g1PPvMIgBgcTh3p+hqvq2OREc1t9za/ymHxQ6+CBgw1LPlp00pE0gAoaUqPBa99zCt9lqrJbA+tWAqjGXuJNGDubKluM4hSLE6mOeDlxzAxgTNT4xGAw3ySt+7w2LhcQOIzgrant2cRp3efHn/lUsFvoUMBw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(54906003)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: PZ//Y6Z4ubSGXOqKxeAtmBhaFoTXMEvi61ynO0uKitHY98BaIcpzBGY07j1fuTLVkeXw7doADfC3xq4IvlEjEanPRkMDxt5iPPUgWP9omUl2G5d/ysKc7NjODBxwiu75ue2YB7OgWk4vGXZ0ssSYGaZXf+79nRlCWMK9h35vAa1dxvB4ZpvSdiN/Ire2LzTh8Ik8k0iElF6XT0rEcUTYKw5TR2irsdn8/QQ+36N718DGffMrlfMaGoWCuqPJPpvtg8k0l36IArIiCrPNW+H3Df84FFnpN2MHPxnbDuY3aYZZmoQqB158PFiiT3CCzAi6M1KjSL8sIhi4O3OqikuHomgy9CSng+OS6+1DEJsfo6qEXLM0UEp/W70oKX6FNW7cjc2qcuLu9Uneu1FVhslcBIULRZh6H2m4Cnl+5rxKeCQ7FVjMk/MxMnJyx94LhlBYN5uZNP4p5w8dt7P9Q7+Ro2576V+18daD+mCJcycDy2vC2SQoqxsdJg6xRRSGD8RfAacVo8WCq1ekfjrsMcrEImTaHjFwGyIgGFxHYW7Kx2F6l3RuijEGQ1L+Qha46g5dfwmZFOiEUF8+AVmAx0kzWGKKGqKNnT6754rhlp6pcjz9BCPN2SmpIVTq5QK3vkJMBJEhy2H1HRrGY+bQDOgoGg/06chjwZiuO5JBobXRKWVbWBsE6Uayuug9UYJFTrHQ6kAnIC2oNKKeHl4P1KVekh4tgozMj6jjGFmCLa8mngS9tZZ3yaiIq40cPG1vh3dxsE+hWxjqeGUBYos440OAdWu1s4lDeCINYvp++8pMw6TTy6j8dQnL+l5gDqrTy6lpKzO6fw8QBx+2aeUDKY2iW7O1GDH3kLY7QGdGeYzrC5eGCiBgboi3fO+0YOSq2x5wbb7WE4O2XKnnNJxp9x3jUwQeIFHa8pFXikB+ZwgHd44mMdvcdveC7gG0kyv1X7qH18lCAP4A3AXk69nzx1OqAYjObz1uGDKfLiXZ2bl959HTLs7ic1Jy2SnHcrPt+WDxF24+QcifDOMyDj9qUK+di7eYhpiHLk4wJlj9yeYYZRgcuD87SZ1Q2to1jfg0mdXAJCL+s8xiIW3SIdGqI1UPlzqmMXH/0nNfdYeK//5LEZCpSNQBfjTeiw+SNc3ASXj7GuBzC53dIkJFCZMDMBg3YmaBqwxKqt5gujfqFXWcuM53Xk79N2RVxb/phIeBP3x9oyogLs6qs4JNErC0eckOQJ+fQBPKkyDlmEV04yx/3EqWzYOn5xmM4ouUiVk3eAE1c/TNFbefdgEDVv19rb9ptun11xvyhJVAAQ9OF9u86A5eL1densEYa8v0FTlCZS5oxA8GwEpG5XybcatUC937hkaWCpDKOrrOg1Ozp5OURhCD3GqnqwrJF4oQjiqSSI8gSFLc/C0SHJAmynm/Q53sw7rn5IFkFGjVh8x1IRFm7v9YSF567Cz6Z3poIBP0t3TjNTrX6sruk55476flYbnZmA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 306207e2-580f-428c-8143-08da0afa424f X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:39.8685 (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: kK3rcoL8bYYGWEnwgbwcEL9aN5+zOUv6SyeOxwxTZ6Wd4hK7CqRId/TqtSq2HeMwzOv/NVIGFWXXZZXu1MdGdQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 bulkscore=0 phishscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: T1yhU5bpE6x_NIgy2Dplkv11NFsI-IfR X-Proofpoint-ORIG-GUID: T1yhU5bpE6x_NIgy2Dplkv11NFsI-IfR Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This commit also prints inode fields with invalid values instead of printing addresses of inode and buffer instances. Signed-off-by: Chandan Babu R Suggested-by: Dave Chinner Reviewed-by: Dave Chinner --- fs/xfs/xfs_inode_item_recover.c | 52 ++++++++++++++------------------- 1 file changed, 22 insertions(+), 30 deletions(-) diff --git a/fs/xfs/xfs_inode_item_recover.c b/fs/xfs/xfs_inode_item_recover.c index 44b90614859e..96b222e18b0f 100644 --- a/fs/xfs/xfs_inode_item_recover.c +++ b/fs/xfs/xfs_inode_item_recover.c @@ -324,13 +324,12 @@ xlog_recover_inode_commit_pass2( if (unlikely(S_ISREG(ldip->di_mode))) { if ((ldip->di_format != XFS_DINODE_FMT_EXTENTS) && (ldip->di_format != XFS_DINODE_FMT_BTREE)) { - XFS_CORRUPTION_ERROR("xlog_recover_inode_pass2(3)", - XFS_ERRLEVEL_LOW, mp, ldip, - sizeof(*ldip)); + XFS_CORRUPTION_ERROR( + "Bad log dinode data fork format for regular file", + XFS_ERRLEVEL_LOW, mp, ldip, sizeof(*ldip)); xfs_alert(mp, - "%s: Bad regular inode log record, rec ptr "PTR_FMT", " - "ino ptr = "PTR_FMT", ino bp = "PTR_FMT", ino %Ld", - __func__, item, dip, bp, in_f->ilf_ino); + "Bad inode 0x%llx, data fork format 0x%x", + in_f->ilf_ino, ldip->di_format); error = -EFSCORRUPTED; goto out_release; } @@ -338,49 +337,42 @@ xlog_recover_inode_commit_pass2( if ((ldip->di_format != XFS_DINODE_FMT_EXTENTS) && (ldip->di_format != XFS_DINODE_FMT_BTREE) && (ldip->di_format != XFS_DINODE_FMT_LOCAL)) { - XFS_CORRUPTION_ERROR("xlog_recover_inode_pass2(4)", - XFS_ERRLEVEL_LOW, mp, ldip, - sizeof(*ldip)); + XFS_CORRUPTION_ERROR( + "Bad log dinode data fork format for directory", + XFS_ERRLEVEL_LOW, mp, ldip, sizeof(*ldip)); xfs_alert(mp, - "%s: Bad dir inode log record, rec ptr "PTR_FMT", " - "ino ptr = "PTR_FMT", ino bp = "PTR_FMT", ino %Ld", - __func__, item, dip, bp, in_f->ilf_ino); + "Bad inode 0x%llx, data fork format 0x%x", + in_f->ilf_ino, ldip->di_format); error = -EFSCORRUPTED; goto out_release; } } if (unlikely(ldip->di_nextents + ldip->di_anextents > ldip->di_nblocks)){ - XFS_CORRUPTION_ERROR("xlog_recover_inode_pass2(5)", - XFS_ERRLEVEL_LOW, mp, ldip, - sizeof(*ldip)); + XFS_CORRUPTION_ERROR("Bad log dinode extent counts", + XFS_ERRLEVEL_LOW, mp, ldip, sizeof(*ldip)); xfs_alert(mp, - "%s: Bad inode log record, rec ptr "PTR_FMT", dino ptr "PTR_FMT", " - "dino bp "PTR_FMT", ino %Ld, total extents = %d, nblocks = %Ld", - __func__, item, dip, bp, in_f->ilf_ino, - ldip->di_nextents + ldip->di_anextents, + "Bad inode 0x%llx, nextents 0x%x, anextents 0x%x, nblocks 0x%llx", + in_f->ilf_ino, ldip->di_nextents, ldip->di_anextents, ldip->di_nblocks); error = -EFSCORRUPTED; goto out_release; } if (unlikely(ldip->di_forkoff > mp->m_sb.sb_inodesize)) { - XFS_CORRUPTION_ERROR("xlog_recover_inode_pass2(6)", - XFS_ERRLEVEL_LOW, mp, ldip, - sizeof(*ldip)); + XFS_CORRUPTION_ERROR("Bad log dinode fork offset", + XFS_ERRLEVEL_LOW, mp, ldip, sizeof(*ldip)); xfs_alert(mp, - "%s: Bad inode log record, rec ptr "PTR_FMT", dino ptr "PTR_FMT", " - "dino bp "PTR_FMT", ino %Ld, forkoff 0x%x", __func__, - item, dip, bp, in_f->ilf_ino, ldip->di_forkoff); + "Bad inode 0x%llx, di_forkoff 0x%x", + in_f->ilf_ino, ldip->di_forkoff); error = -EFSCORRUPTED; goto out_release; } isize = xfs_log_dinode_size(mp); if (unlikely(item->ri_buf[1].i_len > isize)) { - XFS_CORRUPTION_ERROR("xlog_recover_inode_pass2(7)", - XFS_ERRLEVEL_LOW, mp, ldip, - sizeof(*ldip)); + XFS_CORRUPTION_ERROR("Bad log dinode size", XFS_ERRLEVEL_LOW, + mp, ldip, sizeof(*ldip)); xfs_alert(mp, - "%s: Bad inode log record length %d, rec ptr "PTR_FMT, - __func__, item->ri_buf[1].i_len, item); + "Bad inode 0x%llx log dinode size 0x%x", + in_f->ilf_ino, item->ri_buf[1].i_len); error = -EFSCORRUPTED; goto out_release; } From patchwork Mon Mar 21 05:17:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786813 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 92BC0C433EF for ; Mon, 21 Mar 2022 05:19:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344386AbiCUFUa (ORCPT ); Mon, 21 Mar 2022 01:20:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344381AbiCUFUX (ORCPT ); Mon, 21 Mar 2022 01:20:23 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E71834B97 for ; Sun, 20 Mar 2022 22:18:58 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22L3WgxL031204; Mon, 21 Mar 2022 05:18:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=Mf0V+WNwsLvjP5l+lSCNou9WCdgN2IiWVlno9uL470E=; b=l3Bvd6R6l262qEozIllHJRKIKU3/pdg16Djqm9AHJUlfpKVFvuQrEMkAQEV+DPvJeJsQ 7znKfR1MeGaewfJ1mxiqXGhKwVpqoQ+Q6usKMEvLeIw12aLPgKUxCIKJdr2+mR5MP6LU 4SyOaEChNp52MtMBc5bzoLDc1XFz+9yvnuoh+iodTgCYIPQjHHFMkE0FDj6LfB+reJms Jne5SnMQl4LXNKM5qEkhkshiGtjXgh2SpDZ4bmHv44T9gx2Xg6RcJ/W4JGLbQ7OuW2L0 VhxBg63+3oa2tlDItl4YQv6/+Vs3+PZd6ZiKWd6KUlHZw3MiSOUGaqygI7bCb+c1SdDq WQ== Received: from aserp3030.oracle.com ([141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew5s0j50x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:45 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5Iil0123696; Mon, 21 Mar 2022 05:18:44 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2040.outbound.protection.outlook.com [104.47.56.40]) by aserp3030.oracle.com with ESMTP id 3ew578rnt7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bO5z0mJSfn8OjmJYTKzCu/DfNSH9erkp28UHKimgkAxqdQIjDk103rsBFYNdfBprHyXLhu5/VRT5h7/HnXb9HZ7HZtZXzx2DvBFZrP9oPuBZxGe2Q2Smqfb4PKCrYOvoBLD/1FYfHsQ1MrS46ZKuK+3fEKv086zt2Rg8KyyklZ/GC3D7NqArD/nLdPthIrLYPqwloP10AhCUvwZCW3i55Ncl2AFEQ0FD4/bMDnKSwIS11qUIdzWz7yPMnt5uYjBM464jCo0Jo2m1W36+bQgCnixK0gWN8h87yM2g3PH2m6W4jLhKyYN2y2aMDUqCn1U/hnMTx6huxu1WDrr8ExlbkA== 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=Mf0V+WNwsLvjP5l+lSCNou9WCdgN2IiWVlno9uL470E=; b=EHpFtPxsEGds6R5n/SPPm7QTmw9pH1irNjjLSu/ZgjUEgZ1kl+WOFPA+15P8ZnaZ/PS8jPYMUZPDltcncTZ+uwZC1dcR9PyibNGd5lYzDpCuRlq2U2nvN75lbfhZbDBByzVSW7d6i5KiaxSr/+3GGU0s2ejYagrUuuddKyEk51/JFa23yzcoX/JYf4+gpSKv+qxHn6ppFGc896FCjDZGwkv588mCZR5B2sitJUjmmcbJll2Olvdtfjs9iQpQst71q6g3YcQ6AtonVI1GuVlOvSdp8aVuCDVmRmeP0ulwbqBKBZ6w5bOX3LcxSqvRuG//5TkVP31hUYjDTI2pMZuGAg== 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=Mf0V+WNwsLvjP5l+lSCNou9WCdgN2IiWVlno9uL470E=; b=GrI1aNtxyi+1YPOHiL1FpSY+hXah8UY2J2Cl6I4Iofv/FrbpNCbdr9z7UN4ImUHtPEptJ7rMmjYbZ6YUnmjN5xlf11H8k+h61RyqvRLP6ChWmXZTVnqvs4PCEx8m5yer4CZ03EOk/qKxyFbrZEJufqzS9mYkSpx0TIM2fDrfFxE= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:42 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:42 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com, Dave Chinner Subject: [PATCH V8 14/19] xfs: Introduce per-inode 64-bit extent counters Date: Mon, 21 Mar 2022 10:47:45 +0530 Message-Id: <20220321051750.400056-15-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5f31eb74-b53c-49a7-857c-08da0afa43b0 X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: fOWwNXfa78RToWxTfbVitySa9FSHaaKklq/Pc06fcvnWgPn/WQSX7np1GxyPXKPGDrE01xJq+sE1CaBiYDT8vQihOj3zzQIXQutMPW8Bu73kdw3SaeYlcJq0onfm/Tm9Ig0YalEUkbT6DZ9jK9fupIHE+4rRja5Mxf6eOYRLhO2p2cjfOrCtUuXHriUuJEVUPo/KU7TLmd+dpXXxaB1WD/SzTDA+miYcxeATFkvulGdoe+BB2Zx0nYH+U2Xp4InILikMGykFd3cov4dJO2L/d602Rznaqggngv9IXJBY44Tw0fzqK4mkqZ0YV7ycKtVrfn0Q5nDZzHImKX4ux0SODUdDT3UkP0GGbaiCGc2oixRrzbuUrxTijVhc1KttNb5WDzhmqJd8G0HLx5gxo2fYUWc1g1wRLgD/qE2Jmzq8T2/VGjb8HV6c/yRWWj6yGYa269ArywsDCND71afkT3E9eTTJbZ06+yKashSgPjdB7Zn65dTlo1Pmgy8W9XEeRaK9vfNiRTQR+XKJrj7PDfo2mqiSrdWEbpiIejzuFdyBwOR+mOnAovmqneQxvg52tK3Eoee4FMQJXySM947MkZAbpQJ4ImpVHOWRNPjDVg5UJs7BCCedp/tgOiXv2GgMpR46Buy9qQ0tYcniMvlIQbDXUYaiY1Wl1fw1fXNXTpJ5YLTLDBQOysfqCeEG27l+6F0sFq1BO+lg4N36AtV9g7tlqg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(54906003)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(30864003)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: piKHmvfOnlVQnujXRO5K8BeQHEwpkNUa/mYB5FCgezUKX+f7cJM+Ku//PxcumlmCK2J0FPSCKW7wJP1jCWvKOwFpJmHE8klRgjV5+JG6eSXcPDeQHbMM8FpB6abMVV0p4tbx4qjLQWLjAdLQ/sadOh01j1ZsWH8c6ZUWO0fY+HOj1kQkYnr5wk5Fgxwnq/1SOkpG8lyvYVUWZfDlM3mXccsYOgCQp4qnc5NEqTd66jfAWK/DaGDpwrd+2Ttpkd2FQZhdY4ZS+nfIsTLpavsPtaV+syVmCHSmPAp60zUUfTMPKFNX3KPE5fc1Crolea8HxM6iYji0JvtBr0T1oYKIa6i6P77V9zZ7sKlRjIhox9slX/asGfn0l3zdr6wf4exbnHrxwdx6iXcnxz02Q2C7H+Uj6xHiPG1+pPoNezi4Xe0wtqEzGuEHS6HZGHUeM/D9o9xdQzKYCmPuO9+HqEG1Em2nZ54z7jNB966syi6RB7LtruYNftGoUHHOtrESX5L/SQa0ZSLBzHwpGelH34tRTB7HyRpdQFZhqJ815sX+j18QMKZzI4THNrcG99zaopVKH6u+vvTpS0YQY16LHfShTWf9jVYVQTwKDTgKoguNcouBfzYJaVWiSeY90I6d3nEFKPPd0/gDWltiTpP2GmlNzd+c8iQGP6YFepwm2O42EL+qqmWoaNkbHdwV9VjAe/gi5ip8jabPnaSDb0DzQj4ijZLT7xJ5vtFJLaKwc0bwwmhzAwkH6PmU13JL9dmB3iwuCWvnqaltR/3HeCtWr5HQ4OTfxCLJmPLuIBwikphcijGEtnTMJkLf42knNGh+Iwiu77tO4muigXOrX6Lp8x3DP4+NU1c+lR/0KaSXV6l2bnIRRn+YwSu8rU88ksJi/IRprTr6Q2Tq5utTxXncgxhyHkzOAgpAHIN7nRJK3xCSUveBHKjsSJ/B8l6r0oIgBZaFhc30+d7gnR2o7KP8B6egSK2iGCeWtiXcqjKATB5Uzg25UOYAEOClXouioRxHKS23GqBdxbRABzwweL3GJkDfaCK52ixqtoo5GMVodCx1f1yN22VF263r/YFxUjueCSqugFZoWVAPbhbSQeMwtYuTWRTvJkkFC4L6Zf2BYY6AcgKd/hgOEBcQACsSEuUjZ8axtcQ3Ah5m+Dp7Pw+C4xnqDLyxvg9PjYM9xr9WfI/rPFoL4SaDAispXLz2x+VjBdzvRPQ6kcW2Fd5CsZ7R9/aSYXKSrU+dDl6UIVywTP6BJlir+Mw/mmq1paJ7m6wrJacTIiS6Ow5+jWPV/J8Qd1pY8G48KSEbEF8jRVjG9h/rBJqnMuc1aPxOuhq5qU7PJAsk7EpWMmz3UPxdB0E6V7spEy321G7ZsFWAuhx/pDZ6txkZqnwDQARkadLCjXZ0M36DOgDJTkhDx3dlDMbGPjSKzLXfYIGnAgU6QSb17BB7dCTAQ2lNgdDzNY4McqFuTeDKDmB+0Dz+KrGPiC9gXHsw5g== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5f31eb74-b53c-49a7-857c-08da0afa43b0 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:42.1964 (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: Fol8ktrwmuoyoR9uYZrLzgJ3s+olClmsEl4IJwEBgLWvcwCxhJDvhzk8/jUsh2wP10ykS5twDZDzKj0rH90jCw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: sDuCjVe_lutU-dA3gZDiAMsJOEAsx6DC X-Proofpoint-ORIG-GUID: sDuCjVe_lutU-dA3gZDiAMsJOEAsx6DC Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This commit introduces new fields in the on-disk inode format to support 64-bit data fork extent counters and 32-bit attribute fork extent counters. The new fields will be used only when an inode has XFS_DIFLAG2_NREXT64 flag set. Otherwise we continue to use the regular 32-bit data fork extent counters and 16-bit attribute fork extent counters. Reviewed-by: Darrick J. Wong Signed-off-by: Chandan Babu R Suggested-by: Dave Chinner Reviewed-by: Dave Chinner --- fs/xfs/libxfs/xfs_format.h | 33 +++++++++++-- fs/xfs/libxfs/xfs_inode_buf.c | 49 +++++++++++++++++-- fs/xfs/libxfs/xfs_inode_fork.h | 6 +++ fs/xfs/libxfs/xfs_log_format.h | 33 +++++++++++-- fs/xfs/xfs_inode_item.c | 23 +++++++-- fs/xfs/xfs_inode_item_recover.c | 87 ++++++++++++++++++++++++++++----- 6 files changed, 202 insertions(+), 29 deletions(-) diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index eb85bc9b229b..82b404c99b80 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -792,16 +792,41 @@ struct xfs_dinode { __be32 di_nlink; /* number of links to file */ __be16 di_projid_lo; /* lower part of owner's project id */ __be16 di_projid_hi; /* higher part owner's project id */ - __u8 di_pad[6]; /* unused, zeroed space */ - __be16 di_flushiter; /* incremented on flush */ + union { + /* Number of data fork extents if NREXT64 is set */ + __be64 di_big_nextents; + + /* Padding for V3 inodes without NREXT64 set. */ + __be64 di_v3_pad; + + /* Padding and inode flush counter for V2 inodes. */ + struct { + __u8 di_v2_pad[6]; + __be16 di_flushiter; + }; + }; xfs_timestamp_t di_atime; /* time last accessed */ xfs_timestamp_t di_mtime; /* time last modified */ xfs_timestamp_t di_ctime; /* time created/inode modified */ __be64 di_size; /* number of bytes in file */ __be64 di_nblocks; /* # of direct & btree blocks used */ __be32 di_extsize; /* basic/minimum extent size for file */ - __be32 di_nextents; /* number of extents in data fork */ - __be16 di_anextents; /* number of extents in attribute fork*/ + union { + /* + * For V2 inodes and V3 inodes without NREXT64 set, this + * is the number of data and attr fork extents. + */ + struct { + __be32 di_nextents; + __be16 di_anextents; + } __packed; + + /* Number of attr fork extents if NREXT64 is set. */ + struct { + __be32 di_big_anextents; + __be16 di_nrext64_pad; + } __packed; + } __packed; __u8 di_forkoff; /* attr fork offs, <<3 for 64b align */ __s8 di_aformat; /* format of attr fork's data */ __be32 di_dmevmask; /* DMIG event mask */ diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c index e0d3140c3622..ee8d4eb7d048 100644 --- a/fs/xfs/libxfs/xfs_inode_buf.c +++ b/fs/xfs/libxfs/xfs_inode_buf.c @@ -279,6 +279,25 @@ xfs_inode_to_disk_ts( return ts; } +static inline void +xfs_inode_to_disk_iext_counters( + struct xfs_inode *ip, + struct xfs_dinode *to) +{ + if (xfs_inode_has_large_extent_counts(ip)) { + to->di_big_nextents = cpu_to_be64(xfs_ifork_nextents(&ip->i_df)); + to->di_big_anextents = cpu_to_be32(xfs_ifork_nextents(ip->i_afp)); + /* + * We might be upgrading the inode to use larger extent counters + * than was previously used. Hence zero the unused field. + */ + to->di_nrext64_pad = cpu_to_be16(0); + } else { + to->di_nextents = cpu_to_be32(xfs_ifork_nextents(&ip->i_df)); + to->di_anextents = cpu_to_be16(xfs_ifork_nextents(ip->i_afp)); + } +} + void xfs_inode_to_disk( struct xfs_inode *ip, @@ -296,7 +315,6 @@ xfs_inode_to_disk( to->di_projid_lo = cpu_to_be16(ip->i_projid & 0xffff); to->di_projid_hi = cpu_to_be16(ip->i_projid >> 16); - memset(to->di_pad, 0, sizeof(to->di_pad)); to->di_atime = xfs_inode_to_disk_ts(ip, inode->i_atime); to->di_mtime = xfs_inode_to_disk_ts(ip, inode->i_mtime); to->di_ctime = xfs_inode_to_disk_ts(ip, inode->i_ctime); @@ -307,8 +325,6 @@ xfs_inode_to_disk( to->di_size = cpu_to_be64(ip->i_disk_size); to->di_nblocks = cpu_to_be64(ip->i_nblocks); to->di_extsize = cpu_to_be32(ip->i_extsize); - to->di_nextents = cpu_to_be32(xfs_ifork_nextents(&ip->i_df)); - to->di_anextents = cpu_to_be16(xfs_ifork_nextents(ip->i_afp)); to->di_forkoff = ip->i_forkoff; to->di_aformat = xfs_ifork_format(ip->i_afp); to->di_flags = cpu_to_be16(ip->i_diflags); @@ -323,11 +339,14 @@ xfs_inode_to_disk( to->di_lsn = cpu_to_be64(lsn); memset(to->di_pad2, 0, sizeof(to->di_pad2)); uuid_copy(&to->di_uuid, &ip->i_mount->m_sb.sb_meta_uuid); - to->di_flushiter = 0; + to->di_v3_pad = 0; } else { to->di_version = 2; to->di_flushiter = cpu_to_be16(ip->i_flushiter); + memset(to->di_v2_pad, 0, sizeof(to->di_v2_pad)); } + + xfs_inode_to_disk_iext_counters(ip, to); } static xfs_failaddr_t @@ -398,6 +417,24 @@ xfs_dinode_verify_forkoff( return NULL; } +static xfs_failaddr_t +xfs_dinode_verify_nrext64( + struct xfs_mount *mp, + struct xfs_dinode *dip) +{ + if (xfs_dinode_has_large_extent_counts(dip)) { + if (!xfs_has_large_extent_counts(mp)) + return __this_address; + if (dip->di_nrext64_pad != 0) + return __this_address; + } else if (dip->di_version >= 3) { + if (dip->di_v3_pad != 0) + return __this_address; + } + + return NULL; +} + xfs_failaddr_t xfs_dinode_verify( struct xfs_mount *mp, @@ -442,6 +479,10 @@ xfs_dinode_verify( if ((S_ISLNK(mode) || S_ISDIR(mode)) && di_size == 0) return __this_address; + fa = xfs_dinode_verify_nrext64(mp, dip); + if (fa) + return fa; + nextents = xfs_dfork_data_extents(dip); naextents = xfs_dfork_attr_extents(dip); nblocks = be64_to_cpu(dip->di_nblocks); diff --git a/fs/xfs/libxfs/xfs_inode_fork.h b/fs/xfs/libxfs/xfs_inode_fork.h index 967837a88860..fd5c3c2d77e0 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.h +++ b/fs/xfs/libxfs/xfs_inode_fork.h @@ -158,6 +158,9 @@ static inline xfs_extnum_t xfs_dfork_data_extents( struct xfs_dinode *dip) { + if (xfs_dinode_has_large_extent_counts(dip)) + return be64_to_cpu(dip->di_big_nextents); + return be32_to_cpu(dip->di_nextents); } @@ -165,6 +168,9 @@ static inline xfs_extnum_t xfs_dfork_attr_extents( struct xfs_dinode *dip) { + if (xfs_dinode_has_large_extent_counts(dip)) + return be32_to_cpu(dip->di_big_anextents); + return be16_to_cpu(dip->di_anextents); } diff --git a/fs/xfs/libxfs/xfs_log_format.h b/fs/xfs/libxfs/xfs_log_format.h index fd66e70248f7..12234a880e94 100644 --- a/fs/xfs/libxfs/xfs_log_format.h +++ b/fs/xfs/libxfs/xfs_log_format.h @@ -388,16 +388,41 @@ struct xfs_log_dinode { uint32_t di_nlink; /* number of links to file */ uint16_t di_projid_lo; /* lower part of owner's project id */ uint16_t di_projid_hi; /* higher part of owner's project id */ - uint8_t di_pad[6]; /* unused, zeroed space */ - uint16_t di_flushiter; /* incremented on flush */ + union { + /* Number of data fork extents if NREXT64 is set */ + uint64_t di_big_nextents; + + /* Padding for V3 inodes without NREXT64 set. */ + uint64_t di_v3_pad; + + /* Padding and inode flush counter for V2 inodes. */ + struct { + uint8_t di_v2_pad[6]; /* V2 inode zeroed space */ + uint16_t di_flushiter; /* V2 inode incremented on flush */ + }; + }; xfs_log_timestamp_t di_atime; /* time last accessed */ xfs_log_timestamp_t di_mtime; /* time last modified */ xfs_log_timestamp_t di_ctime; /* time created/inode modified */ xfs_fsize_t di_size; /* number of bytes in file */ xfs_rfsblock_t di_nblocks; /* # of direct & btree blocks used */ xfs_extlen_t di_extsize; /* basic/minimum extent size for file */ - uint32_t di_nextents; /* number of extents in data fork */ - uint16_t di_anextents; /* number of extents in attribute fork*/ + union { + /* + * For V2 inodes and V3 inodes without NREXT64 set, this + * is the number of data and attr fork extents. + */ + struct { + uint32_t di_nextents; + uint16_t di_anextents; + } __packed; + + /* Number of attr fork extents if NREXT64 is set. */ + struct { + uint32_t di_big_anextents; + uint16_t di_nrext64_pad; + } __packed; + } __packed; uint8_t di_forkoff; /* attr fork offs, <<3 for 64b align */ int8_t di_aformat; /* format of attr fork's data */ uint32_t di_dmevmask; /* DMIG event mask */ diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 90d8e591baf8..5a513eb4a631 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -358,6 +358,21 @@ xfs_copy_dm_fields_to_log_dinode( } } +static inline void +xfs_inode_to_log_dinode_iext_counters( + struct xfs_inode *ip, + struct xfs_log_dinode *to) +{ + if (xfs_inode_has_large_extent_counts(ip)) { + to->di_big_nextents = xfs_ifork_nextents(&ip->i_df); + to->di_big_anextents = xfs_ifork_nextents(ip->i_afp); + to->di_nrext64_pad = 0; + } else { + to->di_nextents = xfs_ifork_nextents(&ip->i_df); + to->di_anextents = xfs_ifork_nextents(ip->i_afp); + } +} + static void xfs_inode_to_log_dinode( struct xfs_inode *ip, @@ -373,7 +388,6 @@ xfs_inode_to_log_dinode( to->di_projid_lo = ip->i_projid & 0xffff; to->di_projid_hi = ip->i_projid >> 16; - memset(to->di_pad, 0, sizeof(to->di_pad)); memset(to->di_pad3, 0, sizeof(to->di_pad3)); to->di_atime = xfs_inode_to_log_dinode_ts(ip, inode->i_atime); to->di_mtime = xfs_inode_to_log_dinode_ts(ip, inode->i_mtime); @@ -385,8 +399,6 @@ xfs_inode_to_log_dinode( to->di_size = ip->i_disk_size; to->di_nblocks = ip->i_nblocks; to->di_extsize = ip->i_extsize; - to->di_nextents = xfs_ifork_nextents(&ip->i_df); - to->di_anextents = xfs_ifork_nextents(ip->i_afp); to->di_forkoff = ip->i_forkoff; to->di_aformat = xfs_ifork_format(ip->i_afp); to->di_flags = ip->i_diflags; @@ -406,11 +418,14 @@ xfs_inode_to_log_dinode( to->di_lsn = lsn; memset(to->di_pad2, 0, sizeof(to->di_pad2)); uuid_copy(&to->di_uuid, &ip->i_mount->m_sb.sb_meta_uuid); - to->di_flushiter = 0; + to->di_v3_pad = 0; } else { to->di_version = 2; to->di_flushiter = ip->i_flushiter; + memset(to->di_v2_pad, 0, sizeof(to->di_v2_pad)); } + + xfs_inode_to_log_dinode_iext_counters(ip, to); } /* diff --git a/fs/xfs/xfs_inode_item_recover.c b/fs/xfs/xfs_inode_item_recover.c index 96b222e18b0f..d6f536cd8d4b 100644 --- a/fs/xfs/xfs_inode_item_recover.c +++ b/fs/xfs/xfs_inode_item_recover.c @@ -149,6 +149,22 @@ static inline bool xfs_log_dinode_has_large_extent_counts( (ld->di_flags2 & XFS_DIFLAG2_NREXT64); } +static inline void +xfs_log_dinode_to_disk_iext_counters( + struct xfs_log_dinode *from, + struct xfs_dinode *to) +{ + if (xfs_log_dinode_has_large_extent_counts(from)) { + to->di_big_nextents = cpu_to_be64(from->di_big_nextents); + to->di_big_anextents = cpu_to_be32(from->di_big_anextents); + to->di_nrext64_pad = cpu_to_be16(from->di_nrext64_pad); + } else { + to->di_nextents = cpu_to_be32(from->di_nextents); + to->di_anextents = cpu_to_be16(from->di_anextents); + } + +} + STATIC void xfs_log_dinode_to_disk( struct xfs_log_dinode *from, @@ -165,7 +181,6 @@ xfs_log_dinode_to_disk( to->di_nlink = cpu_to_be32(from->di_nlink); to->di_projid_lo = cpu_to_be16(from->di_projid_lo); to->di_projid_hi = cpu_to_be16(from->di_projid_hi); - memcpy(to->di_pad, from->di_pad, sizeof(to->di_pad)); to->di_atime = xfs_log_dinode_to_disk_ts(from, from->di_atime); to->di_mtime = xfs_log_dinode_to_disk_ts(from, from->di_mtime); @@ -174,8 +189,6 @@ xfs_log_dinode_to_disk( to->di_size = cpu_to_be64(from->di_size); to->di_nblocks = cpu_to_be64(from->di_nblocks); to->di_extsize = cpu_to_be32(from->di_extsize); - to->di_nextents = cpu_to_be32(from->di_nextents); - to->di_anextents = cpu_to_be16(from->di_anextents); to->di_forkoff = from->di_forkoff; to->di_aformat = from->di_aformat; to->di_dmevmask = cpu_to_be32(from->di_dmevmask); @@ -193,10 +206,63 @@ xfs_log_dinode_to_disk( to->di_lsn = cpu_to_be64(lsn); memcpy(to->di_pad2, from->di_pad2, sizeof(to->di_pad2)); uuid_copy(&to->di_uuid, &from->di_uuid); - to->di_flushiter = 0; + to->di_v3_pad = from->di_v3_pad; } else { to->di_flushiter = cpu_to_be16(from->di_flushiter); + memcpy(to->di_v2_pad, from->di_v2_pad, sizeof(to->di_v2_pad)); + } + + xfs_log_dinode_to_disk_iext_counters(from, to); +} + +STATIC int +xlog_dinode_verify_extent_counts( + struct xfs_mount *mp, + struct xfs_log_dinode *ldip) +{ + xfs_extnum_t nextents; + xfs_aextnum_t anextents; + + if (xfs_log_dinode_has_large_extent_counts(ldip)) { + if (!xfs_has_large_extent_counts(mp) || + (ldip->di_nrext64_pad != 0)) { + XFS_CORRUPTION_ERROR( + "Bad log dinode large extent count format", + XFS_ERRLEVEL_LOW, mp, ldip, sizeof(*ldip)); + xfs_alert(mp, + "Bad inode 0x%llx, nrext64 %d, padding 0x%x", + ldip->di_ino, xfs_has_large_extent_counts(mp), + ldip->di_nrext64_pad); + return -EFSCORRUPTED; + } + + nextents = ldip->di_big_nextents; + anextents = ldip->di_big_anextents; + } else { + if (ldip->di_version == 3 && ldip->di_v3_pad != 0) { + XFS_CORRUPTION_ERROR( + "Bad log dinode di_v3_pad", + XFS_ERRLEVEL_LOW, mp, ldip, sizeof(*ldip)); + xfs_alert(mp, + "Bad inode 0x%llx, di_v3_pad %llu", + ldip->di_ino, ldip->di_v3_pad); + return -EFSCORRUPTED; + } + + nextents = ldip->di_nextents; + anextents = ldip->di_anextents; + } + + if (unlikely(nextents + anextents > ldip->di_nblocks)) { + XFS_CORRUPTION_ERROR("Bad log dinode extent counts", + XFS_ERRLEVEL_LOW, mp, ldip, sizeof(*ldip)); + xfs_alert(mp, + "Bad inode 0x%llx, nextents 0x%llx, anextents 0x%x, nblocks 0x%llx", + ldip->di_ino, nextents, anextents, ldip->di_nblocks); + return -EFSCORRUPTED; } + + return 0; } STATIC int @@ -347,16 +413,11 @@ xlog_recover_inode_commit_pass2( goto out_release; } } - if (unlikely(ldip->di_nextents + ldip->di_anextents > ldip->di_nblocks)){ - XFS_CORRUPTION_ERROR("Bad log dinode extent counts", - XFS_ERRLEVEL_LOW, mp, ldip, sizeof(*ldip)); - xfs_alert(mp, - "Bad inode 0x%llx, nextents 0x%x, anextents 0x%x, nblocks 0x%llx", - in_f->ilf_ino, ldip->di_nextents, ldip->di_anextents, - ldip->di_nblocks); - error = -EFSCORRUPTED; + + error = xlog_dinode_verify_extent_counts(mp, ldip); + if (error) goto out_release; - } + if (unlikely(ldip->di_forkoff > mp->m_sb.sb_inodesize)) { XFS_CORRUPTION_ERROR("Bad log dinode fork offset", XFS_ERRLEVEL_LOW, mp, ldip, sizeof(*ldip)); From patchwork Mon Mar 21 05:17:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786812 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 C7C5BC43219 for ; Mon, 21 Mar 2022 05:19:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344384AbiCUFU3 (ORCPT ); Mon, 21 Mar 2022 01:20:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53530 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344385AbiCUFUW (ORCPT ); Mon, 21 Mar 2022 01:20:22 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3AA6B344CA for ; Sun, 20 Mar 2022 22:18:57 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22L54Ji4031878; Mon, 21 Mar 2022 05:18:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=oW1KN6VbAfM5lK47B/S92vOMY1WkQFMCIC7pIn0qbpA=; b=QxLIuYOnZUFXOn1+H+oApeo94XDPxIYrXVcFWyR9cOFXVzODXHVoKG9ttAfviwrn8SPo mt7KD7vrZjpp2qsJOGMgFD6tsUyMzVu8Hu4rA7Zs1lW5Gmx12RnNurdtFny7EgxD8MvL Mjj8fxP/csjTz5gjI7NytC32eXBvXOzE8G4yknh2YuWOapl6kOkAyjd1MnA8DbB38Mld 2+8JtKPg/nboq5VL5WuBpB3U20F/CaGj/iiMDfUalV3J+ufZtdywlVsO8h3kak73G6S6 WTkvgxfGGwe/MJ4hsebdhhnwRDoKvUhGKLMlHltZqb2cWz4OLl5mMwqV35QWxYWEzrzs VA== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew5s0j510-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:54 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5FvGu057853; Mon, 21 Mar 2022 05:18:46 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2048.outbound.protection.outlook.com [104.47.56.48]) by userp3020.oracle.com with ESMTP id 3exawgev3v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jHzg+HmCEIzzDd5/bXoMsmM/GQ+MYUOA74/erd3fX3Sa/SOZSOO4ajLiaWQE4QEXBG9X9h7w+XVHnU6YDaCxIsp8Lv+m5EDXnILt1K1PIpMjp6/Z+QOQHl0Z8C7k7vd6njt4gszLqTPFdw9PI0sNRJGx89tXi/QtMyDNo/v5YYVcq8pZ1XnY3OJtz9AdnrosuuYYIrlbf9BQA3eRusgUPc5fQl2BYiH2q4G4GQDtVN8hceHMB9hlaT35dRI/eNMLjAsQ/Z5t/CG+It+vtSpTfGGfWzNoMhjn5eGPHLxiHfnlKKx5z7q/HSY0PwZ/ZGFopPWhgj/zfYccVHEA96nnhQ== 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=oW1KN6VbAfM5lK47B/S92vOMY1WkQFMCIC7pIn0qbpA=; b=fkDl/aVI58R1UNngigBCx7/BFfTvHXqOrkAfqDBsR84DcMAB+LDm3pGgVyFh2rfQbwnUnHSxhkl7Y7MMHi/z+Yre2M/PGrgTm6fZTAATTk2NLqosJJNlbvGFf4y97TELM7G0l3ooqctxNW1KQukZ4bLOGWSluFp28q1Toij9UQf9HBs+o7pcfuETrpWX/94kVlV4YcHye8cUFLXlarlahhckNFjGdqfIP/C9Lr7lHVR54Fh33WS+caiMARO/tW6ZRypaWCevJgYgVph/6VFtSyLiv+mWUBRsbj5iDX9UBIBoUKRsV9OHEU6Igigas7rX0B0+aiDuS4H3i4SAuTsZlQ== 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=oW1KN6VbAfM5lK47B/S92vOMY1WkQFMCIC7pIn0qbpA=; b=ekqnXILLmn8fJiiSFT36/VagjJKKZNH1dOKMXfxslEm546VnB4B/tv/BtiwJN9zZLtLLkY7DTEkZBloy+9cFfTRGavsPHA9S569ALROKNg633xBK7t+gKTwc+beXJBb9TRo7+nflUk82PYWivkDsXLe5lGsJ7PB5wq6tM3pkTJU= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:44 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:44 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V8 15/19] xfs: Directory's data fork extent counter can never overflow Date: Mon, 21 Mar 2022 10:47:46 +0530 Message-Id: <20220321051750.400056-16-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 78e9080b-b9d6-4b6f-f9fd-08da0afa44e8 X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: HHQIN4EXlMLhwk5cVZSoePhV2r9wxhXoDwfmzJBEmSX6TfoHCqNsmzbIJsa3oA59I3jpOHJ9EXgiaOXbn0zxex7uSYT7Zp38m9EAFK27IXwd8eXQvnxWiRJQwQY7FhrFdYxW9nd0HEScE0xdvt1J4r+KoBLfOnUapl84idtX3dKzi8+j2CdqgFOZsi//p7+y7sCHnehsR0EefDvnI7lou16mj9u58LklkSEPT3Dv+V3qjpaS4J99ahQfzMUz4z8Vvr4W1fTRwTSkHlWI13S8JqPkwwvZcNyV4c7wSDNrWi6egO4Aw337LBKDdtlr+lFShik0UE6a2ZCHIPizd7v//vi9FdpO1dCXD9S0etuYtCO/MeB8UiAIbb0g+RX6z4pQTbk11RsTku5RajIMP71QHG7I65GKFskuEA0ZVTrzgNy/3JL+olqYZW3YyWmzLqInOSPW5h495Idl2GNXaIgVPVrkx4rFH/NXku9qQo+4Wa29lHfFAOsrcZiW2xSX+XfSZP0LeOIVLdmwqyhExW/Rjvc1sdezxZ5RXyxn3HOxAlBW6LgEViymm5robAH7wLbrJHOt4NG9zv2gdD3kEoNaSjU8UG0PPf7WU3Q5fbfe2xoLnWLRBfWcZeP0O2v/eaJs6Z37Y54yiJTXrwn3Z7PjPUN4cUzA+rDWMarkPzl2DxXaS8jVnL/4LqALg8tFr4IClLsxIBf2kgnCblXH6TRWgA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VR/FawIYf4WbXznhqmlhgpIt+Bntq8broXmDjNS/ODVvS8m+SgzKeImiZnL40icr+ORfSQ8iAAjH+lbnkKmnACfJcjBVJcCgLVGOCQj7HOAsaGb3t7wV+cknnCyBJYWZbvLXtO1J9DrAyvOUstqhVj8MFN0UkoAZKFTlhNUMDKpPw75gS5Xb/j10httHPELtn/FPylYesJ644XhL+zkBg3w3Vf++AjYrB5alqgVonNdMR4feH/qne6RSh8w63D+dPMsBNEIWw2HjJqK2f/QzAg8SikxUKbpjWzwm/GiV7G+yMGMEsyO1yUe1cfhr1iRZrnB4NgikRIba8LPrrEJmpWsGi9OQnikxx1gIp8jR8xfMnahbeewMrtNcirO12rJ43eZI0NHIPr6PZbpxvY5fGpbjNjjtcmhatfY83fTHDa7viKlQ5QNvgIgzj96Z7p4H4XmtuVNdzvHpLoTtUuLiCEjfwX8BAA8MZGEepMPOmfSnBI8vvje3CXQ5wZzEtj6N1hVdlINZVXs4WXAZXzExyjW6zWxOYgu/ik45VBHjt6XvE+8if0Ex5tI0oLGaFevHR/E+p0J5b9OvRq/nVIgVgx5egLn0iqzfgXYdeE76iZb6ex7yLWEDTUVXo3yLytqfqMhXGfH6nIw644s0FmjB8heiiYRchswNzWr2+TsgeYIQP+f+uN5MI5JitXddixN7v5eZxBR44MYHMmAK9ZIb8V8rcRwer3WQMAvcusOBQexeBZgL6tXMsvlX8u9cDOt/DO9XdKiuxSfWqvMJuLUVSISOSrLZxiRNwKpXSELYVY7t+2VtXF4s2RSmKyFp9ikQDm3ZNGNlgv6E9kQ609U591i4mQ/ahoJ5T18c79QhEMlcxxkSndJIb1R1Fm31SnFs7uvlt9JipprJ29LtKuKtzQ7EY2pI7b/+j4hegAitcYfdto33vbUudaVXgk+irrZJbxsbY0ywtAEY6niTcV7AAco3cNIvVCx52GdhgmNXQOUYdowCQ+LVdt6+InA/C38vMUcuKUgCPVS3AhHbn4vi1L+bUxZwPDWH1KxfKtJpm0wQPcqmGAETa5c7H0gthkWq1feyMmPYkf/TT+lA0aCROrPhVrvmDmGMCILn20neYmkwDo8wS/ynvGT/GzvdSWEmoQUA5/R3+jhib8nKRhct85TynL+1N7edutFfCkMlfGg/QeFURX+AquwxXPJpkgZ4nWusKSYqGVbomcoD9pHK3NwFLVyKuEaq5WTUVxt78SSHEu4ZERZdYcYJh7zOTiGzzpZYhnSe7uK0QGZE9azQp9eVB3Tu+OWzjH1qZOj7GdrmnLL3iTnQxTaeXrBPsfCfYdNLWyOy0grDFHxzzfogIuDXnOO1sBF11TJ5p/HCS1UyYi8VuGrov0w3HQVBVPFGMmPSseQEIEN63Z5ojoEV6mMX+LvXoWQeFsH1yRvvi/za2p8ezB/xiWuvQzshIicgh7bYeHqY3ssX7X0O2HY3nQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 78e9080b-b9d6-4b6f-f9fd-08da0afa44e8 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:44.2284 (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: B1PD7XNaj/bHtqZ51P9MdJpJ8m0QaQbVxBKeZcEMcZKAyuwrtEODy55NniPn5PyeDpK88BR+VwPg3ZsL1vmYmg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: G1s3Kg7J8vsWM_X3PZsR4BvpQ3zXsUym X-Proofpoint-ORIG-GUID: G1s3Kg7J8vsWM_X3PZsR4BvpQ3zXsUym Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org The maximum file size that can be represented by the data fork extent counter in the worst case occurs when all extents are 1 block in length and each block is 1KB in size. With XFS_MAX_EXTCNT_DATA_FORK_SMALL representing maximum extent count and with 1KB sized blocks, a file can reach upto, (2^31) * 1KB = 2TB This is much larger than the theoretical maximum size of a directory i.e. 32GB * 3 = 96GB. Since a directory's inode can never overflow its data fork extent counter, this commit replaces checking the return value of xfs_iext_count_may_overflow() with calls to ASSERT(error == 0). Signed-off-by: Chandan Babu R --- fs/xfs/libxfs/xfs_bmap.c | 19 +++++++++---------- fs/xfs/xfs_inode.c | 32 ++++++++++++++++++++++++++++++++ fs/xfs/xfs_symlink.c | 8 ++++++++ 3 files changed, 49 insertions(+), 10 deletions(-) diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index 1254d4d4821e..5a089674c666 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -5148,24 +5148,23 @@ xfs_bmap_del_extent_real( */ /* - * For directories, -ENOSPC is returned since a directory entry - * remove operation must not fail due to low extent count - * availability. -ENOSPC will be handled by higher layers of XFS + * Extent count overflow during directory entry remove/rename + * operation ideally should result in -ENOSPC being returned. + * This error will eventually be handled by higher layers of XFS * by letting the corresponding empty Data/Free blocks to linger * until a future remove operation. Dabtree blocks would be * swapped with the last block in the leaf space and then the * new last block will be unmapped. * - * The above logic also applies to the source directory entry of - * a rename operation. + * However, a directory inode can never overflow its data fork + * extent counter because of reasons provided in the definition + * of xfs_create(). */ error = xfs_iext_count_may_overflow(ip, whichfork, 1); - if (error) { - ASSERT(S_ISDIR(VFS_I(ip)->i_mode) && - whichfork == XFS_DATA_FORK); - error = -ENOSPC; + ASSERT(XFS_TEST_ERROR(false, ip->i_mount, + XFS_ERRTAG_REDUCE_MAX_IEXTENTS) || error == 0); + if (error) goto done; - } old = got; diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 6810c4feaa45..6016013658ff 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -1023,8 +1023,25 @@ xfs_create( xfs_ilock(dp, XFS_ILOCK_EXCL | XFS_ILOCK_PARENT); unlock_dp_on_error = true; + /* + * The maximum file size that can be represented by the data fork extent + * counter in the worst case occurs when all extents are 1 block in + * length and each block is 1KB in size. + * + * With XFS_MAX_EXTCNT_DATA_FORK_SMALL representing maximum extent count + * and with 1KB sized blocks, a file can reach upto, + * 1KB * (2^31) = 2TB + * + * This is much larger than the theoretical maximum size of a directory + * i.e. 32GB * 3 = 96GB. + * + * Hence, a directory inode can never overflow its data fork extent + * counter. + */ error = xfs_iext_count_may_overflow(dp, XFS_DATA_FORK, XFS_IEXT_DIR_MANIP_CNT(mp)); + ASSERT(XFS_TEST_ERROR(false, dp->i_mount, + XFS_ERRTAG_REDUCE_MAX_IEXTENTS) || error == 0); if (error) goto out_trans_cancel; @@ -1249,8 +1266,15 @@ xfs_link( xfs_trans_ijoin(tp, sip, XFS_ILOCK_EXCL); xfs_trans_ijoin(tp, tdp, XFS_ILOCK_EXCL); + /* + * Please refer to the comment in xfs_create() for an explaination of + * why a directory inode cannot have its data fork extent counter to + * overflow. + */ error = xfs_iext_count_may_overflow(tdp, XFS_DATA_FORK, XFS_IEXT_DIR_MANIP_CNT(mp)); + ASSERT(XFS_TEST_ERROR(false, tdp->i_mount, + XFS_ERRTAG_REDUCE_MAX_IEXTENTS) || error == 0); if (error) goto error_return; @@ -3232,9 +3256,17 @@ xfs_rename( if (error) goto out_trans_cancel; } else { + /* + * Please refer to the comment in xfs_create() for an + * explaination of why a directory inode cannot have its + * data fork extent counter to overflow. + */ error = xfs_iext_count_may_overflow(target_dp, XFS_DATA_FORK, XFS_IEXT_DIR_MANIP_CNT(mp)); + ASSERT(XFS_TEST_ERROR(false, target_dp->i_mount, + XFS_ERRTAG_REDUCE_MAX_IEXTENTS) || + error == 0); if (error) goto out_trans_cancel; } diff --git a/fs/xfs/xfs_symlink.c b/fs/xfs/xfs_symlink.c index affbedf78160..0e5acb00c59f 100644 --- a/fs/xfs/xfs_symlink.c +++ b/fs/xfs/xfs_symlink.c @@ -23,6 +23,7 @@ #include "xfs_trans.h" #include "xfs_ialloc.h" #include "xfs_error.h" +#include "xfs_errortag.h" /* ----- Kernel only functions below ----- */ int @@ -226,8 +227,15 @@ xfs_symlink( goto out_trans_cancel; } + /* + * Please refer to the comment in xfs_create() for an explaination of + * why a directory inode cannot have its data fork extent counter to + * overflow. + */ error = xfs_iext_count_may_overflow(dp, XFS_DATA_FORK, XFS_IEXT_DIR_MANIP_CNT(mp)); + ASSERT(XFS_TEST_ERROR(false, dp->i_mount, + XFS_ERRTAG_REDUCE_MAX_IEXTENTS) || error == 0); if (error) goto out_trans_cancel; From patchwork Mon Mar 21 05:17:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786809 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 D4A5EC433EF for ; Mon, 21 Mar 2022 05:19:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243205AbiCUFU0 (ORCPT ); Mon, 21 Mar 2022 01:20:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53422 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344376AbiCUFUU (ORCPT ); Mon, 21 Mar 2022 01:20:20 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0EB8633E3C for ; Sun, 20 Mar 2022 22:18:56 -0700 (PDT) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KK9IaW008859; Mon, 21 Mar 2022 05:18:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=OVUBl4DYKVJiDOKdvHTV78q0/fXz8IkkfxdYtdNvcnw=; b=iJ5/Kcnv1M7cvQA+/S+Fu+oZEuqXtULkajJy3yf0Buf6Y015SeXJoWNEHducwubRzlKw 9XgpId8ZrLP1P4AFgjgJBBxpuA2pLUbhd2DNakCyd5RNde8xWLW9wi72bj/NfeEUgeog ZnNlhOobpMFe87VWZ9geRe0su09ww+c3hImr8MCRYbJFWKowi9i2BX8IIBAuuftJyqXn MSIoGiApx4c2mykAfnSPwG1GX5XjexxMsiMWzgYTxBXa+ujbKJdCPjknECWIpbFK0oSr G2s5AXZ57ynR0D1aSVkC4gp9QEzgqIyek65Md12dXE8kd6t/LbsvrSP86vMkRG5K9DPY gQ== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80] (may be forged)) by mx0b-00069f02.pphosted.com with ESMTP id 3ew7qt22vs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:52 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5Im57094853; Mon, 21 Mar 2022 05:18:48 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2046.outbound.protection.outlook.com [104.47.56.46]) by userp3030.oracle.com with ESMTP id 3ew49r2h0c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=liSXc//PKtj9RD54NUCjsXB2HycFaS0xLxNt0bPTug05vLEBo+oyGhUb2JvJg+qVY+mKoOq0qzrZqorJOcBGMqWD1D3GNoWooh4p3CJ0qS4eRjPcY5+5YOUX95udSu1Vh/UbKv1ZJa3HxInSun4qsNcC+a084U0eTfNwIr/jy/vSpooD8h/DiMB+1ythzNgS3UFuBsbLJUT1eGX1unkNSYGPSFaV12xWGjVA2dN+nhjy9xQ6LJPfhOKrR5QrXIqGmeFgplb95sZ/yH/cQqRp8dFRXL17Mdr7T3eeWnDk+k1wnFV9U8JbsgBH4WozKzvQMPrGu89iem8tDb+5pcFCIA== 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=OVUBl4DYKVJiDOKdvHTV78q0/fXz8IkkfxdYtdNvcnw=; b=Z3FDtlM5JpaY5SJ7oG/qDPm+ThAwkvK9tGRUtXoTbnH7hBpvkzu4h2BdyGn8wCC77q0IYpYtltqDCbqmJGnsIn0mCHsS7wiaXQTxRnPWXOSdR5FnUsDn+ba2v4QcKappbPNmeMPHmz7tbminbE7IRJCsIPlwJvkCWadEctj6xC95ObvLmhMylM8wIyqFcQywRHvNMFfZ0fheDj4EdydaE6CcQwjND4XYNODFYNSysgrg7HD8/saRk/glxZKidvTyxvgMMvDSGHu0c2fzJdqB33urwEYoX1qPfLCBITQcidADLDdAi1undgLSJe6W6XKpU2lkWOZQy/0EW2oHylpofg== 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=OVUBl4DYKVJiDOKdvHTV78q0/fXz8IkkfxdYtdNvcnw=; b=VINNw81Pjqkfc+ETWs7FeAS++XLcOAOE+TGKxZWOsfWFFT7EoGk6tcCrNVuQmEjx8tK2ewixsEa/Z5WtBY8lrEmpPmMOXSNp5obvfBzcUkPfAkmw/ATiCi5890lFPOO98XxDNPLR6gWCUCWtScogEYhpfxAZi8quwTY+SGdOWLk= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:46 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:46 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V8 16/19] xfs: Conditionally upgrade existing inodes to use large extent counters Date: Mon, 21 Mar 2022 10:47:47 +0530 Message-Id: <20220321051750.400056-17-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a42196b3-b411-4854-bb1a-08da0afa461e X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: fPnyv7cjzy4/V4rJx2Fy2ZqC6Q/MOGNs+ETIyB45NosiUPGLirY6k+o4HArR5sZjXE0ajAgzFkEqkgB05q2f7jYtdDcDzQjA0dOmeSvEB4KuDue1/qUmUKdep3aAoNcGUuxuBui8/3BKCeSgV9Zs0rA9j9uSjuHccwZRebHd7QpzuoLduUfX2KzSdcDO2ccluGbNyge46pQsl7O3S8AhWZhAp75WD3u8gzycfFNVD5bG1oQWI1aQYdVz+oazONO71VWeluon/ZnMqMpPn+Do8xh5ucJrGJB9oN45eO1csUBO8VmS4eMsCV7tg/pckxlMTjne9HtRplwm41Uk6+OJvolnfCY/FmkFqgeAgp+rCoyyHyVBYnpqxkSaqhxZKlJRODSiW99jTKJIGcl852Ave780LrfPGqKINWvLhIA7IZ31dGA7alpJ5J9NsSG9zLVylydr9xecbed8bOPiTr/OpjaiTPlhqgSlo5hatKwsaEVHfsIhBevryUUCknU9FoBjt/9imUaXMXmM1rIjDZ1kWEJ5RiF23gX7oDBVXsDwE6a+04fdHk4T9QWidW/I+cXr3Y0MwGzxFDXczXs0yRpe44j/7pfISigICvdlzCicJvFO3rftLOG4quDNhgGUYyF6UcadyoUzYlcHH7aypsZk73LB1rUMVG0H6qeVUuN0Hj8o4/UWIg2wbbJs7v4tOnedP1ySgQtmEnBhLKPoOmvKDw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6346fV1JAvJsNLAbujPyRX/cR+NT39K34OBT8um2fZJt/kO2fv0GkDpYe7gV+eLVqWLWiaBYPx1O6nNGpkjNx+CdgBPZPO8gIqftMpgC+1AbBvzhj0KwI8weqIcDwv/k2vYIEP7aWxR/tUOJG0+sXGuLQx5znGT8WiXI7b1ufoOyMG8SiGdOcc1RDV8WYzMic3vmzBiwNV7Piz89eJiY9hwxcxzs7RWV1j2LgjsiS3y29UsV6332SkLOrfSEY1AG0LYDNHIriUduE3DzsBJ21onojnp+8jsQcYfAaGxu5Su+ADrP3ACxYQLU/isw3JXke4sFbflYmXj1fCF/yd89i41X+9GY2q4MNSeaEDsXGYI3XU5jNMBsQGQHJ4o6QpNIPs8RoEAvE8qJqcCFoOXp3vFuirC/N/252jKlcs2At+iiKlKhXIkK7jFdukvCdJIlzrWzsw0T3OmVEXnB5Ls2SF7eq751TnI/lCwOsD+ccpGM46837al7Iqm4jmBkI3v/aBV/ZBXsECDO1X7zdXfK4qWIUh1koFxKl7TVkIXXbYBRi4EVjlEgKsalK2AUdqaJXKS6x4ITfUh/OC6O+iQNpjcg6Wh8LSDdvh2kvLSB5ncQsTQ/fL+eesd2TPFyyZ2Xbys2VjUNSG+lGlFuYSmCoPVGWYWKBH/og3fa5S3UoHNGrmRsdvNGuntTKcGXvgShZfhg95K9CW5FR4Eprj1jmd9YjmxIja165m87rscafI0j7vBX02/dtYXf893yovArKz3s3ssQAoulrNTBMySG1D9mDKdR+6KW6YIxfb8LNrLsABhcgZU20Js1ynqrfcfo2DsY5JFE5eyPz3QH9e9u5omCkO7P09VnTLQX0YrH/DJeCzD8zNy1eyTbhuMRZEGZbJkilQFgt6RsG5zvOjjxK1qC1Z4S7bxALvz1H0s4zOCzVB7A/NR2E6wANTMBT6KG4O6kKWDuj4+9feu5GCrvm7ydXs4xK0/LNxaT0OOyz3cl3bbzWWHdY9je06j8ECJQncgkxfNfna11m2wXKy8KQFy8qNEFcwtdbk9/iYv0Ev3TKX9eLIJ3GZ3/Td3I8Tqr9fl4aJ/5xyz6qkoEQLxVDW0FRJd+tt+OzIat99YZaNDcw2X9gTSvQrUtIxrZqYvds07LkGoQO2y2oX8Br6gR2qPCJ6lbyLIA1JV+u7Ko6AbH/dHKH+6YUhnEEdhS6yxIUEYVrPUxYNmnwETqhVtWKcyGl8vyQw6dw3YNqctVzlAWoHjOEPGt/ungwjN4/4KKuQ3wFPuN5oebxnIjV00E0SjcRUvt4scWuJFosQiwfy/Gn+9TzAafPdwOLhv3YfWkRfeZAqF2AqnnaOKqIBpSGOCAHHXflVb7Xh97dZe1Lm/Qpm3kSDlwJB/SkUpjyfDGHFXL6e7owIDC81yP8+0CyGq1II+m/7M09S4GiSZrBAwAvk8ltxk4wU+3yJQQFM/WFU8JsYwzl/hDq2K+oAM2Rw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a42196b3-b411-4854-bb1a-08da0afa461e X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:46.2585 (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: /meBWVdDAhCmow21iixRv4GqZpZzPrjr8y6VK1pNgVUolyOsnLhZisYWREOguj1UTmhJMjKKn+7V20uPrCMk2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 bulkscore=0 phishscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: vTDnw36dV7llH39VQfW628ljFgy8OLa8 X-Proofpoint-ORIG-GUID: vTDnw36dV7llH39VQfW628ljFgy8OLa8 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This commit enables upgrading existing inodes to use large extent counters provided that underlying filesystem's superblock has large extent counter feature enabled. Signed-off-by: Chandan Babu R --- fs/xfs/libxfs/xfs_attr.c | 9 ++++++- fs/xfs/libxfs/xfs_bmap.c | 10 ++++++-- fs/xfs/libxfs/xfs_inode_fork.c | 27 +++++++++++++++++++++ fs/xfs/libxfs/xfs_inode_fork.h | 2 ++ fs/xfs/xfs_bmap_item.c | 8 ++++++- fs/xfs/xfs_bmap_util.c | 43 ++++++++++++++++++++++++++++++---- fs/xfs/xfs_dquot.c | 9 ++++++- fs/xfs/xfs_iomap.c | 17 ++++++++++++-- fs/xfs/xfs_reflink.c | 17 ++++++++++++-- fs/xfs/xfs_rtalloc.c | 9 ++++++- 10 files changed, 136 insertions(+), 15 deletions(-) diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c index 23523b802539..6e56aa17fd82 100644 --- a/fs/xfs/libxfs/xfs_attr.c +++ b/fs/xfs/libxfs/xfs_attr.c @@ -776,8 +776,15 @@ xfs_attr_set( if (args->value || xfs_inode_hasattr(dp)) { error = xfs_iext_count_may_overflow(dp, XFS_ATTR_FORK, XFS_IEXT_ATTR_MANIP_CNT(rmt_blks)); - if (error) + if (error && error != -EFBIG) goto out_trans_cancel; + + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(args->trans, dp, + XFS_IEXT_ATTR_MANIP_CNT(rmt_blks)); + if (error) + goto out_trans_cancel; + } } error = xfs_attr_lookup(args); diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index 5a089674c666..0cb915bf8285 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -4524,13 +4524,19 @@ xfs_bmapi_convert_delalloc( return error; xfs_ilock(ip, XFS_ILOCK_EXCL); + xfs_trans_ijoin(tp, ip, 0); error = xfs_iext_count_may_overflow(ip, whichfork, XFS_IEXT_ADD_NOSPLIT_CNT); - if (error) + if (error && error != -EFBIG) goto out_trans_cancel; - xfs_trans_ijoin(tp, ip, 0); + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, ip, + XFS_IEXT_ADD_NOSPLIT_CNT); + if (error) + goto out_trans_cancel; + } if (!xfs_iext_lookup_extent(ip, ifp, offset_fsb, &bma.icur, &bma.got) || bma.got.br_startoff > offset_fsb) { diff --git a/fs/xfs/libxfs/xfs_inode_fork.c b/fs/xfs/libxfs/xfs_inode_fork.c index bb5d841aac58..aff9242db829 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.c +++ b/fs/xfs/libxfs/xfs_inode_fork.c @@ -756,3 +756,30 @@ xfs_iext_count_may_overflow( return 0; } + +int +xfs_iext_count_upgrade( + struct xfs_trans *tp, + struct xfs_inode *ip, + int nr_to_add) +{ + if (!xfs_has_large_extent_counts(ip->i_mount) || + (ip->i_diflags2 & XFS_DIFLAG2_NREXT64) || + XFS_TEST_ERROR(false, ip->i_mount, XFS_ERRTAG_REDUCE_MAX_IEXTENTS)) + return -EFBIG; + + ip->i_diflags2 |= XFS_DIFLAG2_NREXT64; + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + + /* + * The value of nr_to_add cannot be larger than 2^17 + * + * - XFS_MAX_EXTCNT_ATTR_FORK_LARGE - XFS_MAX_EXTCNT_ATTR_FORK_SMALL + * i.e. 2^32 - 2^15 + * - XFS_MAX_EXTCNT_DATA_FORK_LARGE - XFS_MAX_EXTCNT_DATA_FORK_SMALL + * i.e. 2^48 - 2^31 + */ + ASSERT(nr_to_add <= (1 << 17)); + + return 0; +} diff --git a/fs/xfs/libxfs/xfs_inode_fork.h b/fs/xfs/libxfs/xfs_inode_fork.h index fd5c3c2d77e0..f2fe513e7252 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.h +++ b/fs/xfs/libxfs/xfs_inode_fork.h @@ -288,6 +288,8 @@ int xfs_ifork_verify_local_data(struct xfs_inode *ip); int xfs_ifork_verify_local_attr(struct xfs_inode *ip); int xfs_iext_count_may_overflow(struct xfs_inode *ip, int whichfork, int nr_to_add); +int xfs_iext_count_upgrade(struct xfs_trans *tp, struct xfs_inode *ip, + int nr_to_add); /* returns true if the fork has extents but they are not read in yet. */ static inline bool xfs_need_iread_extents(struct xfs_ifork *ifp) diff --git a/fs/xfs/xfs_bmap_item.c b/fs/xfs/xfs_bmap_item.c index e1f4d7d5a011..e8729abc15ab 100644 --- a/fs/xfs/xfs_bmap_item.c +++ b/fs/xfs/xfs_bmap_item.c @@ -506,9 +506,15 @@ xfs_bui_item_recover( iext_delta = XFS_IEXT_PUNCH_HOLE_CNT; error = xfs_iext_count_may_overflow(ip, whichfork, iext_delta); - if (error) + if (error && error != -EFBIG) goto err_cancel; + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, ip, iext_delta); + if (error) + goto err_cancel; + } + count = bmap->me_len; error = xfs_trans_log_finish_bmap_update(tp, budp, bui_type, ip, whichfork, bmap->me_startoff, bmap->me_startblock, diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c index 18c1b99311a8..9f7112625934 100644 --- a/fs/xfs/xfs_bmap_util.c +++ b/fs/xfs/xfs_bmap_util.c @@ -859,9 +859,16 @@ xfs_alloc_file_space( error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK, XFS_IEXT_ADD_NOSPLIT_CNT); - if (error) + if (error && error != -EFBIG) goto error; + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, ip, + XFS_IEXT_ADD_NOSPLIT_CNT); + if (error) + goto error; + } + error = xfs_bmapi_write(tp, ip, startoffset_fsb, allocatesize_fsb, XFS_BMAPI_PREALLOC, 0, imapp, &nimaps); @@ -914,9 +921,15 @@ xfs_unmap_extent( error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK, XFS_IEXT_PUNCH_HOLE_CNT); - if (error) + if (error && error != -EFBIG) goto out_trans_cancel; + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, ip, XFS_IEXT_PUNCH_HOLE_CNT); + if (error) + goto out_trans_cancel; + } + error = xfs_bunmapi(tp, ip, startoffset_fsb, len_fsb, 0, 2, done); if (error) goto out_trans_cancel; @@ -1195,9 +1208,15 @@ xfs_insert_file_space( error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK, XFS_IEXT_PUNCH_HOLE_CNT); - if (error) + if (error && error != -EFBIG) goto out_trans_cancel; + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, ip, XFS_IEXT_PUNCH_HOLE_CNT); + if (error) + goto out_trans_cancel; + } + /* * The extent shifting code works on extent granularity. So, if stop_fsb * is not the starting block of extent, we need to split the extent at @@ -1423,16 +1442,30 @@ xfs_swap_extent_rmap( error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK, XFS_IEXT_SWAP_RMAP_CNT); - if (error) + if (error && error != -EFBIG) goto out; + + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, ip, + XFS_IEXT_SWAP_RMAP_CNT); + if (error) + goto out; + } } if (xfs_bmap_is_real_extent(&irec)) { error = xfs_iext_count_may_overflow(tip, XFS_DATA_FORK, XFS_IEXT_SWAP_RMAP_CNT); - if (error) + if (error && error != -EFBIG) goto out; + + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, ip, + XFS_IEXT_SWAP_RMAP_CNT); + if (error) + goto out; + } } /* Remove the mapping from the donor file. */ diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c index 5afedcbc78c7..8b8fc98a01eb 100644 --- a/fs/xfs/xfs_dquot.c +++ b/fs/xfs/xfs_dquot.c @@ -322,9 +322,16 @@ xfs_dquot_disk_alloc( error = xfs_iext_count_may_overflow(quotip, XFS_DATA_FORK, XFS_IEXT_ADD_NOSPLIT_CNT); - if (error) + if (error && error != -EFBIG) goto err_cancel; + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, quotip, + XFS_IEXT_ADD_NOSPLIT_CNT); + if (error) + goto err_cancel; + } + /* Create the block mapping. */ error = xfs_bmapi_write(tp, quotip, dqp->q_fileoffset, XFS_DQUOT_CLUSTER_SIZE_FSB, XFS_BMAPI_METADATA, 0, &map, diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index 87e1cf5060bd..57c3c2ccb07b 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c @@ -251,9 +251,15 @@ xfs_iomap_write_direct( return error; error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK, nr_exts); - if (error) + if (error && error != -EFBIG) goto out_trans_cancel; + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, ip, nr_exts); + if (error) + goto out_trans_cancel; + } + /* * From this point onwards we overwrite the imap pointer that the * caller gave to us. @@ -555,9 +561,16 @@ xfs_iomap_write_unwritten( error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK, XFS_IEXT_WRITE_UNWRITTEN_CNT); - if (error) + if (error && error != -EFBIG) goto error_on_bmapi_transaction; + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, ip, + XFS_IEXT_WRITE_UNWRITTEN_CNT); + if (error) + goto error_on_bmapi_transaction; + } + /* * Modify the unwritten extent state of the buffer. */ diff --git a/fs/xfs/xfs_reflink.c b/fs/xfs/xfs_reflink.c index db70060e7bf6..04717be330d7 100644 --- a/fs/xfs/xfs_reflink.c +++ b/fs/xfs/xfs_reflink.c @@ -617,9 +617,16 @@ xfs_reflink_end_cow_extent( error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK, XFS_IEXT_REFLINK_END_COW_CNT); - if (error) + if (error && error != -EFBIG) goto out_cancel; + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, ip, + XFS_IEXT_REFLINK_END_COW_CNT); + if (error) + goto out_cancel; + } + /* * In case of racing, overlapping AIO writes no COW extents might be * left by the time I/O completes for the loser of the race. In that @@ -1118,9 +1125,15 @@ xfs_reflink_remap_extent( ++iext_delta; error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK, iext_delta); - if (error) + if (error && error != -EFBIG) goto out_cancel; + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, ip, iext_delta); + if (error) + goto out_cancel; + } + if (smap_real) { /* * If the extent we're unmapping is backed by storage (written diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index b8c79ee791af..8cab153201d0 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -806,9 +806,16 @@ xfs_growfs_rt_alloc( error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK, XFS_IEXT_ADD_NOSPLIT_CNT); - if (error) + if (error && error != -EFBIG) goto out_trans_cancel; + if (error == -EFBIG) { + error = xfs_iext_count_upgrade(tp, ip, + XFS_IEXT_ADD_NOSPLIT_CNT); + if (error) + goto out_trans_cancel; + } + /* * Allocate blocks to the bitmap file. */ From patchwork Mon Mar 21 05:17:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786810 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 25983C4332F for ; Mon, 21 Mar 2022 05:19:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344382AbiCUFU3 (ORCPT ); Mon, 21 Mar 2022 01:20:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344384AbiCUFUW (ORCPT ); Mon, 21 Mar 2022 01:20:22 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 61196344FD for ; Sun, 20 Mar 2022 22:18:57 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KH3BEY001841; Mon, 21 Mar 2022 05:18:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=N16OB0Xp2eKmhrj0ndiIKcKQLA+YCTgApHuvR72LOtk=; b=mKNqRuGniqbFFGLMdY4nkTE02zEmDwKeSGMq1mbf0q9a3vaysNZ57pAUxUtKE4UinG4N HBsDPD0rTj7CvRC4kbAoMpKZ4UX9mWXN8M+vzPZ4mx6xWDNMvojQPo4qsBEFy3tySMl9 wAuyUX7+kSTrisYdzJxMLtD+pDrbD1GHA/DlqO+Fh109pxOVgTLg/QyVazdasn9Q9cGx FAVbLdO9p4Aap+tqOpQERZy+ONIdxgj0tZCNjOC7FjHXN63FAhfmih80gj2ULf+wW24E dZEBFhIpquvmEo0ETTnNV/WopFmfkrmNoJWw0HbmXd3mG0ss2S8UPSwXH6c0NT//n/vS ZQ== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew5s0j514-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:54 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5Fvc0057867; Mon, 21 Mar 2022 05:18:50 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2047.outbound.protection.outlook.com [104.47.56.47]) by userp3020.oracle.com with ESMTP id 3exawgev4c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mtSTduRAgXWkEIOyzHwjC1eOAp64rs/5QYumqMQkXgxoJFStriarJmDKM8jnpCk1edDkxonC4StPZUYIxMMlBN2RbrugP1Cbt7A382uA/gsuyT3VmrMFea2XDhQ4+oCYbVDAySBT8orra8EQQ/XLAABPQu6+qStWs2M9LM5gTZhYMHwBiZj+VHeg6xVyCjchaG34LEDJuVyix5pR6VUKznnpQCQCkQ0ol7WnlAWYXnHftklpAQiDEQObFDRbosj61jUzxCE7rONmI7V7Dj+QIgXA8chf0VpHIkw/bPfjo9WyOtELIpCI3K4oNrimR0TE1r415RtGeF3ubejFjRxFkg== 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=N16OB0Xp2eKmhrj0ndiIKcKQLA+YCTgApHuvR72LOtk=; b=nrmWvJbCgCaVDzLcZLT4M5tNLjmrYpufSuT3crWqMaBLQ5EoaPWcarGXVSpoXtJ4MLPJ50v+W2tMXfhzmrACGFbH2yhvd7Vxlx1VFQHiLQ+fRBKYyh0/numyBi9oSxqqDM53mJGUQ6i/pk6o5hQs0o6uTfXnegUHM9/rTn5OWl0PZNxGzLo2jkmIN70LZiI+96Wb3eLxu47+rIYkUxl5wfL/HWANmHH0caMkjRdidNEAb8ipolLRcP+I9NJw7g1hCmBM2IETah4X3uaRr+zn16+BuGWLarb5UYyBgQtJ124g53gl434PT1MrKw7jTqzY/KfCYfHi6zIFCuwggowa+w== 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=N16OB0Xp2eKmhrj0ndiIKcKQLA+YCTgApHuvR72LOtk=; b=Ryb7sI2V+/kEd4a0/AObqQKZQRCtAfgeYjnDeNXYoX53iLFNZnycYve11C/BYpkwpl5LNHYjYvVjHyz2aG+6clZSIJ/TfhDoE3Q1Wd28qjzSfUyewwHxm29cbf+jdlLDdFCMltoJPHf2USZUMODRr93XlIzYvJLtk5MU+OKN35Q= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:48 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:48 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V8 17/19] xfs: Decouple XFS_IBULK flags from XFS_IWALK flags Date: Mon, 21 Mar 2022 10:47:48 +0530 Message-Id: <20220321051750.400056-18-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: db125314-ba91-44e1-2ceb-08da0afa4757 X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: 0cyRbP4RjI0K0oFUC8UPCJi9L08Pr+Dh4r2RUXbiFmc22xWwyxrr68R+LNohh8DW5xZXJmfPZ4JJIjD7p95exys5geXUzGKtvtP6LsHVPE8ffvdKKdV/HxVwefSfw/PpkkltRAkI6KblT9UYzVwS3V7te20xUQp83QcdRbbjKVKds1wPFPpvQ9pZVNbFR9L4p5SmGFU38JMgmc3YsSlnNtO0VMiDXxkVJZCQYKYkr55j1grBYKVpr8MGmL4xT1e1ve3vWT02Y8rRW/ouTF8doTlZYkaWN9zKW562ogdk47xdp+8kJ9QIAjRE33Bael7TV1e3ZtH/2DTG1doKG0hq8NACEu/fcHbPmUdq0lEqH7DdKHfpG7GJcCEzgLJhvc81M9Sm51QdB0Bu1g0q5LO9E7O/Gx1fgPsQqDXwo3Ej/dQoHn6NNHUcmMnLFcA4TRxtKyoXVcHQogvchz5yUMyE7ORRr5U3tdjRTe4lyyY3fIBiHXN8rTQ5gSlY/1f0x1sTRgJTU40hG5ikFdkA+CQrCmSEDVTGdCNjzNaiPH8iGhZvYx6vqZJZn+aav1mnmqRGdFI8he8TLtSrdKqgI6Ok2XG/V/WeS4y7NsWHD3+l2xWPSYeIRF7nqnSFe0t+HXs13lIEIoDpB78JgeyxLp7Fl1rXkLun762QTCbW8kkGjNCUdqKzntjOgjFYJ6dmLKHbWIaHMUCeXdgT0g1CagDT1A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: e1XQhuoL4YKYjzA219tigrjjQISDbzQ1vgW8EaaIYiyQzltYrR96MAAg0t8josD9ySgl0PHxynTi2zUNUxw8qnw7K13smQ2oooP+t77SBX6Pvgc8AZCoukvVKsW5bPlX7nmp/+YQ40z8C2qK3RgUHBDvKzB1CE12emDMFupQzFsJ4x/vMA5jbgN5eNaUKr4/jX9v3HGTY9jOGSpXAoJhzhZEzBuOAg7BjuT8UBkkVO02nkfZZQFiqaRwAUZEIKrPRGZcjFBtPV3j36sxxcM0DZzaOdfVp0t/VzunbPaF1C2Ok3GJyCtmMiE7Z/Mmq/r6hoNfyM4MhP3s5zXoX9o7iJf/rfQMFFINky5WpoExltamjDtPQBkI+BMR1EvR6T43gV681MfFXtX4elWmqy5BLX6KXN5NOiwOVSAxWAoehJvtUVfHzp2yDxA2+6Ty7CK3P4zi/IUNBoX2XGaF1nZpGnVicUwahrfMOF98lUKaYcC5vCgbOCYTqqHgXzuA4jId3pxoA9NoOtejYdY98UquaxDQWJawuN6ih00F48SLIvp5P7eZmhsqGQuZFQBIQy6YNy5QCBgnkCL5zEdjGsw+A61WsEI3xeCZABIb75O0/ncOvKVj+RVPc/jqB2txoCtahuXyAeTcckB0zysx7Y+JfRT42KfL3ysZIR4/9j1bRuCBj7I0jq+vxY9l57uqHYtQu+ZsjlvU7RZ8ABW2nH8kQpNBdYLuiecBiQ6Zm6/9maJLAOFl9OdNEquILQYaXqnbwvcKVEMGq2bqR6eNrfEcNeJ2TRdV+ZRPc5UHg2yDSD2C8VSbaZpDcV4ZJ+oSEH5PEq3mUhLi4yHaWeH6DJl6EDlO8tYRp1G2jov31imIc7xsCVPMSk24qRLLQ5b3oIQe25Knu3DYlmF0IhJqIYqYUgVnaAAfgZ9KS9xLlLGTxfQnW+xOs7VDKe4ynhINkWcDZKiwo2hTuAoWFwC7BSvpLIbXzzEIbqkwIWiVUO9Oyxy+ZeFkRTMzpkTvDSHd6JMrH5NkzNGp4TM7jluwjPcJhp3l3mOYZe/A/FtXSocW+XTDMBE5Ll0JDC62rIfLQSPzlNM1Mlai49SYvTwtPqlEO0EIUHzrEB80wCZ10IdTUtDgk/MrshIUEBOKAwtCll+QUpFbRghRDndXHiItq8ElBWG6Npuf3irJpF/KgEqR2zsT5+aaGQBr/vNlsaktlZT6by0D16lmQGv80uFbfgqGb9vSDn2Tvi5zZHzvvpyzQLsRpXMIHJDywFv8nquQY837hba0k5+ZdY1GYBDOQG5dqoB1rD6k58KCh6W8MHpQrs9Nghh7NACXUhM7+jZeDuwud9JVBMPlaim/cpJvqTUJin5k1QKu5WDMDrKSNUuTkmZos0rKL1jU0NpmoNLHryBY8kXZXgn2jXMYUYUOUaU0T6XUA6N2A24UFX0SYEX0lNkANmJrlQQE+F+xj2P9IZrT6KQCwkg18WdSBKnB+6np5A== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: db125314-ba91-44e1-2ceb-08da0afa4757 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:48.3218 (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: n7BLl5O5Yv5zVTFGe9a4wXxgdfITBjli2G8DPfHgO1bXZ5+7C2G7w9cpS8TEB/D8BMpE2R/f1VCijVS4YP1TPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: rbknxxiGm_i-0Xb-1rjws29hPlBtgqdm X-Proofpoint-ORIG-GUID: rbknxxiGm_i-0Xb-1rjws29hPlBtgqdm Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org A future commit will add a new XFS_IBULK flag which will not have a corresponding XFS_IWALK flag. In preparation for the change, this commit separates XFS_IBULK_* flags from XFS_IWALK_* flags. Signed-off-by: Chandan Babu R Reviewed-by: Dave Chinner --- fs/xfs/xfs_itable.c | 6 +++++- fs/xfs/xfs_itable.h | 2 +- fs/xfs/xfs_iwalk.h | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c index c08c79d9e311..71ed4905f206 100644 --- a/fs/xfs/xfs_itable.c +++ b/fs/xfs/xfs_itable.c @@ -256,6 +256,7 @@ xfs_bulkstat( .breq = breq, }; struct xfs_trans *tp; + unsigned int iwalk_flags = 0; int error; if (breq->mnt_userns != &init_user_ns) { @@ -279,7 +280,10 @@ xfs_bulkstat( if (error) goto out; - error = xfs_iwalk(breq->mp, tp, breq->startino, breq->flags, + if (breq->flags & XFS_IBULK_SAME_AG) + iwalk_flags |= XFS_IWALK_SAME_AG; + + error = xfs_iwalk(breq->mp, tp, breq->startino, iwalk_flags, xfs_bulkstat_iwalk, breq->icount, &bc); xfs_trans_cancel(tp); out: diff --git a/fs/xfs/xfs_itable.h b/fs/xfs/xfs_itable.h index 7078d10c9b12..2cf3872fcd2f 100644 --- a/fs/xfs/xfs_itable.h +++ b/fs/xfs/xfs_itable.h @@ -17,7 +17,7 @@ struct xfs_ibulk { }; /* Only iterate within the same AG as startino */ -#define XFS_IBULK_SAME_AG (XFS_IWALK_SAME_AG) +#define XFS_IBULK_SAME_AG (1 << 0) /* * Advance the user buffer pointer by one record of the given size. If the diff --git a/fs/xfs/xfs_iwalk.h b/fs/xfs/xfs_iwalk.h index 37a795f03267..3a68766fd909 100644 --- a/fs/xfs/xfs_iwalk.h +++ b/fs/xfs/xfs_iwalk.h @@ -26,7 +26,7 @@ int xfs_iwalk_threaded(struct xfs_mount *mp, xfs_ino_t startino, unsigned int inode_records, bool poll, void *data); /* Only iterate inodes within the same AG as @startino. */ -#define XFS_IWALK_SAME_AG (0x1) +#define XFS_IWALK_SAME_AG (1 << 0) #define XFS_IWALK_FLAGS_ALL (XFS_IWALK_SAME_AG) From patchwork Mon Mar 21 05:17:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786811 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 C57E7C433F5 for ; Mon, 21 Mar 2022 05:19:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232795AbiCUFU2 (ORCPT ); Mon, 21 Mar 2022 01:20:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53528 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344382AbiCUFUW (ORCPT ); Mon, 21 Mar 2022 01:20:22 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8602634666 for ; Sun, 20 Mar 2022 22:18:57 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KJYA18000642; Mon, 21 Mar 2022 05:18:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=n/NAeQlBNhdsJvmFcT5IoxFlZE0vaKRsDz1g5LxFg1U=; b=gQu4yGAVriEMRGxfBHI+frIriBT0lAKsPuqD4sc5CxEdxgwnhV4DqGy82q8drKkBmrAA mgvrziP6RaBi1pyYiRKVDzsBtz3xisGbiUR8UOpq2QDbI0vv4V3iIVBI0IIHtu54p/5u JIrMbCSCO2TmV/kHMRJBZq/w6OKsS80W9fnK2/73UOU8knIPFAmoD5gKw96m9RdfjGBZ GG+0TH3lAhyia/GhyF5Jx3XF3uJWe8SmdkLrnoWFkhPVdkK/naljCNQ1b3TSqVGlFdRJ Yw1EZtyycslHr2h3yfCMImaKJjJKEPTlNFHsH1q59TPFYXfzR25PDGYVCXYsAB0NzlEV Gw== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew72aa3js-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:54 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5FxnO057928; Mon, 21 Mar 2022 05:18:52 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2047.outbound.protection.outlook.com [104.47.56.47]) by userp3020.oracle.com with ESMTP id 3exawgev4u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZessnVhjXGvAFLu0G/bvQFjPJZ3bMFTE/b7AfLCrgqbqQaEzxd/yGFIIRW/Lc7d1n5s9WkXn7wS6spWiMNRfUFnbWfd2D488OikKiqO6uueQZfgVN3EWqkoG7hK/1Z2nYcktHzmjt/jcaQt+4ekQ4egExBHFtszPturTayJ1FjvcosKjbJhCtofb2keQD5NwdM+kVX0wHNwsKAWWEBnvyPPGpIEhhKssGOo3wo4CLsXvPu6gqUcFvgoHZgeP9JYBev+b8sEE1kRa3P2ret9wVbpEBAGxIXnfcHC1KUQSgPLLGdQnwrUEq6uNUPNU19h9OMKgQaic1a/OsbyifQDB2Q== 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=n/NAeQlBNhdsJvmFcT5IoxFlZE0vaKRsDz1g5LxFg1U=; b=awjWp+NDKwiWqgFyry74dUI1oIhvIagesOziIK0qK0N2D1JuNod3YvUsM6VsYkR+fPb3UadD/fWfRhFsmsPmXDNXM7O7UzfJ+talNjb6leMVr65mbcLfWPvpvcGe/Ci+Lm63X+mt2Krp2yIJP1HPyON+jxebKqdLAK4LLXQe73yjXo6a/SSSUPzsyibaJHmrGt+kcWGYMx169UWdjq8gxhcTjaQ63CLJ8bLcbom3CGtH43+AifnaMChdNB7Syw5x/pyVdZsNQbP67WUurW3RReMZxKY2jf3C5GsQGWHHk0erpUefz8AZeNZpaERqNkUCzgDVvuZ7nYls3ZG9diykhw== 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=n/NAeQlBNhdsJvmFcT5IoxFlZE0vaKRsDz1g5LxFg1U=; b=zypyVo8SedEzjAGFBfP8HsZfiZr+t+mPTt4JfpLS1U9FjJ7S0Y1ZiH63uyf8Kyj7odN0m0Jk+s7GxNFUh82Qx1s4CxP9QhxrDUKBXcYXOVCUeTUrXX/Zh5wxdEhx0TZ0WaODDMTK5zB53XAgdlaDPjefWfXWiTCU+dOoi2kvRbI= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:50 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:50 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V8 18/19] xfs: Enable bulkstat ioctl to support 64-bit per-inode extent counters Date: Mon, 21 Mar 2022 10:47:49 +0530 Message-Id: <20220321051750.400056-19-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d63f198f-769b-47e6-4a5c-08da0afa48a0 X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: zxrZY4e8XANHFdyExUP7HG4vsBc6d/yEAETh5jPMJgJoA51wTNrDHnobMLJxvg8hkVZbO3a+yX/LpPjonav1gpl9sg+dkwOXd7O1mVGduZ3k1Q6DY2pP1kqDORBAu+FroTKJvD0pxoN8qF5CLnxy8Fb54q0CFcZjj4k73TlKhFXp61QZf98hyfJYweV+OiT8deuHhEEQsKDM56z/sILTWwQZH1uF4dmYr4b6OUfUYJuAoOkC0I15PUl26OhL1MDTDutcB4vOBL9qxF+LqvLZjv2+77fM1ljnob6RHngourOxmoCt2sL9MCli8Es5xhbzGKZOGByCLCIsUI2PeE6cw910KyAUk89m8tlYLcmGXO6MC4UUPwEK2zSjwIrk7MZRyRu6H+ReZrF1ebVFvn0RGO69qNy5+tsrcApspXnVTdqg2zFt1PkR/ijTddggq7ZPfQL+wOF3dKOXTIB4az7HPWlFJbDptzDKB4sTL6XYPaI1a20IWuAbrxFU6gifqhiknvXy13cY0GXdL/cjmbcjxUf7xdu+eQU0TqkydzInSkxbRDuXivEQ28NQ3DS0tyKGUgJKnsDZT3plmFclzfOeliukeyRKrHOon5vzH7MbbVz1wBvDLkR/YnNubl4PjLh1dh9i8cWbxkpzTqDyE/vHMcp+wzaEDn5hyXGkl36rgk13ortY0IyWkORelLzXkTlOl2KaFMqtCdxfXf8QWGRk1w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: o14py5dwQCplRMvV4ywyLhKp3+5CqgOYprg8V6dTnMDjjQ+sakD6+URgUc+IE5QCYrju+U/4kl05TxaLHkqmUeiriTPMLqd8PjfbWBnJbOSG/YrgLne0rpHYK8qRXfTc7+1SbaTvTMYB1IOgmvbPq1wKo5xfynxGlUDDH761gHv2rqXC1BQnUgn7heiK1QeFeQ1Sn8gazxDO01kkoqhUeDUSFYO+oqdtdyN6AAd4Lg8TkMUS7GN0AJJduHkEAOHDosIX9VBxlcy0c23fcSGPadDs4cHPaIGyHVtCFFm4qpX4fEkNf3bbnBnUrxMadlwl7iAV7RZ/BstAJUJ/MDF3cB/4VsqVKywx5xRShU9/dZR8WoBjrrM5cVQq2nC6ozLgZzcpezXAEk0aiLJRbzSvLFybz1RgJIuc0qTVxh2ZFBxqmA7uCbSHL6eF22kfLyOaQOukwngXL+ceU1PyinaJZpD0OEpng6RZDxQxc942pyB6izbzpTkqJuj4xf6bO6eieH7Y0gEoeUurMeg4Lp89xcR7w8UNv/B7d4GZpapekqmmhHQ2En+KPAyaPnrDWfyFig8En+Nz3mOYNmydmd6uvfR77vTrQVaWGiiQPn+Y6e8M4FYLepjK6VJIZnojRIOre+5ogHE5CxWsteD3b7xFslZ54/m99ahjqy/qY8/f2I+5HHi5nEnDT0vUPjimedvnm4HYDGHmfEH75EgBcgyXuRED3jR4b0UxFzWddjJ/SZK5xlxV4TWfDIE6Rv3hEKnco6WR6nfpAiBohJbUviAUPMvBR0TFwN6aWLGX5dkyA20Q3GtKlZ7OkTzO/QYEH5NOCTpy4O7iSTlbSmClAmZIVloeEMzyC5AfPyFC8pMtPJ9K+W46cpaL4Hh/TnqZ+yKRUX9/OmnfNKBZYLJGa5HV6Dzw/H/Jjv/CNxKpt+luo1kmUwQkIsvxGaWUfuwlgQlr5vejsQRDfX+6ARvesNvAKrfDh+uBznl6W9RyxPsyo9fGMEpzNsbCHBgaqkLK5HE+LssoNC1Q9cgjQdfOAW6fNjGoKAzfosOXJEViCPB28xyogrIeYgQ/rB2MBxjRlY+sDKsNUDLQw6svQm7GAzqMKDs6T3fgEIW5H/KRtyl7a+XnDEe9Xwt96/fTOqI8HtTAP47FAnaaO5H8O0dibBLAUL4poRSp5/S3jTVzfRMSB0/DyXrmtpCpb2G4cMEzzT1ARTLY2b785aRecMAfAmOM5xpxJA7BrpNrRKIFI/EUGuVtEAX9aETbov18LyEFxW6XCmfqb6nwLLd4TCflwv+ghp2IPqhWqoWbBLmBMwe4TssprvuTVMUBUeR+r0A9Mcqeh04Ghc9N5YTkDh1Ccyzsmjfng9tA8tMPwov0PdnkQm4TO5REw1Y1INlKdam5UF6FmCqmsSajUOQJWkQ+91TQwRyaCS7AP7Rzh1c7pfUISQXE7MMxlrQhJztTuPWAdwzKIJ5eKONcdyQ8hv0miafLJg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d63f198f-769b-47e6-4a5c-08da0afa48a0 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:50.4787 (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: 1j2VDMu+GUQRL8vNfUrE8AoFb8YkIRIVTKdz0ocmhogQpYD0U5BTnofZyrMVz1PXi9gff0Ptcbh7S4yIT0//6A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: pJrfm1hRcLxjxYYcXdpQI1uZXGcKUCWh X-Proofpoint-ORIG-GUID: pJrfm1hRcLxjxYYcXdpQI1uZXGcKUCWh Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org The following changes are made to enable userspace to obtain 64-bit extent counters, 1. Carve out a new 64-bit field xfs_bulkstat->bs_extents64 from xfs_bulkstat->bs_pad[] to hold 64-bit extent counter. 2. Define the new flag XFS_BULK_IREQ_BULKSTAT for userspace to indicate that it is capable of receiving 64-bit extent counters. Suggested-by: Darrick J. Wong Signed-off-by: Chandan Babu R Reviewed-by: Dave Chinner --- fs/xfs/libxfs/xfs_fs.h | 20 ++++++++++++++++---- fs/xfs/xfs_ioctl.c | 3 +++ fs/xfs/xfs_itable.c | 13 ++++++++++++- fs/xfs/xfs_itable.h | 2 ++ 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/fs/xfs/libxfs/xfs_fs.h b/fs/xfs/libxfs/xfs_fs.h index 1f7238db35cc..2a42bfb85c3b 100644 --- a/fs/xfs/libxfs/xfs_fs.h +++ b/fs/xfs/libxfs/xfs_fs.h @@ -378,7 +378,7 @@ struct xfs_bulkstat { uint32_t bs_extsize_blks; /* extent size hint, blocks */ uint32_t bs_nlink; /* number of links */ - uint32_t bs_extents; /* number of extents */ + uint32_t bs_extents; /* 32-bit data fork extent counter */ uint32_t bs_aextents; /* attribute number of extents */ uint16_t bs_version; /* structure version */ uint16_t bs_forkoff; /* inode fork offset in bytes */ @@ -387,8 +387,9 @@ struct xfs_bulkstat { uint16_t bs_checked; /* checked inode metadata */ uint16_t bs_mode; /* type and mode */ uint16_t bs_pad2; /* zeroed */ + uint64_t bs_extents64; /* 64-bit data fork extent counter */ - uint64_t bs_pad[7]; /* zeroed */ + uint64_t bs_pad[6]; /* zeroed */ }; #define XFS_BULKSTAT_VERSION_V1 (1) @@ -469,8 +470,19 @@ struct xfs_bulk_ireq { */ #define XFS_BULK_IREQ_SPECIAL (1 << 1) -#define XFS_BULK_IREQ_FLAGS_ALL (XFS_BULK_IREQ_AGNO | \ - XFS_BULK_IREQ_SPECIAL) +/* + * Return data fork extent count via xfs_bulkstat->bs_extents64 field and assign + * 0 to xfs_bulkstat->bs_extents when the flag is set. Otherwise, use + * xfs_bulkstat->bs_extents for returning data fork extent count and set + * xfs_bulkstat->bs_extents64 to 0. In the second case, return -EOVERFLOW and + * assign 0 to xfs_bulkstat->bs_extents if data fork extent count is larger than + * XFS_MAX_EXTCNT_DATA_FORK_OLD. + */ +#define XFS_BULK_IREQ_NREXT64 (1 << 2) + +#define XFS_BULK_IREQ_FLAGS_ALL (XFS_BULK_IREQ_AGNO | \ + XFS_BULK_IREQ_SPECIAL | \ + XFS_BULK_IREQ_NREXT64) /* Operate on the root directory inode. */ #define XFS_BULK_IREQ_SPECIAL_ROOT (1) diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c index 2515fe8299e1..22947c5ffd34 100644 --- a/fs/xfs/xfs_ioctl.c +++ b/fs/xfs/xfs_ioctl.c @@ -813,6 +813,9 @@ xfs_bulk_ireq_setup( if (XFS_INO_TO_AGNO(mp, breq->startino) >= mp->m_sb.sb_agcount) return -ECANCELED; + if (hdr->flags & XFS_BULK_IREQ_NREXT64) + breq->flags |= XFS_IBULK_NREXT64; + return 0; } diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c index 71ed4905f206..847f03f75a38 100644 --- a/fs/xfs/xfs_itable.c +++ b/fs/xfs/xfs_itable.c @@ -64,6 +64,7 @@ xfs_bulkstat_one_int( struct xfs_inode *ip; /* incore inode pointer */ struct inode *inode; struct xfs_bulkstat *buf = bc->buf; + xfs_extnum_t nextents; int error = -EINVAL; if (xfs_internal_inum(mp, ino)) @@ -102,7 +103,17 @@ xfs_bulkstat_one_int( buf->bs_xflags = xfs_ip2xflags(ip); buf->bs_extsize_blks = ip->i_extsize; - buf->bs_extents = xfs_ifork_nextents(&ip->i_df); + + nextents = xfs_ifork_nextents(&ip->i_df); + if (!(bc->breq->flags & XFS_IBULK_NREXT64)) { + if (nextents > XFS_MAX_EXTCNT_DATA_FORK_SMALL) + buf->bs_extents = XFS_MAX_EXTCNT_DATA_FORK_SMALL; + else + buf->bs_extents = nextents; + } else { + buf->bs_extents64 = nextents; + } + xfs_bulkstat_health(ip, buf); buf->bs_aextents = xfs_ifork_nextents(ip->i_afp); buf->bs_forkoff = XFS_IFORK_BOFF(ip); diff --git a/fs/xfs/xfs_itable.h b/fs/xfs/xfs_itable.h index 2cf3872fcd2f..0150fd53d18e 100644 --- a/fs/xfs/xfs_itable.h +++ b/fs/xfs/xfs_itable.h @@ -19,6 +19,8 @@ struct xfs_ibulk { /* Only iterate within the same AG as startino */ #define XFS_IBULK_SAME_AG (1 << 0) +#define XFS_IBULK_NREXT64 (1 << 1) + /* * Advance the user buffer pointer by one record of the given size. If the * buffer is now full, return the appropriate error code. From patchwork Mon Mar 21 05:17:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12786808 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 40257C433FE for ; Mon, 21 Mar 2022 05:19:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344376AbiCUFU1 (ORCPT ); Mon, 21 Mar 2022 01:20:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53526 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232795AbiCUFUW (ORCPT ); Mon, 21 Mar 2022 01:20:22 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 686AE34BB1 for ; Sun, 20 Mar 2022 22:18:58 -0700 (PDT) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22KLu9iK029266; Mon, 21 Mar 2022 05:18:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=NBmyC/j5wjRQ+Picixl9YqR449DLQNV6SDqiIDeE/Q4=; b=SiWa7ovK9T3ckEAYOdeDefopXhNQJBwbKU0udCvsKWkv0HzE4kCdgRiMn5kNsZpXxE9W uPsd7DUt/uKecgSsL1oj9TyZkOyAHbCbTUV9K0cNECf2CMjbEfO9unjv3qMhfC+lUILg wRqRDwAIDb9HlSAGRvJ+SVtL9luSAJoT0eraI8MrqAITrz4xoEUdQ1Sd01ijxltwyu0g Xru/ZCNEekgAy74dALwrEpR0yliWwyUuDIHtuD48LIhF/Hp3d3XL6LBFPa8Qmf7ux+6J +HuXlvHXEpUKQs5LoelL9U4KWt8fBTsI2V2hy1SH+rN45rJrH63n7hN5fWMJtbJwWwZE 8Q== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ew7qt22vy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:55 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22L5Fwir057906; Mon, 21 Mar 2022 05:18:54 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2046.outbound.protection.outlook.com [104.47.56.46]) by userp3020.oracle.com with ESMTP id 3exawgev56-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Mar 2022 05:18:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GbpPUG9yPIy6roG3FckVGlglHrSVETXhZVjxxl/e3ML4b2LZukqHunNkiQ0fK4Bc6YPRY4QIdIf2vSa6mSRyfalJdiGi5JMrfXTXx7r3SRuQHRUm5B4ztEg7YM31TpJCCLA51EbNgarRQ6C82yRI7uOIw4/jxIerkJv3gcsecfyO0UKxrqIWufzB2KqzxGOD6Q8Cepjxu1EeizQJ0KRviLo65US+35yjQ7GGUXNRA+9uji2K2MOH2IlPTelKJmHARgCWG128UiHd7nA5728CS/nBIO4YHqD7bVURX/fH7vgUstOjyqFyv62QFMRyjpOL21tHer1jCqbZlkFLqnFp5A== 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=NBmyC/j5wjRQ+Picixl9YqR449DLQNV6SDqiIDeE/Q4=; b=M/Zqck4m5fNeS7embUjoxrFZbUg/33WY/+UZkvTryNuBLQ2UhRu3JpwgzhOzYt9CzlBnUOCMFGN59xMFYEZPnD89NeFeBppfUEf/q6m0OBY0vDu9emGcZ3vjjj+D4QArkVP7XnCanAKscY2w/7cFrYYROB+AgtICJKNsslwRwwOSU2bX99ExdTg/cR9lBdQZHf53ffNDgnG0vtgORy3u4JGpAluhFukqzzpk+1SyJDTJ1q5vTMEBEY17X8bSz4kdqnIrW2a8/Nse6p7grknbW/GSVRXocSvcZ74AeHcDzED1YDlikzIiQWyAEO5XUusaFO1CDNkcUa9tTJPxUMhx7w== 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=NBmyC/j5wjRQ+Picixl9YqR449DLQNV6SDqiIDeE/Q4=; b=IXJ0S85m9ExVw915FL30JphfhBLDrzvB+lYg3clIeqf61SCW3LZQ2MCNpPI3rA9Dk5q/45LoB5c+KgViOrEqPi0vUoUiT2tGsjxz6PPnPxalzJMjUvFE7ddmoylKQWNcpVh3Yb7bLwAq7iCKNJsMTyYJ0FEDKOWPNpHQJRhuwr0= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by CO6PR10MB5537.namprd10.prod.outlook.com (2603:10b6:303:134::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Mon, 21 Mar 2022 05:18:52 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::b0b4:e94f:82df:234f%9]) with mapi id 15.20.5081.022; Mon, 21 Mar 2022 05:18:52 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V8 19/19] xfs: Add XFS_SB_FEAT_INCOMPAT_NREXT64 to the list of supported flags Date: Mon, 21 Mar 2022 10:47:50 +0530 Message-Id: <20220321051750.400056-20-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220321051750.400056-1-chandan.babu@oracle.com> References: <20220321051750.400056-1-chandan.babu@oracle.com> X-ClientProxiedBy: TYCPR01CA0120.jpnprd01.prod.outlook.com (2603:1096:405:4::36) To SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 74cff524-aa3c-4c4f-bcb7-08da0afa49d8 X-MS-TrafficTypeDiagnostic: CO6PR10MB5537: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: NpgLvLkZKkue887LaRR1HhVpOmQavDwbm74MOqvgqrWuAa3B+5q4VGW05wLd3AQduQ7iXMP0LXQ7M2D+tPLMRsKmy+aM/juCQzpj3OSpPWwJTc0mx4p77jJ/PMP3b0OmnsHndpE1P9EZd2zJdPPDOUsMZw1pO/FQk9yIetgEQIVkVO+Dv+9x9H89uuHYnH1AP4Wi+lxC6Lf9cYB8T5Nrw8GrEJ+BOABiIi56Gdzu94UO5evuMYTvp2CLraixvABnLN68gqIxTw0daOEMcge9YNI5Fk/3D98m0nM9Ba42eD58PYnIIoHgGsZDGtlAcHWyn5baP2CLsAgaZyuf/gTf97tliLvPna4DFg0YOj+uV0Is+lamJ1YIuJ2c2XKSJ1HFSpC8hyLBmFMmIN72BpU86mWGwiQviDRZ0orY0M4Ehit7Fd9nKGyCniQfza/jzn06AUnFtYpw2ArR9e2gBjSkZMcoX89yjedKUWK7Pum3zGy5YjnkY+OG3bdoS1mVERzTyNo79U2Zr8vHmtCrJZYLfTPdErAQsaCaSjexPRu5B2bQafVPOe9iGyilgruleldGwSzugiDVX4IApN7KWfzmy3hM+479fDdODlOJThp0RI9Mhh9B9vQR2bok02yTSL4Np1UXlhNmM7PrSeUnM0JyrBGJ1gPkDDddOAA1GsLD1OKOe+V9bliFrLMJTJXpp8KPtWAAfiTSu8dxBCupu/qKlA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4587.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38350700002)(2616005)(4326008)(66476007)(66556008)(66946007)(6512007)(6486002)(86362001)(6916009)(8676002)(508600001)(316002)(26005)(36756003)(52116002)(4744005)(5660300002)(8936002)(186003)(6506007)(83380400001)(2906002)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5qPJ0ipJjznPUMsbSEliMaujt/M7NMlEnq131XpVz15p2lVrgqsLwUNNw7BcUyocv9ZUIOqHXupKWqo0CakyieTPjV+muoDpm7RSt72S9wWs82z00DAmMx7N113Drzh3TzqoGbJVfYJssBkI4m5ZYsJ4L0lo/I42470PbU52tUsybSXsQnGcrYNINyFGrTboctgJ3NLf72Il6lNAo0+JzoN+bTnKygekbaYpGZWPNVDUnrdZxZlD3VMZUPv8tmrqBOqM0wds2rfsO9VSE2wwXbetVa37za2kCSWiPA7NeTdHFps9eEX0dWlkEy4SPiHGcrkLu8IUxghe20pa2FfPCqSch3PxN3pYtQMsaGle+psBX+Oy0KSClZRPjeLS4c5eFeQVK7oPxuyMrlrbEtrIOa76PLoGErzC0qwq/VCyXjakZl/JeHMhKzhnsMV/OVwNsZLAQWJUhisdYoQ5vi+GM8DyguSBQJpa3rEae1HVY4ebyY+Ipp3nRJvi0TBiJWMt2E/aUAsoAo6S1punQHuCBUPvCUaOuRaAlUMD718gapwoV3JfdDNddSvC1bV7pbO9SgRzw/GGxg6v8Yb41O9ptBKuh2PF1unmXTx6zjcGbNWIIADBYtvW+/vVQFxpFwGN19uNBXdi2EQRcy5cwjeFQ4edWbyGBb2iN4LSps5pC0HwJlHUJbcoAcm0qFKLHdX12PvQkJsakitVkOZrCwXgit06rfidy2RAZVmEzkuCWGFhMDBqfDyEoXTsEvTOwSEpxbfaZN/KEshIlK9KVqFx6vFw/4CechsQ9Z99HLw+mKqXwkxUvdwTuYomVFG1lIl00qTM+G/AfQ7eX3JCJv5FBgUppYlUCFH/0SebdWgXZJTGHJL6I+kqVX1PRF+n+j39QXXmsHufsIj1//uVZl4sxztMCAuFHlIJcT2/OmHDD2gcYZ0BuqmNudd+EVR/sJ/D00lfMHnCeY76nPXC0g/+TT23AUb+oA7DxOkfT7IJOtIRK8UA87C5V7zKqUtx0HZ3mDrlaY5buMOYAINHJFMXy6t+4ZQEsZ9CF5pl4+ihCUOKqDVvTvMQLRxQrtw9UJvue05Vbi3wnUyMbMa7jzoeXOm1dGLiwNnJ/EWh6EkBJiYpFIljW6E0Xa9pDzobmma02KUBNuQbpiORs3YZcwqM1E8jXPZBo+yqYdyu/2u4bvWJYSm16Xx7ksQwrUgDrxGZnQIeWO2G5mn8DBjk583GxIlhDibiVhEWnr50XJQbyY3a9KbM3/hX8bgdG28U7mCust+B0qh7yn1npLR6Lx5mvFcVOywxsrsSmc9KKCUoJXXeB2pgfM4B/aa1vfIZrBRpk8ZgRW1ZrPSkZgdsOzAn+wl+FWq2b2jrr8rIE0xskwdBBXz48hA1Yy/nhWTRs729EbikEbniPw6V0+rUNU7qi7pVVsIpwnAwP+0s8GuZY6Ey1pOwmJ0E7mzS030JOyWNJ6+/fpHrk6Ui7Ny5K6HUGg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 74cff524-aa3c-4c4f-bcb7-08da0afa49d8 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2022 05:18:52.5576 (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: juW7+Oz1/aZzkicEzWcNgqw4I5dnUdjvwYFKAi/sZKbIuJgGKDLmBSAIB6KrQmCgI6MQMI1PRTQPfRkTNx5STA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5537 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10292 signatures=694221 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203210033 X-Proofpoint-GUID: GGAKByvdhh8dYIVeUdGuEfMTFPREwxcp X-Proofpoint-ORIG-GUID: GGAKByvdhh8dYIVeUdGuEfMTFPREwxcp Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This commit enables XFS module to work with fs instances having 64-bit per-inode extent counters by adding XFS_SB_FEAT_INCOMPAT_NREXT64 flag to the list of supported incompat feature flags. Reviewed-by: Darrick J. Wong Signed-off-by: Chandan Babu R --- fs/xfs/libxfs/xfs_format.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index 82b404c99b80..25a157b615ce 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -378,7 +378,8 @@ xfs_sb_has_ro_compat_feature( XFS_SB_FEAT_INCOMPAT_SPINODES| \ XFS_SB_FEAT_INCOMPAT_META_UUID| \ XFS_SB_FEAT_INCOMPAT_BIGTIME| \ - XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR) + XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR| \ + XFS_SB_FEAT_INCOMPAT_NREXT64) #define XFS_SB_FEAT_INCOMPAT_UNKNOWN ~XFS_SB_FEAT_INCOMPAT_ALL static inline bool