From patchwork Tue Dec 14 08:47:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675657 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 BEFD1C433F5 for ; Tue, 14 Dec 2021 08:49:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230085AbhLNItn (ORCPT ); Tue, 14 Dec 2021 03:49:43 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:29738 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNItm (ORCPT ); Tue, 14 Dec 2021 03:49:42 -0500 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE75Q1G004559; Tue, 14 Dec 2021 08:49:40 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=NVvX1kVHR/aKzuSjnoX2nyn3dQOWqPDM6Z54DEFPN/Y=; b=a0gQypvTtTiCu6sgkb+7ltZSrKPvZSMfL0DMhKHjYidKIHIqZsNducCFNbYbjm2XFF+D z/0DkolyRMt/Lqs3WJrBqoa2vH7nvT2Kmk20e8kzysdOnUqABMS/xbL9x+wghS2RB92O dOR4S82eJ3gik/HU/1nRwYzne1uF7ar6/wTBRm0guHZJXpTC6nMYAgaiJATjMqOIPrd+ 3IsRjZNK5lX/zX9A/rfls/PvHkmycFzjYosngIPwscLK00FhSBmQxfZcOSRc6V0X+XJf vCWqfTCO4ao/kWSK+MDB9+hTry6Xi58buONmVRpChJPsl+TKLUxJtF/im1eS2II5c/i5 sQ== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx3mru626-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:39 +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 1BE8eS4F074188; Tue, 14 Dec 2021 08:49:38 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2170.outbound.protection.outlook.com [104.47.58.170]) by aserp3020.oracle.com with ESMTP id 3cxmr9yjbx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eOfksEG27kHJ9xqE9h+oG0dQMNOiQQdzBx5O1wAka0VqGX6LIf9HSR8pkkF6U31vXbFEkoS9aCIsKOVuRpjHvBua7dgnrH5LNeVJkrfoOheb3N7g84MDADGz4SziYX7kYvYe165Qyxb7qgweaG8kR9P1ntEH6QMHmIb6FvYesFAfzR6bGlSBkRU7BBvwjwyvsjYUNPvEvt75usQhi3JeYLugdrb8yKo0MzRDlKAY9TobHJg5DUWk5gZnTrCcHBEPrH5uOKYGaei5wFvwjnCOMFHe2LApinqYnamvWExYrt3Ee5tQji0EAPAkAYo+rqvds5LTGycNydNDGnrXc1+Acg== 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=NVvX1kVHR/aKzuSjnoX2nyn3dQOWqPDM6Z54DEFPN/Y=; b=NZZ/ypubk0qW8odZIwxqW8EUI7jbmSXqY2/CmC+cDarcOAPcs4tEDotaZXSCMed26qzjz9+0Tle/X88t+w878serftOmsOnF9urhOVZEqAcQS+cDmQcwcx5hqQd5xdiAq1O/Q0gcNjNmLNpIldRKalI+huW5UjeekuEc9vCZWaNi/PiwWlO1CYE0t08gPrZY+6TYZy1xHiL4CuEzVb92tBzek77BrqrCAvpuotLY45LQA4uvGflbs7QygEncmP/iCFi0B3uRftpCqRn/Wa3VIQSlQe5O84wKDCRhiMbhHU4c4Rd/5NT76lEDQV6649PuhLnAcg9TVGvKUIfJGfFt/A== 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=NVvX1kVHR/aKzuSjnoX2nyn3dQOWqPDM6Z54DEFPN/Y=; b=GGD2kanoA9GlGSyQ91jq/ykdGcyl2ddxy8XBuAFG7Ni7dwY2T0xY/kNGPqGnQDBrbUjL1T3cRLVaC8Sf1m2KXjXLpDN+JCMB78AMhmg0UVjl14RGDJLsuASEHeSibyVRknOM+VD7xARVkN+napBJalEDGf6IxNZ5ylpUCTmvdTY= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:49:36 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:49:36 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: "Darrick J. Wong" , david@fromorbit.com, Chandan Babu R Subject: [PATCH V4 01/20] xfsprogs: xfs_repair: allow administrators to add older v5 features Date: Tue, 14 Dec 2021 14:17:52 +0530 Message-Id: <20211214084811.764481-2-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: ec0a6a5f-776d-44a2-53fa-08d9bedea828 X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /bdC4xbLQQNttUGrN9EPIxOkCAEsj/H25nyqTE04DVenub60Pz5+7MoQaaWHJkSmlWsnjEkN7MJT4RaEzMvLinhukCNUsmi49tkpKWxtMBLNWZgmBWrmXCG0XDPejb0vN2847j3AWiJtEnmxzc4wVyxYTD4q2kcuq3dlArt08ZbGymVMyn7ku+VZGfV+msT04e+OC0/uW6bNx8hLkKV+jJIVKYqOpvG0cAGw0Ol2IIGZ/jbWz261c1I4omfeHpX8OtqFWOBjjff1OImOAP2XSxaKrnMoDy0Wj25LnAx8HYhCE5APzMWlrtq+hul5OVfNaALuPE3L4ZiGQuRty26hdhfEXM0m+U2cd/ghEizt+mKj+Gn7pgm1KULsaYcdJGrdvT4f09MGtlmxaRkeUnbRShm7FP+NNUZrTucK0H0nm/Qw8M2Qza909GgC/6zCeZKLubHVbnBd3ZsTUGudLt2uh2KRHLdZnpny2woQ+l0h3TzxkNkuv39Q/Is+lmpH6BHrqBnJcdYUIQiB+bdfkruBm5RjKT3ykpT3omcgJ6kq4Y2lcgZZaldoxvmJoxdKAp1QIJsStdn611YF21pMOw/JVAPtht/P4X/oKDgxFnGTmavHhY9zng2ldGhaNWByGB1nUk/Jypm55NJt4HsyN3E4F1xM0cDuhEXZ8smimh1iLBjCXpz7+NkOSZF+FQr/Nnh3E9JIeyBFse3mnzSPk2sSoA== 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:(366004)(6506007)(54906003)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(30864003)(107886003)(26005)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /u+DEvyr/fdAI3Ek4kztwg18XtP3lsp0fRqF6dJuCUle8ygQfnp8WtZFUjukp2sSuvnBeTzUONLzb5jO+jsG6E8N3k5ZEv6PVreVejnP3ArDEzWLsDz+FmnF3OHUcf5rgyAGQvStTsB3oI78d03ae22F5w7A86fg59jlMPt4nL5mVenYlni7GunhWtLuRPwEoajnaMxB3nT55NjFyrfh5h+D8ln3YZGM2zdF8YWBf0wqE+mqjOF2qaQ+UdC790kQ/OKFyZum7+VML04CQwqbJfgsPf1Ee+WTIpi4krNzPiThia0pMdxEMwsKK4fk5vwtgNoQGX0lgvjnVqA/1lT6B9QWY2FIM05nNk+smI3BGKZSXoUpDK+F4HM8/iNehJ0OEwlyvFRLBBtkPKn1SG3Y3N0lc71RbOkBlTQX9HN07ozb5MbSfCq5k0Z+L3xeGW5ik3LQvHUrCOCuJQKZ9dYZGVr/sF6L7K8Z1W5yTFQreYl2IfcVM3d2vCGPph43ptoA0fVPFTo3xbRrYtN6NmAsShXo+ADmSkMHTuAjxCQGwX1Ol47W684pCReEgzHw8ZXUye22osUyaFd5ul0cS1Xm9HX1IoBI3vKdnrV0kuSkpuwAUDFx05596BAi6WK0nGBJP3x37nFAHkKbZwzVPStNiHUtQBhnLtr8uMeJRjSLs5EKTmi7F/cXaBIuHrusR3NUClMvdDUuXb0GKjBnzxocDwdOf24Ie1ooIhb61DxiDMLFmjvF+SKOv7Uc2dVtqJSXOgqRD3qrj2w4wXLwdIbvmMzGR/U7hhRZ9nFr2qtP3/TCJ6GeoW1dd8E/tAtDTFYkOwpTgdBLrta6IRrGJF5QtxMNtIPHcqM0M9AnNfEvniqroFqJv6ypVWPhGHy98kTu1SpNAaSBLnY55gDp7hzJYa2k8vd4eGreQX6WBkpsP4RNFnf694eiW3avg/QPN6fPpcp/WbFaB1Om2MBBUrjrTM7QvnW4Cfsl83NgWZq0F13FdJd94c683O+HuNxT1zpCGfcsR26EIyu0ME0y1kqF/Kkd/9Yw6nuVsKowiJmDETmkbGDsdZqhaX3CGGJgiEIrd1f6H52oXL2T6xTUV1n5TsbUQD3+g4T5KcJT4bLbSxV9qmysPKZHYLlZBt1heYuXcEvJExajowxy4c5tS+UhIsGre/cHRSiHaxTPcY2havghnkX3GW9Fd6eShuzmfb8498mZiBJz79gQkrAzBj0VBr5e9MbK4uzvd4r2V5NZnF7b0GT7N9J1DxIkQK++2DZt02e/g5rUfub6WFFS9w+gpY9HOKHEGbrXpXUlG0myogEraEFtrvXClMxgNWgOSwBxpgmpr7x53fMjJdGcXYqLLEu45jUOqd8xLHU8Tf0jI7XJxGpCLBkbz6WSqDoRM/lI6bX6x+W4DylihUxuZl0pdMdhDd19TZH9q3Ei0XzW15O7PvhJIe5alByf0i8oQVq4nMO1jQgypisTeVSw+7xsVcmbaIzUaGbcGGfkLdglrX+BbFJXiUyvcz0gHD+ZgvowThi20Gdb1xs4/a+fLMAPDszB0GtdSBVRfiuvyGlh2eflSaPBKjt88UhST/vl+uhQFJpJz+kVbpEJ/yHDWEyiZ/bZyOxy0pplQdPOrD+Jt0k= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec0a6a5f-776d-44a2-53fa-08d9bedea828 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:49:36.6860 (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: h8GQtzyeIyNYpj2e1txYLJ0NhkAZ2tBL+Ec8kMnFYEFX8blbTyLbiqBG0Snwmq6l5Lcn13WrjUAQDPTr8NvJ4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: Hh_L1kAY60BEbdQ1PYgw3PcHNuOgbcrq X-Proofpoint-GUID: Hh_L1kAY60BEbdQ1PYgw3PcHNuOgbcrq Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org From: "Darrick J. Wong" Add to xfs_db the ability to add certain existing features (finobt, reflink, and rmapbt) to an existing filesystem if it's eligible. Signed-off-by: Darrick J. Wong Signed-off-by: Chandan Babu R --- include/libxfs.h | 1 + libxfs/libxfs_api_defs.h | 3 + man/man8/xfs_admin.8 | 30 ++++++ repair/globals.c | 3 + repair/globals.h | 3 + repair/phase2.c | 221 +++++++++++++++++++++++++++++++++++++-- repair/rmap.c | 4 +- repair/xfs_repair.c | 33 ++++++ 8 files changed, 286 insertions(+), 12 deletions(-) diff --git a/include/libxfs.h b/include/libxfs.h index 24424d0e..9ca1ed86 100644 --- a/include/libxfs.h +++ b/include/libxfs.h @@ -77,6 +77,7 @@ struct iomap; #include "xfs_refcount_btree.h" #include "xfs_refcount.h" #include "xfs_btree_staging.h" +#include "xfs_ag_resv.h" #ifndef ARRAY_SIZE #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) diff --git a/libxfs/libxfs_api_defs.h b/libxfs/libxfs_api_defs.h index b76e6380..c8a4a8a0 100644 --- a/libxfs/libxfs_api_defs.h +++ b/libxfs/libxfs_api_defs.h @@ -21,6 +21,8 @@ #define xfs_ag_init_headers libxfs_ag_init_headers #define xfs_ag_block_count libxfs_ag_block_count +#define xfs_ag_resv_free libxfs_ag_resv_free +#define xfs_ag_resv_init libxfs_ag_resv_init #define xfs_alloc_ag_max_usable libxfs_alloc_ag_max_usable #define xfs_allocbt_maxrecs libxfs_allocbt_maxrecs @@ -109,6 +111,7 @@ #define xfs_highbit32 libxfs_highbit32 #define xfs_highbit64 libxfs_highbit64 #define xfs_ialloc_calc_rootino libxfs_ialloc_calc_rootino +#define xfs_ialloc_read_agi libxfs_ialloc_read_agi #define xfs_idata_realloc libxfs_idata_realloc #define xfs_idestroy_fork libxfs_idestroy_fork #define xfs_iext_lookup_extent libxfs_iext_lookup_extent diff --git a/man/man8/xfs_admin.8 b/man/man8/xfs_admin.8 index ad28e0f6..4f3c882a 100644 --- a/man/man8/xfs_admin.8 +++ b/man/man8/xfs_admin.8 @@ -149,6 +149,36 @@ Upgrade a filesystem to support larger timestamps up to the year 2486. The filesystem cannot be downgraded after this feature is enabled. Once enabled, the filesystem will not be mountable by older kernels. This feature was added to Linux 5.10. +.TP 0.4i +.B finobt +Track free inodes through a separate free inode btree index to speed up inode +allocation on old filesystems. +This upgrade can fail if any AG has less than 1% free space remaining. +The filesystem cannot be downgraded after this feature is enabled. +This feature was added to Linux 3.16. +.TP 0.4i +.B reflink +Enable sharing of file data blocks. +This upgrade can fail if any AG has less than 2% free space remaining. +The filesystem cannot be downgraded after this feature is enabled. +This feature was added to Linux 4.9. +.TP 0.4i +.B rmapbt +Store an index of the owners of on-disk blocks. +This enables much stronger cross-referencing of various metadata structures +and online repairs to space usage metadata. +The filesystem cannot be downgraded after this feature is enabled. +This upgrade can fail if any AG has less than 5% free space remaining. +This feature was added to Linux 4.8. +.TP 0.4i +.B metadir +Create a directory tree of metadata inodes instead of storing them all in the +superblock. +This is required for reverse mapping btrees and reflink support on the realtime +device. +The filesystem cannot be downgraded after this feature is enabled. +This upgrade can fail if any AG has less than 5% free space remaining. +This feature is not upstream yet. .RE .TP .BI \-U " uuid" diff --git a/repair/globals.c b/repair/globals.c index 506a4e72..d89507b1 100644 --- a/repair/globals.c +++ b/repair/globals.c @@ -50,6 +50,9 @@ int convert_lazy_count; /* Convert lazy-count mode on/off */ int lazy_count; /* What to set if to if converting */ bool add_inobtcount; /* add inode btree counts to AGI */ bool add_bigtime; /* add support for timestamps up to 2486 */ +bool add_finobt; /* add free inode btrees */ +bool add_reflink; /* add reference count btrees */ +bool add_rmapbt; /* add reverse mapping btrees */ /* misc status variables */ diff --git a/repair/globals.h b/repair/globals.h index 929b82be..53ff2532 100644 --- a/repair/globals.h +++ b/repair/globals.h @@ -91,6 +91,9 @@ extern int convert_lazy_count; /* Convert lazy-count mode on/off */ extern int lazy_count; /* What to set if to if converting */ extern bool add_inobtcount; /* add inode btree counts to AGI */ extern bool add_bigtime; /* add support for timestamps up to 2486 */ +extern bool add_finobt; /* add free inode btrees */ +extern bool add_reflink; /* add reference count btrees */ +extern bool add_rmapbt; /* add reverse mapping btrees */ /* misc status variables */ diff --git a/repair/phase2.c b/repair/phase2.c index cb9adf1d..c811ed5d 100644 --- a/repair/phase2.c +++ b/repair/phase2.c @@ -133,7 +133,8 @@ zero_log( static bool set_inobtcount( - struct xfs_mount *mp) + struct xfs_mount *mp, + struct xfs_sb *new_sb) { if (!xfs_sb_version_hascrc(&mp->m_sb)) { printf( @@ -153,14 +154,15 @@ set_inobtcount( } printf(_("Adding inode btree counts to filesystem.\n")); - mp->m_sb.sb_features_ro_compat |= XFS_SB_FEAT_RO_COMPAT_INOBTCNT; - mp->m_sb.sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR; + new_sb->sb_features_ro_compat |= XFS_SB_FEAT_RO_COMPAT_INOBTCNT; + new_sb->sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR; return true; } static bool set_bigtime( - struct xfs_mount *mp) + struct xfs_mount *mp, + struct xfs_sb *new_sb) { if (!xfs_sb_version_hascrc(&mp->m_sb)) { printf( @@ -174,8 +176,193 @@ set_bigtime( } printf(_("Adding large timestamp support to filesystem.\n")); - mp->m_sb.sb_features_incompat |= (XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR | - XFS_SB_FEAT_INCOMPAT_BIGTIME); + new_sb->sb_features_incompat |= (XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR | + XFS_SB_FEAT_INCOMPAT_BIGTIME); + return true; +} + +/* Make sure we can actually upgrade this (v5) filesystem. */ +static void +check_new_v5_geometry( + struct xfs_mount *mp, + struct xfs_sb *new_sb) +{ + struct xfs_sb old_sb; + struct xfs_perag *pag; + xfs_agnumber_t agno; + xfs_ino_t rootino; + int min_logblocks; + int error; + + /* + * Save the current superblock, then copy in the new one to do log size + * and root inode checks. + */ + memcpy(&old_sb, &mp->m_sb, sizeof(struct xfs_sb)); + memcpy(&mp->m_sb, new_sb, sizeof(struct xfs_sb)); + + /* Do we have a big enough log? */ + min_logblocks = libxfs_log_calc_minimum_size(mp); + if (old_sb.sb_logblocks < min_logblocks) { + printf( + _("Filesystem log too small to upgrade filesystem; need %u blocks, have %u.\n"), + min_logblocks, old_sb.sb_logblocks); + exit(0); + } + + rootino = libxfs_ialloc_calc_rootino(mp, new_sb->sb_unit); + if (old_sb.sb_rootino != rootino) { + printf( + _("Cannot upgrade filesystem, root inode (%llu) cannot be moved to %llu.\n"), + (unsigned long long)old_sb.sb_rootino, + (unsigned long long)rootino); + exit(0); + } + + /* Make sure we have enough space for per-AG reservations. */ + for_each_perag(mp, agno, pag) { + struct xfs_trans *tp; + struct xfs_agf *agf; + struct xfs_buf *agi_bp, *agf_bp; + unsigned int avail, agblocks; + + /* + * Create a dummy transaction so that we can load the AGI and + * AGF buffers in memory with the old fs geometry and pin them + * there while we try to make a per-AG reservation with the new + * geometry. + */ + error = -libxfs_trans_alloc_empty(mp, &tp); + if (error) + do_error( + _("Cannot reserve resources for upgrade check, err=%d.\n"), + error); + + error = -libxfs_ialloc_read_agi(mp, tp, agno, &agi_bp); + if (error) + do_error( + _("Cannot read AGI %u for upgrade check, err=%d.\n"), + agno, error); + + error = -libxfs_alloc_read_agf(mp, tp, agno, 0, &agf_bp); + if (error) + do_error( + _("Cannot read AGF %u for upgrade check, err=%d.\n"), + agno, error); + agf = agf_bp->b_addr; + agblocks = be32_to_cpu(agf->agf_length); + + error = -libxfs_ag_resv_init(pag, tp); + if (error == ENOSPC) { + printf( + _("Not enough free space would remain in AG %u for metadata.\n"), + agno); + exit(0); + } + if (error) + do_error( + _("Error %d while checking AG %u space reservation.\n"), + error, agno); + + /* + * Would we have at least 10% free space in this AG after + * making per-AG reservations? + */ + avail = pag->pagf_freeblks + pag->pagf_flcount; + avail -= pag->pag_meta_resv.ar_reserved; + avail -= pag->pag_rmapbt_resv.ar_asked; + if (avail < agblocks / 10) + printf( + _("AG %u will be low on space after upgrade.\n"), + agno); + + libxfs_ag_resv_free(pag); + + /* + * Mark the per-AG structure as uninitialized so that we don't + * trip over stale cached counters after the upgrade, and + * release all the resources. + */ + libxfs_trans_cancel(tp); + pag->pagf_init = 0; + pag->pagi_init = 0; + } + + /* + * Put back the old superblock. + */ + memcpy(&mp->m_sb, &old_sb, sizeof(struct xfs_sb)); +} + +static bool +set_finobt( + struct xfs_mount *mp, + struct xfs_sb *new_sb) +{ + if (!xfs_sb_version_hascrc(&mp->m_sb)) { + printf( + _("Free inode btree feature only supported on V5 filesystems.\n")); + exit(0); + } + + if (xfs_sb_version_hasfinobt(&mp->m_sb)) { + printf(_("Filesystem already supports free inode btrees.\n")); + exit(0); + } + + printf(_("Adding free inode btrees to filesystem.\n")); + new_sb->sb_features_ro_compat |= XFS_SB_FEAT_RO_COMPAT_FINOBT; + new_sb->sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR; + return true; +} + +static bool +set_reflink( + struct xfs_mount *mp, + struct xfs_sb *new_sb) +{ + if (!xfs_sb_version_hascrc(&mp->m_sb)) { + printf( + _("Reflink feature only supported on V5 filesystems.\n")); + exit(0); + } + + if (xfs_sb_version_hasreflink(&mp->m_sb)) { + printf(_("Filesystem already supports reflink.\n")); + exit(0); + } + + printf(_("Adding reflink support to filesystem.\n")); + new_sb->sb_features_ro_compat |= XFS_SB_FEAT_RO_COMPAT_REFLINK; + new_sb->sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR; + return true; +} + +static bool +set_rmapbt( + struct xfs_mount *mp, + struct xfs_sb *new_sb) +{ + if (!xfs_sb_version_hascrc(&mp->m_sb)) { + printf( + _("Reverse mapping btree feature only supported on V5 filesystems.\n")); + exit(0); + } + + if (xfs_sb_version_hasreflink(&mp->m_sb)) { + printf( + _("Reverse mapping btrees cannot be added when reflink is enabled.\n")); + exit(0); + } + + if (xfs_sb_version_hasrmapbt(&mp->m_sb)) { + printf(_("Filesystem already supports reverse mapping btrees.\n")); + exit(0); + } + + printf(_("Adding reverse mapping btrees to filesystem.\n")); + new_sb->sb_features_ro_compat |= XFS_SB_FEAT_RO_COMPAT_RMAPBT; + new_sb->sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR; return true; } @@ -184,16 +371,30 @@ static void upgrade_filesystem( struct xfs_mount *mp) { + struct xfs_sb new_sb; struct xfs_buf *bp; bool dirty = false; int error; + memcpy(&new_sb, &mp->m_sb, sizeof(struct xfs_sb)); + if (add_inobtcount) - dirty |= set_inobtcount(mp); + dirty |= set_inobtcount(mp, &new_sb); if (add_bigtime) - dirty |= set_bigtime(mp); - - if (no_modify || !dirty) + dirty |= set_bigtime(mp, &new_sb); + if (add_finobt) + dirty |= set_finobt(mp, &new_sb); + if (add_reflink) + dirty |= set_reflink(mp, &new_sb); + if (add_rmapbt) + dirty |= set_rmapbt(mp, &new_sb); + + if (!dirty) + return; + + check_new_v5_geometry(mp, &new_sb); + memcpy(&mp->m_sb, &new_sb, sizeof(struct xfs_sb)); + if (no_modify) return; bp = libxfs_getsb(mp); diff --git a/repair/rmap.c b/repair/rmap.c index 12fe7442..1e8948a6 100644 --- a/repair/rmap.c +++ b/repair/rmap.c @@ -49,8 +49,8 @@ bool rmap_needs_work( struct xfs_mount *mp) { - return xfs_sb_version_hasreflink(&mp->m_sb) || - xfs_sb_version_hasrmapbt(&mp->m_sb); + return xfs_sb_version_hasreflink(&mp->m_sb) || add_reflink || + xfs_sb_version_hasrmapbt(&mp->m_sb) || add_rmapbt; } /* diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c index 38406eea..e250a5bf 100644 --- a/repair/xfs_repair.c +++ b/repair/xfs_repair.c @@ -67,6 +67,9 @@ enum c_opt_nums { CONVERT_LAZY_COUNT = 0, CONVERT_INOBTCOUNT, CONVERT_BIGTIME, + CONVERT_FINOBT, + CONVERT_REFLINK, + CONVERT_RMAPBT, C_MAX_OPTS, }; @@ -74,6 +77,9 @@ static char *c_opts[] = { [CONVERT_LAZY_COUNT] = "lazycount", [CONVERT_INOBTCOUNT] = "inobtcount", [CONVERT_BIGTIME] = "bigtime", + [CONVERT_FINOBT] = "finobt", + [CONVERT_REFLINK] = "reflink", + [CONVERT_RMAPBT] = "rmapbt", [C_MAX_OPTS] = NULL, }; @@ -324,6 +330,33 @@ process_args(int argc, char **argv) _("-c bigtime only supports upgrades\n")); add_bigtime = true; break; + case CONVERT_FINOBT: + if (!val) + do_abort( + _("-c finobt requires a parameter\n")); + if (strtol(val, NULL, 0) != 1) + do_abort( + _("-c finobt only supports upgrades\n")); + add_finobt = true; + break; + case CONVERT_REFLINK: + if (!val) + do_abort( + _("-c reflink requires a parameter\n")); + if (strtol(val, NULL, 0) != 1) + do_abort( + _("-c reflink only supports upgrades\n")); + add_reflink = true; + break; + case CONVERT_RMAPBT: + if (!val) + do_abort( + _("-c rmapbt requires a parameter\n")); + if (strtol(val, NULL, 0) != 1) + do_abort( + _("-c rmapbt only supports upgrades\n")); + add_rmapbt = true; + break; default: unknown('c', val); break; From patchwork Tue Dec 14 08:47:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675659 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 95002C433EF for ; Tue, 14 Dec 2021 08:49:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230123AbhLNItp (ORCPT ); Tue, 14 Dec 2021 03:49:45 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:30526 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230102AbhLNItn (ORCPT ); Tue, 14 Dec 2021 03:49:43 -0500 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE7QMeT004125; Tue, 14 Dec 2021 08:49: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=Yfb+UyCobwelTzMQ6rnilnINkxKx5BR7DN1la4TOR9o=; b=htMG33o0Ojft/sIRUxZnKF0bZSeCBUsjXTq6KgWDLQcW6rgoVUsJdZhQGD6u47J3jZ9I M214ZjAx0/w2m6Bvx65yxDC2hTJ4kihE3u5q7vMrMckREQ8bWYKRFNGN88adYEDTnlAY XCBx7rJ9gyERWcR1ail9CaTY7548cTLt+BHFkiikJyAK83I9rsvkxRw72kfr4MULOJl6 FaD13DwOcj0RtKsUBszUttEdNqM42WTZnHCiVyehIle7gW/mqPQVC5CSgwG6PGkvY4bm y9c3qb2lC6LV69e2fFAMIwaZ/8bshJpfMU8XxhGdpklPU6q0FNWJ8B3BLrwbfyj4/Zdv Zw== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx3py33d5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:41 +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 1BE8foUw104459; Tue, 14 Dec 2021 08:49:40 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by aserp3030.oracle.com with ESMTP id 3cvj1djssr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=axxxqsnVIn9kF+0aMtTlfZ3QWBUmcTFqG94EGRFy7Hvp8xOE6eRA7kGgyPxAS7cYBViVdRGtoVJr6lttKFH9x4QvjuAC7MyFb+1nOTBKQIJ2VxsumxE7ym4iSbbTg/C0qGQ5qzqvg5zHuj4TG+T4/JMdS+dMia7CTPxTcPNdbFp90WHrZzFyP45Ere2UghxJg3knz1MkvCjDAd5DRQnTP8NUTd4hBUnAdkRLqCNe9RBU3cgkVyiSaRHhcw9xxAMz4CZdaTKG/CoDAypuXfmAwkBKfIhhGedka5GlQU59BmkbdddAWf4Lk/f0f1NAKCSh1gAb+wCUIiT6KzmvzGFFCg== 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=Yfb+UyCobwelTzMQ6rnilnINkxKx5BR7DN1la4TOR9o=; b=i8taLkedcU4D/UUZGjW0wOIfU4bhmpmdWoxQlARit22bLJMxiWWLmChKVUZP+1h98EHZCqa6GFRlsPVkz/I5OfXuIfBj7nKn3ll4iWV1BMP+IietinJ2BQ1/A5Zk8FS6Qy5jf1Kqx+9hYEWcPe0s2QligszB/k/zX2xpLKUZRSiZH1jbl24zz9U8qE/pNoM4AA9BxK1covFNdWgjwTFhjzgJrtokSwXA/o8owbFYCtkFwFdhjHnGjLd4RUERO7srn2LZq+75S56YNSb2TydfSLHMxTd/KNPs6vBGf6ADdfAzhM43WlOUUB+PsxwAMXWwyw5plMtRQdGYGPElxBiy1g== 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=Yfb+UyCobwelTzMQ6rnilnINkxKx5BR7DN1la4TOR9o=; b=HsgVNDyT/ErYq8W6DpH9hHcpJrheJpPZw7x5tFIhmF+XpqEgAxK3MD68lNRqn9c9eLOwkhq75nD0QXJ7W4O68PXozgyfAU3FYY43q6kZXqbAE3uih8/bCwNarLIxhbrR4BvFjW/8wKkaSiuoUtpIB9kwVCaMEuKprlYTJCFoEbc= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:49:38 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:49:38 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 02/20] xfsprogs: Move extent count limits to xfs_format.h Date: Tue, 14 Dec 2021 14:17:53 +0530 Message-Id: <20211214084811.764481-3-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: 6a698719-faa8-41c9-1cae-08d9bedea987 X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3276; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XK8blUVL3RidaD9/ONlmLIgXoJ0rPO3oKZoM8x5JK2TTnIrmia+In/0resszw/8uH7r2EWPtcfEJ+YhsYRaW21p4BlTDpM5hMEzfmQ4P4zpm9xGVzGbIBWymQew5Z0QsCnW3hUHafJZUFhKdUlrdQY8J55t/5pbBd6XS/1+M6nMNGs92zWjh6uEj4W+pLdA3PAzgFRMMtEKxm4do/pnQJJSEZwlQnHQ4Irint7Qjp/fd+brcrFqWbzzOEuHO2BR36qBresWVa3Kgqh9HmCkuEiDX7yimi2Jm3Pp8s0tpsjlrIgFJEhDydp/DDf4iHkGnWyFfF7ZpntwBvegJTXqSJ46z3cz1MdTflvm9DK8LEWKdDBPlAF38FZUg/9zZC6w9yDijF9B8HcK76SVkRiRxWHHyebUd78+8OSKtyyBuDEKc83n6bXs+mzgbpU1HUic+O90Lw+2ecifSCQjHmlmcwVclXZ2BWcVzxu8zhSl7SGXRhd5Ndi0I3YueplVQCtUaLqm8mfYSGQ5mHZM2UeEdwf5j8hjvJG3eDeuh9+uY7y9Ufos45g9Z4cc14Wus8RuRq0HCPX6AQVyRYysgB65dN5LKY1PlqWtAndX2981UBKeE56aC339joCGinp+037EjXVy77YhvI/ZHfvsHEjigO7i+XLGhPzTdHM0XS1XorcPHRoMrb/61c2mGuetMiTQR0adyNIYEqm+vdeC5HXiT+g== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: eEweJ50R6qsNi5/sZVTCDpmig6YoYose4cRH038ad/QrCCbzBcoADdr3KAQDbXMmrzV7TY38KyBMGjPTtszUmXYUetHWMP5vcQ1TLUWjfkIr60PMMe6/VFW+0q+LzMheZ8RK6Z6FiM3CIAgKG5dah1Wsl3kkYzn3jiR0996/ayIr3rhUun3bRCJsyqfrNLxY66R/HOWuTJ5MrNOJefZDy/FWlpWQQpBLDpUBXnhuYaJ3yR42KfzPbbOMmFt0Fy2WCp5TAR4RpkTRbuqQQdEQZYkNqYhwJ33YyNwHvVGgbzBGRUkIust/ejBw5xshLttJY3DBZLGibTh0ePUohErLSXT6ibZCiYPb/dEujYgW5uVE4QtmfvbA1i0j2P2wRSkbKVAKWloLKkf9qBRx/nF44SvA5TQ8cQ0gL4Jq8rSdIchDEeOdzNZESTwkfbALEroT6elwlR0POMEiBXYNpVKWXAcA2W18MtaQctNc//07Ymz2sFdedOCrEkg26IVh1gNsdfvkZONlON/iVuqPCJ/+naHiBOqABLWOk3+muYPWECacRO2hoPHAVS5OYVVd9JA4Lph4tUToJT9xg93nI8zIBdhjxpJctoi7OsRGcrkffMVGN/jjgFC5jP7WczB4IcKpcolSRdaQxLaeYa/NeJXMrNhZrSdJOzRQ3vSvnHJ6xdK+TfOG6TXZzXyQinpGKGZ12/efWv0N3u54jph1Iz0Cxk0e7bLAfWYD1eV+qQLLvLHZxfrC9kPr6FPdfECxgNs+YjGXNN3O2qhIjhYbhQu29gY7W4DPh9Q0JJZ9rsyAItiS1SDo2/npxBMqzSt+wf01fO7IDLJhjmL9BWpu4lgf7UisPkQLIBSGyucNAJbDjWTnxuDpFA3e44CxLBMCv/VxUrBoJ8Hz6BWie2teRqNwiHKLK4QKiwHBL5X/gQBLtYt2oJLOAAVYwx2y+wDpi/P1RKk2QrNhSbot/J3NZgZAEzHN2tM2gTNVW4at5euE6KxJjMj+U3DaZZYMhSLcgSB50yktvcmMbRCUjvYd+COdAMBN4RKXuudU3ECU/RMecou6BUXQUxUtMmW2ZgN2FlCVu6fH+2e6a9hAFAYJn5Vmwn6pmrdqk/8Ir2L7ettC/e2ivpo1G36c0o1RMNOvYvG9iHwOzoFPeXtuMohHiUcSScMQqTL/8wPmEf5rEl75Y7uBqncA1Uw86P6VS+OPnGwl7jfhmvsHAlOLjw0Q2Perf6wVdB5LKKM+0l0p3vBIXeIgK3Cg5kRuH/ga50CRjZWJJgn3SFJPwFuzkgXXBragh4GgiNwfgPEOv0n4gplZI8PvlCH2WHzCBe1iFFGsc1O1R4mY54L/9I9usdC6fgoy8qM01rOldbfkefUBsOBPqLgCsKCCA+VQdeF+5STJebp9da0qf79twXwCXLtESXJODUiSPz9X9RRrFlJwehGeMeSbkJV5Kn2R2SfzNlBQlkZmd6GTA8VdqixdjzXQ5IR9Rqs3zS7ox+9L+F3q8nGWYDKuDDnmlQb+87Y6j+suFkqbWKjqBMQ1M4qHBcjY2R06C8YbanIDhe5T/uunmwY1NRtefmBlYlDhIBf9sEJMQ972DlLJKwdK69Ky6xfcwyCLUSeMI+Xnct300Z3HpcApYzc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6a698719-faa8-41c9-1cae-08d9bedea987 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:49:38.9232 (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: nsfcwq9oxexe6BjplUa55zN5yjMqvENqti8WqM/5RVgKRcOEqUfVEmTcMO2kcFCFmMHbmXlkeJ1p/uUurVwaOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: sB9j2S7H9QwsIGrChvJzO2VAioOO60Xb X-Proofpoint-GUID: sB9j2S7H9QwsIGrChvJzO2VAioOO60Xb 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. Signed-off-by: Chandan Babu R --- libxfs/xfs_format.h | 7 +++++++ libxfs/xfs_types.h | 7 ------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libxfs/xfs_format.h b/libxfs/xfs_format.h index 37570cf0..1e31c31c 100644 --- a/libxfs/xfs_format.h +++ b/libxfs/xfs_format.h @@ -1051,6 +1051,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/libxfs/xfs_types.h b/libxfs/xfs_types.h index 0870ef6f..7ff162b1 100644 --- a/libxfs/xfs_types.h +++ b/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 Tue Dec 14 08:47:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675661 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 3221EC433EF for ; Tue, 14 Dec 2021 08:49:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230102AbhLNItr (ORCPT ); Tue, 14 Dec 2021 03:49:47 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:34228 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNItr (ORCPT ); Tue, 14 Dec 2021 03:49:47 -0500 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE7Av5n004564; Tue, 14 Dec 2021 08:49:45 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=uW5Tcv6KUj0LF9j+5A7cvELDYMBgM7IBvzj+0jyLk3w=; b=Gz3qwfzeZibivIavRvNAGrfdBpRuAagcTtPRA3y4wAQwUGbqSsA06WZ6KEL5hN0FkoRK oxQl2dR70+EtnwrCHLnVDun26nR/fwNCdvcEbt+cVA8lhgb9TY42bV5HssMsL4V9K++l 1ixKcQDceopDH1d39lLfZW40V46eFPYKY2q+ogabmpxaQDMrjH9L5q+HhArE1XqqBB+2 /KKM6s0GYx578OE4ZGsV6DiLx4jYWL6+RGBjxyVanCEfa5zLd3QcT8/kVD604Pr2Iwys Lqw+KyUKzZwBxTkyZnBmoNtEDxx5vsL7BSb0n8psymFHiH08ULQmLounE0iHzVSzGBlL 9w== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx3mru62e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:44 +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 1BE8eSm3074163; Tue, 14 Dec 2021 08:49:43 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2175.outbound.protection.outlook.com [104.47.58.175]) by aserp3020.oracle.com with ESMTP id 3cxmr9yjda-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=md4HhFTa1GwBJtaiMaswFP9HRd/ZD21nnannlS0wpf8AwT9w8C3cBqdxwxCq5LGEzNv2KPGJkqqeRLuVNo0x/Bk47t3QXkYztz1ZKUK+QBnIdIFJAA0q/yhj6R1JoZpHpIPwzIY247dw70jGTJjN/qQ49q/DJuFmpB1FidrPPZvapAsZU0bf3+FWXmsFpv2YHriDMWXGgqiH9AxT1YkgRTtrKkSeMJc7KVYwhMbhGjWfCSvxYwOCNYUHdiVMtyzKhdrT+0t2tgZDLPHZuMSKKnPmn8B1H9Pp5y1tCaAqMpD77CjwiXyxCYwIpmOivL0qDRdjKauziJ6/dzhbUCCtew== 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=uW5Tcv6KUj0LF9j+5A7cvELDYMBgM7IBvzj+0jyLk3w=; b=J15O0QyKpc4QSVebaXZcAmgfanxhDso0d/q5g4WQVaLI0r7xtLqPeuOyCOxgXBqgh1h/0+Z9oOdV+W8JPb12k9JwjE7gFxMIs4FdQLOnvXiKDhDdknqVF0hvyTJJMLNsQywLXUwq+xjW/+sOubSGe35RkMEu3WnkWXNSuSd0mRT1gU0DkmndvKugKaktTPkSvlxmG3WfvlsoZNyFyFimiOScwYRAaBSiRLv9wzcLVk1yADwoyy5rpFsTgm5p+E8hWp9OjuQaUmUKQYEDM7ngf1aNqPTD1PUZUkBqjMoAqevZ2a7v3vaJPqt3yjZA5ig4pwbjnoS6J2Pjp6i7uIdWzg== 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=uW5Tcv6KUj0LF9j+5A7cvELDYMBgM7IBvzj+0jyLk3w=; b=LWdKCGk5tb4387DlyoiUUzN7OpuzhcHa/x01MfH6UPJ57aV4UFv6GhH/1b4Ky7eG9edRyJFDPaB7l2fBunXVcZ+LZDWcPUcMc0jPK/WQjOzuM4o8C6Pb6wkZQ1aP/SAWHxiWyevdZPLOHmAxbnvVyHFXEebk6K8ykmbLH5l6OxA= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:49:41 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:49:41 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 03/20] xfsprogs: Introduce xfs_iext_max_nextents() helper Date: Tue, 14 Dec 2021 14:17:54 +0530 Message-Id: <20211214084811.764481-4-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: 6d68a2a7-d8bd-430d-a114-08d9bedeaadc X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4qOSYKG1RPikt47L6TUtHRZGGpxbghMUkcirMcgXCHYuKxwRjBUKVX4TMaj5oFdzhvi730f4SJosmA2sUe+jzXRHpAYSsoTP9UN1gcCNLJ3fFb2sn8gxHWC3byiJlxFOTceef+GUBpNwUJNYpn1XHEKNcQvMb1dS2SqhjApq9cK10sTfM5SmBauvyLVC1gbWcq8Dnsz5bdsIMA7VKlpHkBhi+mEL25djrDZELsDKARj1JdM4pSZSyf9exdHGPCqVvZoRX6g89+43V5C2aI5pMJ982CzpYlOBQpt5DVZWb01ntGFTmG5NLVZtK3bF7fSufOEcPi0vqFI5rBlqhMhqa3j8wQ0TPpg6Txdd8WtHzFfJnvy6Ylg+56YwSnUhCwmiTf0BvbelCoz0VCc13e8F14KyL4Pv/nfZ9YCrcXBWW9dpqluOyE4cA5loLm8IHGdJzXZelftxMa5+F2GPIMfkGLtXFX5jnOEm0tvT4Jz0fzA7G79iXldV/5eIagKFovvphhSUgIYCuNW/Jc5UywbVd6eecNxJJkVUdkxhoPur6znC4ASunBUAMwfh6cvSFTmLyC5+9GBPaj6khm/4Glny8mbicmZh2WRiRkLlGD8MjoqH1qMVMbxMKJe34ot9x8DMnm0iVE4N7qKdmny2+AkRG6l05ww55zVfF26h5naucci5Kj2LKp3xaE66j4DiOn6TYKfH0WonSLhKxxcfoI9nvw== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: EkWP6N5HSMGLji9BkOuO/eG2/Qw4JbyXW6yGjixkz8+WIU4hC+ZsyNNV14QsV/2FK5EAkD94picGLRgBMV4qZ5dWP2sfTbQ0Yk3fLFy8e/G8tuEfEm6qRD3u3IMY1cgZpdufesI5wyKovVSzkj3Gr6BIgu5vY+X8b5ZJpf9PMA5vZnW5n1/2lnT8aHDgvKcqx3ZI36MoHjrAhPij918xWij/63xz7D0Fsj6C+oUMXxpezSgQIr5Bd6nGVLssAiWqUTcId/UbwAVnORe9LS6SYpVG+vcbDlYF0c5FnJhistpD1062LGxbRJQEnOe6rqjd7uDesdRGTNiiPBrOHCGvWkLJrwbAsI/pu3mW8MpR2wuMCICKTEedrkayXtpIevHZQrWQKdWGefsEvn/vv/jPCzNUaXd+Z3zHmMNjnYXcdokYmx3xh1ERFrS0a569ynhmIcKvP0NRYdYlAdFItvgceD/hdHSC87ZENIDVwvBQo9kRixVZzxvpZrgKcJwJvXxs66OMeMcIYt1KqJ2DDt5A1+0Gtu7N/jy+iuAsikcemd8grq68TbRFWsMC33YXDjul9r3Mh915hiRjFr+QsYkA9SgGxIYCX5TPpwRmzMiGZTlFhrfgHKINpA8QWsAOjphz69SodhvWYeby2jszkIZIsI6/MEawfLzh2Z3eftoHIm522O1u2txgpIDZ85CaJHGBG1iwNj6yeJzOSh0lxYRtkLQwE+8uvRUI40FXRmOHZrYcVPtK1VK3lF3Tfi6fxVINN22GjQoXtOi4F6oZ9aJ0Qyu5cvt6MHUbnemHFHHrY0xmKe9EwbGgnDPTLhlnwbf2t5POabyPnAWsFEkIOiOznBMtEnIlePUC8iNZBAKePHcdFC/2ZEhlPthoOLryqqDWvc3Xz0WkZhj/RumsTF4tMtJz79VPT6JR8pArV/3aj6vMbbAmhjnaj1866paZJnV6JtyT/EOcRUHcbRu8y5UQ12jmqjypfwuIHEa+apXKtWWmohoOaNxscQ9+mP1FwugbaZVmOsO1XJ85/v8tDed51lpHFNHEojSRTxUtfIaxWjmIlCxVPCWPV9dzqWrRNqqkRzhzhYjbRwiy6j1h07wV3V/9feYloeBzo/oez/pOmTI/2SW9+UDmC3YrU7mkJZDo+OBjMTgMuW5eOM5KgaiR1Y7aPWADMmt1kwFy/Hd7HNTuuhf9PSC1v7f6SVDW8xdS8o3ACC1gKcbA0nkQzpvMPqoRyIqb9o5jhj725JdxVlVLqsvjS+0h69nie9nyUNCEzBYg+5o5yrpEQaXaJH7Qq1qusmWOGAV0f5ZTEF84a1N2SDwZz8lmp2SudPhMDqK9Mq2qWuJJ1g+DhLkVKFT7l2BhAmJqu/pwSrIj4p1TBF7u4zEw8RlQI96QCp97tuMFLsJ5ngAqDJXoEd/lMrmDZYpKc4VK78DGm6HBTdu4Y2TL66QnNo8JPEvo8O6tuIoFXdhfvqqoJV+RLOC1hCOCe41i8QgsVKSLe/vwQBxIMC+OMn0L2e4gMlVUT8d9HYqPv/B0OcEqAQQ1ZXb8U1SMFanQ1VAypFe8J2RMotAWdaLQwDvnVJtxfFk6gBdO6vAoNpgPVTkNTHLVg7FB7pzu+h3/RI5M6IPiQ0naGzVZ2YU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6d68a2a7-d8bd-430d-a114-08d9bedeaadc X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:49:41.1663 (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: mnHgpluTBnjK9sV/2ZMlouxytG8faCMd80sBbV3YmGW8s1ZTyXyZTdhOngCSMud3Hi6kT6i5FCbFRvptEnQYOA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: 9vbPFrVOI1Q6MABDOnoe3GJqJuRkyCU6 X-Proofpoint-GUID: 9vbPFrVOI1Q6MABDOnoe3GJqJuRkyCU6 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. Signed-off-by: Chandan Babu R --- libxfs/xfs_bmap.c | 9 ++++----- libxfs/xfs_inode_buf.c | 8 +++----- libxfs/xfs_inode_fork.c | 2 +- libxfs/xfs_inode_fork.h | 8 ++++++++ repair/dinode.c | 4 ++-- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/libxfs/xfs_bmap.c b/libxfs/xfs_bmap.c index 318d0c06..e7911a2a 100644 --- a/libxfs/xfs_bmap.c +++ b/libxfs/xfs_bmap.c @@ -68,13 +68,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/libxfs/xfs_inode_buf.c b/libxfs/xfs_inode_buf.c index f98f5c47..46dcfe77 100644 --- a/libxfs/xfs_inode_buf.c +++ b/libxfs/xfs_inode_buf.c @@ -334,6 +334,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: @@ -355,12 +356,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/libxfs/xfs_inode_fork.c b/libxfs/xfs_inode_fork.c index 1a49c41f..9a7c2c91 100644 --- a/libxfs/xfs_inode_fork.c +++ b/libxfs/xfs_inode_fork.c @@ -742,7 +742,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/libxfs/xfs_inode_fork.h b/libxfs/xfs_inode_fork.h index a6f7897b..370246ee 100644 --- a/libxfs/xfs_inode_fork.h +++ b/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); diff --git a/repair/dinode.c b/repair/dinode.c index f39ab2dc..962285d5 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -1796,7 +1796,7 @@ _("bad nblocks %llu for inode %" PRIu64 ", would reset to %" PRIu64 "\n"), } } - if (nextents > MAXEXTNUM) { + if (nextents > xfs_iext_max_nextents(XFS_DATA_FORK)) { do_warn( _("too many data fork extents (%" PRIu64 ") in inode %" PRIu64 "\n"), nextents, lino); @@ -1819,7 +1819,7 @@ _("bad nextents %d for inode %" PRIu64 ", would reset to %" PRIu64 "\n"), } } - if (anextents > MAXAEXTNUM) { + if (anextents > xfs_iext_max_nextents(XFS_ATTR_FORK)) { do_warn( _("too many attr fork extents (%" PRIu64 ") in inode %" PRIu64 "\n"), anextents, lino); From patchwork Tue Dec 14 08:47:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675663 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 105F0C433EF for ; Tue, 14 Dec 2021 08:49:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230128AbhLNItt (ORCPT ); Tue, 14 Dec 2021 03:49:49 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:1270 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNIts (ORCPT ); Tue, 14 Dec 2021 03:49:48 -0500 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE7H6TF022081; Tue, 14 Dec 2021 08:49:46 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=18I5opLXPb/wf03Gd9SCf8SrzsnaJjy7W6UtWYEZBbo=; b=ikMkry0x+hxtg44X44TGxFazo91sI53xOgdihFDR6/kD2JZ2vQQybnvQ4rUld6bDRud6 BSWJEAN6NxGHABpF1aOHv4IhfRB6nGVlytT7X6kzG97bZqTA/d2GFekgHLUayM/uCAOR V+CcbUrwR3NJp96I75r10LDf/hfzfDnWP7G98bOnJsF4st3N51XMAsBmUDNEJf3hxcq/ GUrea2WcMvvTlwzi8G3AyarTozlFNqqVLA5L0g8cr1+J1uyGAb1E4Cn7N1o8dvrXlW3c yh7FwI7DHkd2YTc0ZvwxSK5OniSkklE403d0cfkmBIVpa4ZX4baDM8koWP+YX2z18rZU qg== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx2nfb6je-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:46 +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 1BE8f5D3107700; Tue, 14 Dec 2021 08:49:45 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2176.outbound.protection.outlook.com [104.47.58.176]) by userp3020.oracle.com with ESMTP id 3cvnepm598-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lvKFS80PWIQ4j3PCqJyYvvkd4+4V+RjlGrjr/SOqImZ1uR0AtAvMrj48SUtrc4dDACsWGZHgLpUj+V3EXDXRfguYTr71p9jb8HU3edU3AauiaqSEgLGSQUcV2Z8cLLeRqYhe57b9DHA9Oldrr/UniB/UiOPTRJCSmlvPlTZpM6isRHn20ZypAPAI8hBXtnNyc1fTrM66LZs8StNbor4m8JPVhdZx5FRqArddgcvbxs0U9Bi2dXYluKJrWjtJrQsiF+esS/LiBHHDgVFWqnNDfMNINih8BrivVIvrfiBo39SG59XejbSgP0tbcHLZQx5EE9LwAJYb1+qJ7AUWpx9OPA== 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=18I5opLXPb/wf03Gd9SCf8SrzsnaJjy7W6UtWYEZBbo=; b=CSELKrUPKnS+sR/LeITmHvNMLOBLXHrtL9lsuHANlT1aGpYNVEQ+PzRVrfb74DQl+zcRP7nRZ1SSNjM9FdrMxmiXpzfaJMhZhhjJ8mkOvMjmQ7w91F4rm7yKMcLkyb9XBLXWD3j8Fg9TvTtBoH9hwCi6E8G5AwhfFNELqaABFhcV8GzpXRzIJyitMMdXMs2YkPGJNx4byGZJrva1x6SzyWJmdiNtDvXdzuMEPCd10CK2mJ+xSnjnVnwZusiwPnDSzq5rLfxwxWltdXJ1HuGsWurcE3gVsgd7VWGe+iDdxO2etWVWSVvgAGsMoC0PdvHYsGqmA88Q8P16jZ3Km5cDLQ== 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=18I5opLXPb/wf03Gd9SCf8SrzsnaJjy7W6UtWYEZBbo=; b=MXeOhFyOS8W1aOJSFYlZn/WKy/Plgl+mTgIrUuPEcm5QTX+OLbMWZvD80frsB3+0Qcb6aZStRZQkcjzPSLb9NEZ4CJ2JQgIqD6eHgXf9tA5M4hjrovqW9UJGxTzl90hItEfPogoXOxIQUY9lGloCJp5nWvS0eOSY+g5WOhoXWA8= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:49:43 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:49:43 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 04/20] xfsprogs: Use xfs_extnum_t instead of basic data types Date: Tue, 14 Dec 2021 14:17:55 +0530 Message-Id: <20211214084811.764481-5-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: ef9ec3e3-fd25-48d2-8073-08d9bedeac3a X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:77; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lpK21mshBo00C7jk3Ap7fCVD4p0zcjc//LIR0U7KYGtPMYD7HEfHfqP8G2HZrNwBXRGzHzYhsJgeeHcIezft7xG7f2hgdzHQL1LqB4i/hvhWEvaZz582o/lbgu077xETZGyBD3CfPCrNBQwsn6nW70gWrSdlyPUJsVuRz/zDz4b1TB0y45PJ4O1Z7y+4QObgHbn6pdv47tt4Ox8i/hDNnVFs2JtOfHtgeXtlNSTL2mmpG30VkcOP/GyQst95l1Ryn6tTI64BuLnNjbT0gxnRx5StJ4lyXe5+A5ZVomPT7ERleFVQYRWRS79RQ450Tb7F+ManVPlnF86ZzBNKCHuQaA03JokJ3/LN8/kAd0R4/rcgwqpmBxnKv89DmmCOLE2euzbyZJTQOGkPLu40HAEuEAznngXjkNsoqeUFsGxt8ZrJ4FSR69xGf7YTQAOvs0Pdv6pn/V/rjs4EClTAddOkUJ7vJ1kXK2SuGi6v/rE+Lisk1cUvJZxEruKZ5uCaNUFkLIn1L53WUNmOoq0QQynIZXxUkL38HYk1AmND9e3Aq0iwxqoH3WVlTxdPf4E9PlvEM5xtQ8BN9rDY+vTye5+LTLAMSj+sUTx7GguWiucM9oGdvXpvHNFqe7lLuSS/GPm8OPq70EYqIqCk10pduHbGZF6q8rlTarmRDIDtC3jZK6jti4HOOnEwc4Llvk2hGxoq99lqbRxHnMEVijDhGCwqmw== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: CIF38jSyiZNLwh75VtaHuGFv71Aj4QW35UCdXwDj9GXEGlZta4G1DBQ0ODMen0EbrSPJiWSJ0AovMgRTHVfPgnoZETdZGCqqpegM2XXT0sPsjznkgmqjQV4V//3IbRkDx5dldi7XvHVpNK9aFIvh7w0yV6rG03/icP8H073D/JajOIJtB0/rr4UoD6Jn3vFB6ZW/HQG4Tjlv9CSJVfYvfgoA2JvlbLP+5J2fR1lk/9djqorGebqBExjpY1zBJStBe2Mh+/4dF0mAOonHlOdWHNswOy+FiL54Y/tcMcTfGDPeIPsU6hH2bRSWc6aD28RSqWnieHDHXAVtFmAIAsRPILZaU/d9WwWU775b4njNCzvfU8zLZ2al7s5oja45aCMAfktGbZuwv69jo93AiBC5hm7eqWFFz4U45mwSh9fhSm5XyNoOln03KFY99Ehcv2vTxKQ2bg3447qABhGHWMOuy0lIowZ2rg867bd0zXOzaAhMWqByf9X+Fpxy/7dc3wRTgUk6shYzy0ywsemNjoeZwHwpjyfB6Jf8yImpwb6d6A59MyBh893tvHDmXfkid89eSV+5ZJBb3u86chn69wqHlzZ3Wif7e2F02I1jiF9660KMKc49Y204MQqGVwjRZi5v3TVAcLugVldzlWdcrxbYldkOGOiZcZZUeshypTpajxIPZgb7MdRFZJ3Y+MJt/hr/sd+jLC/ghkR3myG/xDNgJ1nTI8dpQncwpMVUZzexJH6yEDjb6HK1Am6KhLCIWLcsaBoW/+NtNwjIhbFwvQ6QpPGEPFGc/PEjt+ZeA6FUaMpRgA7oMq5u+IyKE3oYcgSdXKrK8bel1s8m/xmcHrJfQUNxhLCr9ryOWO6a5VGAA/DUWK6xTfNkXXJl+hiO68RrUSN0jpjE9BLFp8JbF0ODDJSJIFsOcPZnh96HHlqYmA2uV5u2NmjQUnkb5DgBWIRg7GUEIOgSDAEsC14WCMU5qzvZmN1suQDoqDnyWmiem0NuQilQJTT/UblwL3WE41e8mPqaO7dMMUO/oDTzKRRk5QslpF+Mct+YK7wGyIBJl84pVj2v2XAcLd3iXC6Kq3WolaLceEH/fnuT6CN0t/Zt04kXYsvxopOsYyvlHkNfNt52R29vfpxWiiwGYkcWW8Tprka0ALpVnAPU/HJYN9Pe1vZ+YJaUBeGdTyxNRJxZkwADkz9bZR6bF+0MzEu+0FV7lwzpKB2FV2BEGgO7OeMccA7JV/B0fWNDd17JaeeIyRVovnev6vFtKj3bbTKBVBuPD/tfUhS9VJPWhgufJ8byTZTUo7a9+su1vbqbABcM0hZtvO5UzDVg19Vh6qSB3zSHIKEBcUP9CELahKaOKeBgTUGUfjIYEy4BTffwyI20NWY4MvHGjQPA267vfUVOwuP0XBKCfNkzlyqAIKZBg5xuSkfeDnBre/pXhKg4m+CEcr99OjuFXc7T+/S3HdAcPNF+aDKBORghDvzKiNLeQem4AINJsnhMieWz+1nYis5EXMczzj0wpsALVn7kT9uRRNdBObRQ2qzS9yenGw9wP/lU6T2WRpjNVrFeNKYmP65meo2EBWKTHl9BCX4KspJHJfQFHeJPjwg3NogfVL2gqdJCNmfAJK6U0ZMmqkfHIbt5Rj0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef9ec3e3-fd25-48d2-8073-08d9bedeac3a X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:49:43.4632 (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: wNXSDkPkv7khSdjrrCY3nynwS2WlJmGtjfKU34VtHFdy5oN5A0WUPh6dzi6bGQqnPB94nvkE7TcVsAOSaekr/g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 adultscore=0 malwarescore=0 bulkscore=0 spamscore=0 mlxlogscore=999 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: sJzXsqRbEW47RHcz9OgG58H3pijYot1y X-Proofpoint-GUID: sJzXsqRbEW47RHcz9OgG58H3pijYot1y 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. Signed-off-by: Chandan Babu R --- db/bmap.c | 2 +- db/frag.c | 2 +- libxfs/xfs_bmap.c | 2 +- libxfs/xfs_inode_buf.c | 2 +- libxfs/xfs_inode_fork.c | 2 +- repair/dinode.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/db/bmap.c b/db/bmap.c index fdc70e95..7925a197 100644 --- a/db/bmap.c +++ b/db/bmap.c @@ -47,7 +47,7 @@ bmap( int n; int nex; xfs_fsblock_t nextbno; - int nextents; + xfs_extnum_t nextents; xfs_bmbt_ptr_t *pp; xfs_bmdr_block_t *rblock; typnm_t typ; diff --git a/db/frag.c b/db/frag.c index cc00672e..ee058aad 100644 --- a/db/frag.c +++ b/db/frag.c @@ -273,7 +273,7 @@ process_fork( int whichfork) { extmap_t *extmap; - int nex; + xfs_extnum_t nex; nex = XFS_DFORK_NEXTENTS(dip, whichfork); if (!nex) diff --git a/libxfs/xfs_bmap.c b/libxfs/xfs_bmap.c index e7911a2a..46e4c1d4 100644 --- a/libxfs/xfs_bmap.c +++ b/libxfs/xfs_bmap.c @@ -48,7 +48,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/libxfs/xfs_inode_buf.c b/libxfs/xfs_inode_buf.c index 46dcfe77..2ba84dac 100644 --- a/libxfs/xfs_inode_buf.c +++ b/libxfs/xfs_inode_buf.c @@ -333,7 +333,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/libxfs/xfs_inode_fork.c b/libxfs/xfs_inode_fork.c index 9a7c2c91..12656c74 100644 --- a/libxfs/xfs_inode_fork.c +++ b/libxfs/xfs_inode_fork.c @@ -103,7 +103,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/repair/dinode.c b/repair/dinode.c index 962285d5..4d125db4 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -932,7 +932,7 @@ process_exinode( xfs_bmbt_rec_t *rp; xfs_fileoff_t first_key; xfs_fileoff_t last_key; - int32_t numrecs; + xfs_extnum_t numrecs; int ret; lino = XFS_AGINO_TO_INO(mp, agno, ino); From patchwork Tue Dec 14 08:47:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675667 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 3D504C433FE for ; Tue, 14 Dec 2021 08:49:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230161AbhLNItx (ORCPT ); Tue, 14 Dec 2021 03:49:53 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:5942 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230149AbhLNItw (ORCPT ); Tue, 14 Dec 2021 03:49:52 -0500 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE7KL6V022072; Tue, 14 Dec 2021 08:49:50 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=Up0VV4bBM8FVS+3NhVtTyY7xtGOXYmSOzKWlsQo/NyU=; b=iVuymFAL0ziatIqmJN9dX1RQhtd5gJDGjOGgkungTyKZb5GtuvYZbcFQuucJpDUYYjcc MZF/UN5Lz0aLsjt5NjuuNaafPGbzum06n91IP7eavqmPcbmO3CtwG/Bx+yoqZP928qbw cyHhbE/Ajt8GbZNWPtJzrJjCy5Nw8HFbJg2/ZSwRtBhNOkINFOg3n/4stiP5041n8Fby R9UH2vW7AeMLCz0ipLVMDvwLRl9BqGxchL5oGZB8E9px+Hnih7KIuRSPNMUzPYFWrqm0 +OJbaraj8Tk8j2txGfily/c4htejit/MSx0htKsfnytQnyGdelUkCu087V1B818vNUt4 5g== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx2nfb6jh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:49 +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 1BE8fXKf156420; Tue, 14 Dec 2021 08:49:48 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168]) by userp3030.oracle.com with ESMTP id 3cvh3wy7kf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gUdmhU1mvDv2UPqj4vAUoyw9+7KoQPJ6hnY4rBkkhF9bsxetkO6vOrCTY9VEyGh57pjXRtGsmsxKCIb4Mlobumuh7XqdydsPg4TTo2LQZdWqQxM1n6NbK7FztAK9mJf5irTp0oT3I+rejAe1+3t8OwnemtaP0vfvKhLKrd3MM5Cng311swsJeZR6+UAyeYMygNNsqz07TTzIY9UeHvHW5LpwRfokJedQ3OhcjtTV9ugiT/SWqzvNLu7Izb6+ZshN+A5jEOSDQ8OkwGRs1qr0CidUAvzfoR4xhjk6yywbU0t72tNQxWO4VNlZup1bo93eGUqiDu1HZqR7fzEXlQyvRQ== 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=Up0VV4bBM8FVS+3NhVtTyY7xtGOXYmSOzKWlsQo/NyU=; b=fqfeyH6IKbRVRds7FLNUVBJfFmn2BxDu/UXqRPafcZln4xSERhWzkwNSeDvstA/t/U/esYUdFNUGREcT8jU4C6RAe0ULiJQ679oh2f2ITx8uhyovHNV+XMdp3jaZxqmhVc1vQ0V1jVpZAdAqFbqmZqYSWOjPQLBVLyPGRI8OQQVbWoCd01VNyELTk3yVUo6jc9eFVKeJv1glKS48S7pQwaSdX+AC6btrMGo5LX2Uo/sAmQQQKMDGMt2Ad6w5KVx39YA29KjcvhNb4M9nhoa9jmfKCkBfr+ddRlBqhI8l/Iru0VvB953QVCmcAicHJWx/L95JEGpWWB8ALVbCbpleNw== 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=Up0VV4bBM8FVS+3NhVtTyY7xtGOXYmSOzKWlsQo/NyU=; b=ULRoLbJpvrVj203OgdobFzFnSHiAlcQRR1Qyfio+8DS6Ix7aqMDde9VegGLK2eJqgT+CiyrJkCOv/VcsqmQbdmHc/l86Rc7u5GLfHaUdBPsy8lDAtg3OWKJPD2pr6F2bz1tKWn221+V3G/YP9UTgf/aE7Gho1pb3xXN3GQEiE50= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:49:45 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:49:45 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 05/20] xfsprogs: Introduce xfs_dfork_nextents() helper Date: Tue, 14 Dec 2021 14:17:56 +0530 Message-Id: <20211214084811.764481-6-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: d7901b28-7093-4deb-5f79-08d9bedead8c X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1148; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NA8vp7d/tdCwCUNpLJ/9++/6viMGI/Orfue23GU5FH3owtakSXnbQDSBUKSknAs9LY2mbZxv+3gDDd2yEcMvJ3N+sukITb9S+KsDtEQZF7IHuuiLiXrdlbDLAMFJMEeax+OCf2j3S7L5WleeTI8SfvBcCLuswc1AcdDVXoez3z/v0TKslqYLTKZmBY1CMAHhCvcBniGXfbrLr6gqyHgbiXg60OrkEj19qXpavJZBOhQxB2Av9gpuZ4PWX6SRoOeJlLlEMKgBDqgaIGuftPhiLoyEchsiOwzbfz0MGYjHanTQu6IghsSm4zXhBE7UvcgnhXjbV0lrlNFjw71PubxF3gCvn7nxCGdzoCgq0KoTXEfNLxSJqhR2/4ylDtooeonUbrnob1tn7wBT4E9ashPdEHwSJXGKu5l+j8S77JQYi2GEiSUR1sENNqeXeiVBBew/b2ZMorf8L5O5tUg3Kga9uiNZy++yQQEUcNklYRTyf/5pCK1mubmHvAjM4ajYOjiDabtlo4syNwnKOsk8tDexr2WPmSAYvnAgzS5ARqkcuENf9TLZpq8VR0hftQdtEGQmFi3F5NnmhsppBpeavf8PFA6qKii6Cygb28n5HedC7R+4CuysHlM8o91tx/SC3Oa5+/90NdLj4Ofkk4dB40YPELDxnIvtrFKT6k8WxJd5So4fOk5NlFx7C90jhWl5I/HX 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(30864003)(26005)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: mUbzcju+4YcCQhpjN8l8UIRbmpwhHc/DoZcIyGluh/FT4sQ9TNylmUSsdzntnp8OpwZFySMCP5HMx729Zfi898IQCztjcFAUTpSo5jIwhureeiBMHA0F+EFCkaOun69EfM5zj2n+2yPAVthil5FeNQZKutzNxeS27hUb7AuvcLD6wn+KGgHBUlbodFQzq01IAT09Ju2h4lbsZYul0Qpy+oRLThSf6fmy2PvufeFEfLhP2M/eWbGtCb+/Egyw3L3IxcTXTVfBKSM9h6HG4lakxLVa+m/twstMO9Hz59GCOGAY7LXEvpG8dlv0afuEOfqSS3ICXc9eTpVfWYbl7+LevrIvDRJqQ+CQo4wzRB8K9csqs0JWt7cj1Kg4WFSexEn7sFs78UJ0heMVOcSz6AupHugPND7OMN8ecDSvZmJTj2GTKk9Z8b9zhIAr7cCg8GwIa65K1yIV3VeWdylatpBngrw1vJK9SAZrOty+sEW/BHLOLtqXC8jDHWcYfXgQrbTxF6U8VRLtLLbCr47zldDBgQxDbkTD7QtaTMXdo83V7pPItr5LPG0P3NVlfaFJNAnjn9/zaSDg1bv0+tNI5JSBordcAAi2OG8VacJvZJB7dXfQ1QTr+oDCW2iyPrcP3D6cF9XenVZR0d3mptLzdI7w5U8DUNv2IkamOgpQFEBAfrfKAglpeXMibt8Wo2j+P/Q1/BN6AIPe7RcOxxWxnsDj2YGbHZVvuha5v9IRvLmboIjnUh9n3iFPfuJLj5+Yn9xkZCAa1i60FT/esvBshwCAuRK+RMkKwoRacPTyvHGzkLyLFEctSdL6vVUr+V4hcUuNrfGRmrXCyDl63bq070Bpgk9Nn+2ryk8P8cUAAtXiGH4yZTOxGmLN8S0g7Ezi6OD/LRt/yQh3gstPIjiy4AaPon+QBPiOyc4MvTJXRC7+p3QuFH9F1GODJwgQhX7alJaUK7hyrZ+vug6GNwinxy7yUiQKM8O+ljmo4Ciq9yju1XP5B3SKum9kWIa60luOmjnXqSF+FRqluqou8xVGS7jKYlkt2OFiWQs2QJmolXUcJN4rcsWRX66N5vQPuiimJgm+d86cZ3k147VCBJR2TAdENy06c/nWiYF9tbQFypXx0H/isXo2t5/cm6Ip2jFLWq9aVz2HG5955MjL74zcLbdENkcCsJvjZghWgR7Je5VYC4h09GxVj/OZhz9qRtM7z8ZvzByhSevltvsqMea5wy/zRhRihuHY/Mhh4KRjqFOTRDZFRodcGEtwUILpnMopYn0ZKEa7heSmXZnJ2WApYJmwI6rPwyYBO+p26k3krb+JfvOndTBwQoON81zDyEommhyDQDx0R0w0WPOdaR+jLo4rGeoXMaM4NbbmN9UINtapiMzWLAoOdcAsJ/9Hwg2gy9k+T6cpEqVVtASGvIwHpf4DBemHmZtupGH/e2RhGQ3+UZttuy8gcU8zN2Q7mYbgEL2Y2926ktpBV1O62yHyL/lYn8rce+xezPEAXVS7OvxJqsp97fPD7ftRW7Au/s7UQ/9OGiybScjnxwcG0r6kIxp/DDdnxW9DQjYLyIHr8OaMxP4zEr6sw6PINisGFIaV+sM4qS7NTI8iLZMdk2zKDh8KFibMH19on3TLxqxpbiIrJ8s= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7901b28-7093-4deb-5f79-08d9bedead8c X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:49:45.8766 (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: FTtoktdVka/rftFE1KpCW0bNlwWQ7QBVADNctRqhme7671iCd/GdlsVmhPuuNnnPgYwcyKDXcRmF6X5aqWUBsA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: SwPtDbAGQxB0rMqBOBvWHKQ0c7rc3vaZ X-Proofpoint-GUID: SwPtDbAGQxB0rMqBOBvWHKQ0c7rc3vaZ 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. Signed-off-by: Chandan Babu R --- db/bmap.c | 6 ++--- db/btdump.c | 4 ++-- db/check.c | 28 +++++++++++++--------- db/frag.c | 6 +++-- db/inode.c | 14 ++++++----- db/metadump.c | 4 ++-- libxfs/xfs_format.h | 4 ---- libxfs/xfs_inode_buf.c | 16 +++++++++---- libxfs/xfs_inode_fork.c | 9 +++---- libxfs/xfs_inode_fork.h | 32 +++++++++++++++++++++++++ repair/attr_repair.c | 2 +- repair/dinode.c | 53 +++++++++++++++++++++++------------------ repair/prefetch.c | 2 +- 13 files changed, 116 insertions(+), 64 deletions(-) diff --git a/db/bmap.c b/db/bmap.c index 7925a197..6b0246d9 100644 --- a/db/bmap.c +++ b/db/bmap.c @@ -68,7 +68,7 @@ bmap( ASSERT(fmt == XFS_DINODE_FMT_LOCAL || fmt == XFS_DINODE_FMT_EXTENTS || fmt == XFS_DINODE_FMT_BTREE); if (fmt == XFS_DINODE_FMT_EXTENTS) { - nextents = XFS_DFORK_NEXTENTS(dip, whichfork); + nextents = xfs_dfork_nextents(dip, whichfork); xp = (xfs_bmbt_rec_t *)XFS_DFORK_PTR(dip, whichfork); for (ep = xp; ep < &xp[nextents] && n < nex; ep++) { if (!bmap_one_extent(ep, &curoffset, eoffset, &n, bep)) @@ -158,9 +158,9 @@ bmap_f( push_cur(); set_cur_inode(iocur_top->ino); dip = iocur_top->data; - if (be32_to_cpu(dip->di_nextents)) + if (xfs_dfork_data_extents(dip)) dfork = 1; - if (be16_to_cpu(dip->di_anextents)) + if (xfs_dfork_attr_extents(dip)) afork = 1; pop_cur(); } diff --git a/db/btdump.c b/db/btdump.c index 920f595b..6d0041b0 100644 --- a/db/btdump.c +++ b/db/btdump.c @@ -166,13 +166,13 @@ dump_inode( dip = iocur_top->data; if (attrfork) { - if (!dip->di_anextents || + if (!xfs_dfork_attr_extents(dip) || dip->di_aformat != XFS_DINODE_FMT_BTREE) { dbprintf(_("attr fork not in btree format\n")); return 0; } } else { - if (!dip->di_nextents || + if (!xfs_dfork_data_extents(dip) || dip->di_format != XFS_DINODE_FMT_BTREE) { dbprintf(_("data fork not in btree format\n")); return 0; diff --git a/db/check.c b/db/check.c index 485e855e..c164fef9 100644 --- a/db/check.c +++ b/db/check.c @@ -2713,7 +2713,7 @@ process_exinode( xfs_bmbt_rec_t *rp; rp = (xfs_bmbt_rec_t *)XFS_DFORK_PTR(dip, whichfork); - *nex = XFS_DFORK_NEXTENTS(dip, whichfork); + *nex = xfs_dfork_nextents(dip, whichfork); if (*nex < 0 || *nex > XFS_DFORK_SIZE(dip, mp, whichfork) / sizeof(xfs_bmbt_rec_t)) { if (!sflag || id->ilist) @@ -2737,12 +2737,14 @@ process_inode( inodata_t *id = NULL; xfs_ino_t ino; xfs_extnum_t nextents = 0; + xfs_extnum_t dnextents; int security; xfs_rfsblock_t totblocks; xfs_rfsblock_t totdblocks = 0; xfs_rfsblock_t totiblocks = 0; dbm_t type; xfs_extnum_t anextents = 0; + xfs_extnum_t danextents; xfs_rfsblock_t atotdblocks = 0; xfs_rfsblock_t atotiblocks = 0; xfs_qcnt_t bc = 0; @@ -2871,14 +2873,17 @@ process_inode( error++; return; } + + dnextents = xfs_dfork_data_extents(dip); + danextents = xfs_dfork_attr_extents(dip); + if (verbose || (id && id->ilist) || CHECK_BLIST(bno)) dbprintf(_("inode %lld mode %#o fmt %s " "afmt %s " "nex %d anex %d nblk %lld sz %lld%s%s%s%s%s%s%s\n"), id->ino, mode, fmtnames[(int)dip->di_format], fmtnames[(int)dip->di_aformat], - be32_to_cpu(dip->di_nextents), - be16_to_cpu(dip->di_anextents), + dnextents, danextents, be64_to_cpu(dip->di_nblocks), be64_to_cpu(dip->di_size), diflags & XFS_DIFLAG_REALTIME ? " rt" : "", diflags & XFS_DIFLAG_PREALLOC ? " pre" : "", @@ -2893,25 +2898,26 @@ process_inode( type = DBM_DIR; if (dip->di_format == XFS_DINODE_FMT_LOCAL) break; - blkmap = blkmap_alloc(be32_to_cpu(dip->di_nextents)); + + blkmap = blkmap_alloc(dnextents); break; case S_IFREG: if (diflags & XFS_DIFLAG_REALTIME) type = DBM_RTDATA; else if (id->ino == mp->m_sb.sb_rbmino) { type = DBM_RTBITMAP; - blkmap = blkmap_alloc(be32_to_cpu(dip->di_nextents)); + blkmap = blkmap_alloc(dnextents); addlink_inode(id); } else if (id->ino == mp->m_sb.sb_rsumino) { type = DBM_RTSUM; - blkmap = blkmap_alloc(be32_to_cpu(dip->di_nextents)); + blkmap = blkmap_alloc(dnextents); addlink_inode(id); } else if (id->ino == mp->m_sb.sb_uquotino || id->ino == mp->m_sb.sb_gquotino || id->ino == mp->m_sb.sb_pquotino) { type = DBM_QUOTA; - blkmap = blkmap_alloc(be32_to_cpu(dip->di_nextents)); + blkmap = blkmap_alloc(dnextents); addlink_inode(id); } else @@ -2993,17 +2999,17 @@ process_inode( be64_to_cpu(dip->di_nblocks), id->ino, totblocks); error++; } - if (nextents != be32_to_cpu(dip->di_nextents)) { + if (nextents != dnextents) { if (v) dbprintf(_("bad nextents %d for inode %lld, counted %d\n"), - be32_to_cpu(dip->di_nextents), id->ino, nextents); + dnextents, id->ino, nextents); error++; } - if (anextents != be16_to_cpu(dip->di_anextents)) { + if (anextents != danextents) { if (v) dbprintf(_("bad anextents %d for inode %lld, counted " "%d\n"), - be16_to_cpu(dip->di_anextents), id->ino, anextents); + danextents, id->ino, anextents); error++; } if (type == DBM_DIR) diff --git a/db/frag.c b/db/frag.c index ee058aad..52ff0d8f 100644 --- a/db/frag.c +++ b/db/frag.c @@ -262,9 +262,11 @@ process_exinode( int whichfork) { xfs_bmbt_rec_t *rp; + xfs_extnum_t nextents; rp = (xfs_bmbt_rec_t *)XFS_DFORK_PTR(dip, whichfork); - process_bmbt_reclist(rp, XFS_DFORK_NEXTENTS(dip, whichfork), extmapp); + nextents = xfs_dfork_nextents(dip, whichfork); + process_bmbt_reclist(rp, nextents, extmapp); } static void @@ -275,7 +277,7 @@ process_fork( extmap_t *extmap; xfs_extnum_t nex; - nex = XFS_DFORK_NEXTENTS(dip, whichfork); + nex = xfs_dfork_nextents(dip, whichfork); if (!nex) return; extmap = extmap_alloc(nex); diff --git a/db/inode.c b/db/inode.c index 3453c089..9afa6426 100644 --- a/db/inode.c +++ b/db/inode.c @@ -275,7 +275,7 @@ inode_a_bmx_count( return 0; ASSERT((char *)XFS_DFORK_APTR(dip) - (char *)dip == byteize(startoff)); return dip->di_aformat == XFS_DINODE_FMT_EXTENTS ? - be16_to_cpu(dip->di_anextents) : 0; + xfs_dfork_attr_extents(dip) : 0; } static int @@ -329,6 +329,7 @@ inode_a_size( { struct xfs_attr_shortform *asf; xfs_dinode_t *dip; + xfs_extnum_t nextents; ASSERT(startoff == 0); ASSERT(idx == 0); @@ -338,8 +339,8 @@ inode_a_size( asf = (struct xfs_attr_shortform *)XFS_DFORK_APTR(dip); return bitize(be16_to_cpu(asf->hdr.totsize)); case XFS_DINODE_FMT_EXTENTS: - return (int)be16_to_cpu(dip->di_anextents) * - bitsz(xfs_bmbt_rec_t); + nextents = xfs_dfork_attr_extents(dip); + return nextents * bitsz(struct xfs_bmbt_rec); case XFS_DINODE_FMT_BTREE: return bitize((int)XFS_DFORK_ASIZE(dip, mp)); default: @@ -500,7 +501,7 @@ inode_u_bmx_count( dip = obj; ASSERT((char *)XFS_DFORK_DPTR(dip) - (char *)dip == byteize(startoff)); return dip->di_format == XFS_DINODE_FMT_EXTENTS ? - be32_to_cpu(dip->di_nextents) : 0; + xfs_dfork_data_extents(dip) : 0; } static int @@ -586,6 +587,7 @@ inode_u_size( int idx) { xfs_dinode_t *dip; + xfs_extnum_t nextents; ASSERT(startoff == 0); ASSERT(idx == 0); @@ -596,8 +598,8 @@ inode_u_size( case XFS_DINODE_FMT_LOCAL: return bitize((int)be64_to_cpu(dip->di_size)); case XFS_DINODE_FMT_EXTENTS: - return (int)be32_to_cpu(dip->di_nextents) * - bitsz(xfs_bmbt_rec_t); + nextents = xfs_dfork_data_extents(dip); + return nextents * bitsz(struct xfs_bmbt_rec); case XFS_DINODE_FMT_BTREE: return bitize((int)XFS_DFORK_DSIZE(dip, mp)); case XFS_DINODE_FMT_UUID: diff --git a/db/metadump.c b/db/metadump.c index 09d990dc..8a9aec75 100644 --- a/db/metadump.c +++ b/db/metadump.c @@ -2282,7 +2282,7 @@ process_exinode( whichfork = (itype == TYP_ATTR) ? XFS_ATTR_FORK : XFS_DATA_FORK; - nex = XFS_DFORK_NEXTENTS(dip, whichfork); + nex = xfs_dfork_nextents(dip, whichfork); used = nex * sizeof(xfs_bmbt_rec_t); if (nex < 0 || used > XFS_DFORK_SIZE(dip, mp, whichfork)) { if (show_warnings) @@ -2335,7 +2335,7 @@ static int process_dev_inode( xfs_dinode_t *dip) { - if (XFS_DFORK_NEXTENTS(dip, XFS_DATA_FORK)) { + if (xfs_dfork_data_extents(dip)) { if (show_warnings) print_warning("inode %llu has unexpected extents", (unsigned long long)cur_ino); diff --git a/libxfs/xfs_format.h b/libxfs/xfs_format.h index 1e31c31c..68f42fca 100644 --- a/libxfs/xfs_format.h +++ b/libxfs/xfs_format.h @@ -1107,10 +1107,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/libxfs/xfs_inode_buf.c b/libxfs/xfs_inode_buf.c index 2ba84dac..06b6c09f 100644 --- a/libxfs/xfs_inode_buf.c +++ b/libxfs/xfs_inode_buf.c @@ -333,9 +333,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: /* @@ -402,6 +404,8 @@ xfs_dinode_verify( uint16_t flags; uint64_t flags2; uint64_t di_size; + xfs_rfsblock_t nblocks; + xfs_extnum_t nextents; if (dip->di_magic != cpu_to_be16(XFS_DINODE_MAGIC)) return __this_address; @@ -432,10 +436,12 @@ xfs_dinode_verify( if ((S_ISLNK(mode) || S_ISDIR(mode)) && di_size == 0) return __this_address; + nextents = xfs_dfork_data_extents(dip); + nextents += 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 > nblocks) return __this_address; if (mode && XFS_DFORK_BOFF(dip) > mp->m_sb.sb_inodesize) @@ -492,7 +498,7 @@ xfs_dinode_verify( default: return __this_address; } - if (dip->di_anextents) + if (xfs_dfork_attr_extents(dip)) return __this_address; } diff --git a/libxfs/xfs_inode_fork.c b/libxfs/xfs_inode_fork.c index 12656c74..42a7e4e9 100644 --- a/libxfs/xfs_inode_fork.c +++ b/libxfs/xfs_inode_fork.c @@ -103,7 +103,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; @@ -228,7 +228,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: @@ -293,14 +293,15 @@ xfs_iformat_attr_fork( struct xfs_inode *ip, struct xfs_dinode *dip) { + xfs_extnum_t naextents; 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)); + naextents = xfs_dfork_attr_extents(dip); + ip->i_afp = xfs_ifork_alloc(dip->di_aformat, naextents); switch (ip->i_afp->if_format) { case XFS_DINODE_FMT_LOCAL: diff --git a/libxfs/xfs_inode_fork.h b/libxfs/xfs_inode_fork.h index 370246ee..494942ad 100644 --- a/libxfs/xfs_inode_fork.h +++ b/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/repair/attr_repair.c b/repair/attr_repair.c index bc3c2bef..618f4f1e 100644 --- a/repair/attr_repair.c +++ b/repair/attr_repair.c @@ -1083,7 +1083,7 @@ process_longform_attr( bno = blkmap_get(blkmap, 0); if (bno == NULLFSBLOCK) { if (dip->di_aformat == XFS_DINODE_FMT_EXTENTS && - be16_to_cpu(dip->di_anextents) == 0) + xfs_dfork_attr_extents(dip) == 0) return(0); /* the kernel can handle this state */ do_warn( _("block 0 of inode %" PRIu64 " attribute fork is missing\n"), diff --git a/repair/dinode.c b/repair/dinode.c index 4d125db4..735ba066 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -68,7 +68,7 @@ _("clearing inode %" PRIu64 " attributes\n"), ino_num); fprintf(stderr, _("would have cleared inode %" PRIu64 " attributes\n"), ino_num); - if (be16_to_cpu(dino->di_anextents) != 0) { + if (xfs_dfork_attr_extents(dino) != 0) { if (no_modify) return(1); dino->di_anextents = cpu_to_be16(0); @@ -938,7 +938,7 @@ process_exinode( lino = XFS_AGINO_TO_INO(mp, agno, ino); rp = (xfs_bmbt_rec_t *)XFS_DFORK_PTR(dip, whichfork); *tot = 0; - numrecs = XFS_DFORK_NEXTENTS(dip, whichfork); + numrecs = xfs_dfork_nextents(dip, whichfork); /* * We've already decided on the maximum number of extents on the inode, @@ -1015,7 +1015,7 @@ process_symlink_extlist(xfs_mount_t *mp, xfs_ino_t lino, xfs_dinode_t *dino) xfs_fileoff_t expected_offset; xfs_bmbt_rec_t *rp; xfs_bmbt_irec_t irec; - int numrecs; + xfs_extnum_t numrecs; int i; int max_blocks; @@ -1037,7 +1037,7 @@ _("mismatch between format (%d) and size (%" PRId64 ") in symlink inode %" PRIu6 } rp = (xfs_bmbt_rec_t *)XFS_DFORK_DPTR(dino); - numrecs = be32_to_cpu(dino->di_nextents); + numrecs = xfs_dfork_data_extents(dino); /* * the max # of extents in a symlink inode is equal to the @@ -1543,6 +1543,8 @@ process_check_sb_inodes( int *type, int *dirty) { + xfs_extnum_t nextents; + if (lino == mp->m_sb.sb_rootino) { if (*type != XR_INO_DIR) { do_warn(_("root inode %" PRIu64 " has bad type 0x%x\n"), @@ -1597,10 +1599,12 @@ _("realtime summary inode %" PRIu64 " has bad type 0x%x, "), do_warn(_("would reset to regular file\n")); } } - if (mp->m_sb.sb_rblocks == 0 && dinoc->di_nextents != 0) { + + nextents = xfs_dfork_data_extents(dinoc); + if (mp->m_sb.sb_rblocks == 0 && nextents != 0) { do_warn( -_("bad # of extents (%u) for realtime summary inode %" PRIu64 "\n"), - be32_to_cpu(dinoc->di_nextents), lino); +_("bad # of extents (%d) for realtime summary inode %" PRIu64 "\n"), + nextents, lino); return 1; } return 0; @@ -1618,10 +1622,12 @@ _("realtime bitmap inode %" PRIu64 " has bad type 0x%x, "), do_warn(_("would reset to regular file\n")); } } - if (mp->m_sb.sb_rblocks == 0 && dinoc->di_nextents != 0) { + + nextents = xfs_dfork_data_extents(dinoc); + if (mp->m_sb.sb_rblocks == 0 && nextents != 0) { do_warn( -_("bad # of extents (%u) for realtime bitmap inode %" PRIu64 "\n"), - be32_to_cpu(dinoc->di_nextents), lino); +_("bad # of extents (%d) for realtime bitmap inode %" PRIu64 "\n"), + nextents, lino); return 1; } return 0; @@ -1780,6 +1786,8 @@ process_inode_blocks_and_extents( xfs_ino_t lino, int *dirty) { + xfs_extnum_t dnextents; + if (nblocks != be64_to_cpu(dino->di_nblocks)) { if (!no_modify) { do_warn( @@ -1802,20 +1810,19 @@ _("too many data fork extents (%" PRIu64 ") in inode %" PRIu64 "\n"), nextents, lino); return 1; } - if (nextents != be32_to_cpu(dino->di_nextents)) { + + dnextents = xfs_dfork_data_extents(dino); + if (nextents != dnextents) { if (!no_modify) { do_warn( _("correcting nextents for inode %" PRIu64 ", was %d - counted %" PRIu64 "\n"), - lino, - be32_to_cpu(dino->di_nextents), - nextents); + lino, dnextents, nextents); dino->di_nextents = cpu_to_be32(nextents); *dirty = 1; } else { do_warn( _("bad nextents %d for inode %" PRIu64 ", would reset to %" PRIu64 "\n"), - be32_to_cpu(dino->di_nextents), - lino, nextents); + dnextents, lino, nextents); } } @@ -1825,19 +1832,19 @@ _("too many attr fork extents (%" PRIu64 ") in inode %" PRIu64 "\n"), anextents, lino); return 1; } - if (anextents != be16_to_cpu(dino->di_anextents)) { + + dnextents = xfs_dfork_attr_extents(dino); + if (anextents != dnextents) { if (!no_modify) { do_warn( _("correcting anextents for inode %" PRIu64 ", was %d - counted %" PRIu64 "\n"), - lino, - be16_to_cpu(dino->di_anextents), anextents); + lino, dnextents, anextents); dino->di_anextents = cpu_to_be16(anextents); *dirty = 1; } else { do_warn( _("bad anextents %d for inode %" PRIu64 ", would reset to %" PRIu64 "\n"), - be16_to_cpu(dino->di_anextents), - lino, anextents); + dnextents, lino, anextents); } } @@ -1879,7 +1886,7 @@ process_inode_data_fork( * uses negative values in memory. hence if we see negative numbers * here, trash it! */ - nex = be32_to_cpu(dino->di_nextents); + nex = xfs_dfork_data_extents(dino); if (nex < 0) *nextents = 1; else @@ -2000,7 +2007,7 @@ process_inode_attr_fork( return 0; } - *anextents = be16_to_cpu(dino->di_anextents); + *anextents = xfs_dfork_attr_extents(dino); if (*anextents > be64_to_cpu(dino->di_nblocks)) *anextents = 1; diff --git a/repair/prefetch.c b/repair/prefetch.c index 22a0c0c9..fa6a3893 100644 --- a/repair/prefetch.c +++ b/repair/prefetch.c @@ -393,7 +393,7 @@ pf_read_exinode( xfs_dinode_t *dino) { pf_read_bmbt_reclist(args, (xfs_bmbt_rec_t *)XFS_DFORK_DPTR(dino), - be32_to_cpu(dino->di_nextents)); + xfs_dfork_data_extents(dino)); } static void From patchwork Tue Dec 14 08:47:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675665 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 9FF22C433EF for ; Tue, 14 Dec 2021 08:49:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230159AbhLNItx (ORCPT ); Tue, 14 Dec 2021 03:49:53 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:5550 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNItw (ORCPT ); Tue, 14 Dec 2021 03:49:52 -0500 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE7KL6W022072; Tue, 14 Dec 2021 08:49:50 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=ge+j5fJUg9dxZDo3WRzqA/utyTpNos5iKtMP8GUhp2E=; b=DliNigOyZZTeON2bn/9gf1uPcliaGSS47gnWcC7zAzWtvnwpaEbFaKJ1NgNATxNyibYZ L+DtVB3YFEPLk25eOK3uxx+66PrNtx4LtbmQIa6a6703OuVRJjVyFd4xfdMDi7S5aepL rDDoGBcihTuByGn4KfsjfYP0jYcSzCd2e2h89rjVYFuLNJm1ucK4sOVWxnai1vpr0MPU NKh3CI8VjHzg+PzH8/OYwGLJxsxDLfmcVhk3UIZdcUv5WYzZOM3wuT8sqptiKu0qGPYi AJE0A7cjvLIIRq8FxiKy1/rXp2n35Xu+rB8mYW91zouH3rPI0zr1A/5tVOSVdp+V0DCS 2A== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx2nfb6jj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:50 +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 1BE8fXKg156420; Tue, 14 Dec 2021 08:49:49 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168]) by userp3030.oracle.com with ESMTP id 3cvh3wy7kf-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fft5nyJssWAWlRcV0NZDYbB7dRJm1y5po8hfAiEVzA6ginffXMEYoiuftEFbfnA14lFYlTitP/w5ynFtYWiTqAQxgsqp1gYkBtwhygiJyOIB0TpekeTV6mXvtYcaI3A/BWAcgs7uesDFlEcSkpotoZenxnGGV6XV0M7x0cAppwMxITcl1co4T5m8b5qh06k56TIFzlgKwCW4JrQzFwpiGXG3DLDWGGOnUJtvOkkW54vCvHT71fApjrW3ZEyGRZG8OehiguCN9Zul2JP4XRG9mLNhi8hyHjFsVMz8mEdf+q8RhiZFP2N/vQpuPN7je6majH+s46Mn6xKOecdSGgtH8A== 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=ge+j5fJUg9dxZDo3WRzqA/utyTpNos5iKtMP8GUhp2E=; b=m0IOtICyIJzUKBZlgIVt5kpJuqNeILw70iEOAEIrwjoxlK20lRHOBV4kMUszC/o9PEM8UFbkMRZusf7jrgmPiTWHn1KLFFl5dPeG/s2YOrfI7VLpVgPiZuDE4ZVIrGTJS63WrlNir1GIQmZXQCj6atZXwmo+snRlY+fCwR+LWMiJL9FkLmkVeVv5llQhUk6zG/Gz99hbZIYvn2/VcoDV2QXjos4ubCtRsU2PkwBtu/mq6e72plEr3Vfr+wUuGkYhtR3GMfQdF82N3FYDLTX8HeVLXzzvdh1h9o66bSO01LWAmkbdmHnIok/SP9QidLnnsj+GroM//YS6lhISVbHnXg== 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=ge+j5fJUg9dxZDo3WRzqA/utyTpNos5iKtMP8GUhp2E=; b=G9x7wPGq5rFPIopsv4a+nEM79o+pr2rzdSNpjLXyRVbqITWzzXqL/DdoZ+wPonPbTeT6N1bQ7y6jVMZpnVJG/X/8RNWJIVGADcnpVvmMnFIzAK6WCgY5VNRlZvFXCee2bxoAToQ3sLp5mXvrLqPp+P5AdNLFKee8ctiLWMFPkYg= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:49:48 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:49:48 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 06/20] xfsprogs: Use basic types to define xfs_log_dinode's di_nextents and di_anextents Date: Tue, 14 Dec 2021 14:17:57 +0530 Message-Id: <20211214084811.764481-7-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: ad6a232f-4ff4-4514-9db2-08d9bedeaf03 X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:428; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 25IJGTiKobMazcOHfiBvw7huEWgUFVRzPjXcC4O8bXzzT/9U6yTfKEfLSa0xYgSGN3E6PFzp93ryQBtnzbVr3sJItnZs4wWyIUcDDOJuB8NGmcUDJHTSPXXS4x8XoCqRBve9d7pEHnaUf+fklmP/LCLCQp8apzVB36aIHSeEQ+xr30Ub1xrh0MbJFNqUKwAnBLkXtYOO82LE7GCHTFetB4MQT4RXEj3JFTRr8aiTC6yCe7Wn7dL3A5VzVwpYWyX6GwtBBvxBzTV+HvcEU5z3q+NJr6jMrop4GEAzExS02SZlOfFQ02PmgG2ixhkCY459S7FYDmkjBS9lg0lF/WOqFlLHCI0dKZyYOs2tWuRbkMHR4Vr2baoSEUbTHcq6OSrGSa0SyFLdpg0H8jAOrqmicIT+u/FWzTEvSh4ozQKJWnyIt6G2vHpNHDoUghot7kdNF9TiZX81rtmN2SmjQXAjRb472BIb7uaVR/brLClX8OxOXHjgxdBqE3S2daP7S02ZTZgrA211NZnqFVRIkGLKemMz2bsr+NmSVGwh3Oaytcz5ZtIR5T5xh8n/yatuPCNx9POillQZQK8RtDTr+b4WDXrWgkxiBLwQACBNkWi6XzSrZXh+i1QdjpyZzpA+quyngHP1i/Z1kmrgp9qGo65Fg7/FZ2DjcWGUnuB6njRCWD14iHtlecmHuUiYGcuWfT65PToDTWc7McgCVa3dB45V5w== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8YF+NKm1heJ0wIsS7nltrOGa8k19qNKTtmhR8jfCDc7oPnTovrB13PLpTXEcgkE6SqyMHEZ4Nqr9xaXGJZMHpeluuYsRY/7XuK5G73xV703ARz4TCiSisJlvoy+XTdzA0nnfKZj+ORd1W34g0+Dd/UIm9IpgOfK0GEke738KAYK89oqzR0yIHaxt3N24RuZWO/Cm8uUWSXgOYz1SYenrDuQdySn0+UtHWBUMyKIaGhplEPUD8zetk0ea7R3DwWFWPGEfp6Kjd56tocUFZ05qv5IaQso0psK+LCC2+mxSWHFGCQM27IdcOWoxsr47zKCHpXVACqMgnPCbIhX1h340tEsAS7rscfkz0KexedlJLqShMAqtas2fcKZp1ipL1XossFKNYe2KL1xxL+4NWXbXY34yUa2e4dSfSCqZ5yxEKQfL5VzAZtIsG/KIfG40TTyXfDWC+4zQGZqYovi+4GSwSIo8sV+FpvcTWyZXK/URuTqWmTPIBoRDyiEYAHQpfo76GT2zOmFmxKybugADoXrtfQUi1GOcf8fn/D4K8bq1ExeGCLBnvpuB1QAUtFxSaZ9BC6L8HcIZftbCeXSB95mJY4ijEYu3PjiKETEaP6huSnnOtRI6jDgo/aPuu0HK7vlzmgwA3W6Kkbb61aYUbeQJtXHS67F0HQrOMrFnaTswjuQcDwt89W8szsqSyEls2zycEPjcN+NNx3J8yA7azRMzAbsCbRQzMBAweTyH+fzcQ1B/JoqDkymiq8HJGbRB15zYYC9myaWKN67G2eWEgxXqWy6sm1FjDutNMZTvbzFYgDreCsC7VYXYgbFh4eLepvn7Wc5rJaXX8RB/IgKaNBkvZR0xOzwq55VPtiBAe6RTYiHTiJUM2/Qyfnypd+n/w5ZGULY29d3uvzUK+Hc6/VL80/0bRUoblUeh4uRjYKqjseNPjvDTFE/QTIQD5NneOIUkUH6pbauqugj4Tx+VvE8pdvJKRXcjjub/uY+NH0vFWo7sigEnf+yWO/WYMWcvBVDrtxySawTu5GxxFAqg+sSju9VodV8vmWG2MDpvsHNRcgX9/DOuPIJ0cLVB8Dn1h/+2ikOhwmhymG5/jNXGPBHNng6Ft/+UIyuK3lBrWj47A3t3+iPUMwgif/Ai8hRq9N+Wp5rakef+NzSZlcar5oWPDYmUvrGLdAu+NpJkfgxFZ85/VUHj0kLtHH+3kigTPDxQgDl7Jo4TSHm9GNMSPazHHoQ19fzGoMIyCTrdoFyXW/jyklp4jWi4PG0tAvX86BHMR5FkkfRdmUX0GDPAfdeZcj1BhnlEMadN+tLtbFJ60UiEweQEUhOnFaT9Aw/Ama5jaLchlF/jMZhAMJJqtcXhuBU42v8xN9/E0tMgMYx+uozPZVrMoOFeSVnGLB4aKfr2B3VlvsK4/s9ZLMf2BbEBO/qgPypy0bI8gJfHE7m6hMfT4zg8xhOsEJaZdJyHzKtkHemovqXfxp2nyYBGfmo2r0dQxnYawVKd06mm0NRM3+jIVTqrAnnQ1Zk8okecV7zZZ9t5B+umNyE58otAv3HfJNHQcuiywHpPkiF3xNPO9Fx1/AmLErewiHRyXl9pBXLIK6SSV9QHuSchjzirDWNXb2JX16WQrqQz24BghW4lwAI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ad6a232f-4ff4-4514-9db2-08d9bedeaf03 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:49:48.1417 (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: dhULnSw2MAKecV9te7deEZIzzzbdhq5TDpUtgwLxhjlcWMC4h0J+Qk74b8H4spKB5Qp+I7nXH07DtrKkdQGCHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: WhvmcL2G9O05G93wm_SP79WihI5FprMM X-Proofpoint-GUID: WhvmcL2G9O05G93wm_SP79WihI5FprMM 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]. Signed-off-by: Chandan Babu R --- libxfs/xfs_log_format.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libxfs/xfs_log_format.h b/libxfs/xfs_log_format.h index 2c5bcbc1..c13608aa 100644 --- a/libxfs/xfs_log_format.h +++ b/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 Tue Dec 14 08:47:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675669 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 4A3D6C433F5 for ; Tue, 14 Dec 2021 08:49:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231597AbhLNIt4 (ORCPT ); Tue, 14 Dec 2021 03:49:56 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:9310 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNItz (ORCPT ); Tue, 14 Dec 2021 03:49:55 -0500 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE7BktL021573; Tue, 14 Dec 2021 08:49: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=G7cg3agS1vhSpQDUBPC4kL6j/7KbZ9eh2gITGYX+FjI=; b=z6Nmfg40gP6GKz2Ouxb0BW2bo37IEehwombRzA/+hfIZ4a75lcm5vR+cyKX5tLiwyl1z GlH8XMjAHo664o5GJmX3boM19DX00bfyG3buCRVSudLsvMMQzOr5XtVJVuAh6EgkqqrH 11X1Utgftx0SZGoZgwHpb/XtQHPesJrA56SbCH7S+3YiQ5mOMa4Hd2zg74R08OSsP0Ea KZxJj196v8A12qBZ07EAySy99960xO3qYyVWs/ojL4i8s6OdFnqZIRnURQNaokt3i10K UeyufoMbhbJYjKgcZ8QL8ukmN1lFS/w6sNHISpJXwC9Zqm9pXbgW9/ddbrrZuucW+mjb Xg== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx3ukb2y7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:52 +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 1BE8fnjE104426; Tue, 14 Dec 2021 08:49:52 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by aserp3030.oracle.com with ESMTP id 3cvj1djsx4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LnEs8BTjqKxRLqvEfiQ/515QEEhcpu7ZgoP3AGdh1QQIAx6NC9oJ3TXPSM5OO6VwxvihiOokwLTO8dKkxVtR7CAFNDGGr2lU49DeQfu0s9XbDur0yo1lwEHZO9/ABJmSZ2YcSbysGAOzSzYVffO6eMkM3bAwKGScHk6AvF+BKPoeMeHmXWTkuvqa8FfsG6nJIvQvJa2Y8wUWa+vKpBq/86VCCOptnk14CUY48Oo+WOO08uvHOTXY64qz/QiGpYcyQCRN9GFHdjhR8bYeRlIhEa3/dXZ/ewpBhX2nmtWfWbv+aDSJbTgsdl3DFxXK4fog3Wz/CYJD2gjhz0W1LNekCA== 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=G7cg3agS1vhSpQDUBPC4kL6j/7KbZ9eh2gITGYX+FjI=; b=YUGXxrkzvDSSn5v1HrUVC4Vpx3qvYFkYy+TLus9dLI+rvX8HKjjMMrFrjNxGOrmlBsDTZLpguobSGD0hYV6aturwRidxG+op17R6h8nslLHCH682MKTsTDMPWfwDCjzhv2h6hL1t1AT5bTPaOpJApTE3jZgmON+doXz08XgXlu7dL5Z7+2gkmZhDJV5IdjO4cJ2NnQ7ekvGJlcP7vEM5CoAGtP63YZ2Uf2Gny6V0FoDgjhjVSJ7MkCm/f8PLFT+Vn3+lCOwyBoJ2XyPtVJimIMVhFD63ThL2ARxCDT06hpPB8MsfJzl4aKjHJ41Hxh8rEsZhXhaSfGKCkdSdjq7/+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=G7cg3agS1vhSpQDUBPC4kL6j/7KbZ9eh2gITGYX+FjI=; b=u+Vo5PAZOIN3f+GHRoQD91MaT8t2hdaOUZRux3OfBzpK84ez7GAe6dZLEQa1Oa5+Ug8bj1ENnDStcBZLkoZF/hjCGzbWz3g+wfnCd11RCg+cOePiKu/cZg6rXBQOCG1lsi6k4JZaMXWxAXlH9k4SgtcpXDCf40MYn5ACRv1zaGY= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:49:50 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:49:50 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 07/20] xfsprogs: Promote xfs_extnum_t and xfs_aextnum_t to 64 and 32-bits respectively Date: Tue, 14 Dec 2021 14:17:58 +0530 Message-Id: <20211214084811.764481-8-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: 20a0dbfe-7daa-4fac-48f1-08d9bedeb059 X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:26; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TNlCtC261J6B9ke5kTPQJZxsUdlXUH5rfyrjdO7Qdnm/lnRYiXas/lWOcwKkwBSui9jkXmEycHcF94EF8+7lJ8vcQep5AMVteZ6JwMposvzQDhMYDNiRgjoKf01P8NLjhwyCREkuqlWOZHN1U6jBuUrt75iI7Btx4crf3PaFNyqYy0yxNwIPC/ZyQ0M5TN6zDeoCHMUHcyh+5VWGo96jgNUb8fvSL0DkgUqny7ww4FHPyRMSN3OZsamZfzDkb+qnJBRmFBLBlV/ZQZ3Cr7tzqxWbeEH+liB+r7BKtbkw+UsLvHwfaXwoMRikRObL7XWr0wvuxMFmrMbfAr345oFhG3jY3UsUSoB99uXDd/F+WcbZPCsgleqqs8311IOyM3PMphhB3RJr6E3d8Gq7kjPfROW9teNsw9i4LGHctj/mtN4u2oSNu+aoN/xckQNm40HUNIDrpN5yF5RpNGL+q2n3Y1diUkPqT5puUxmwp2ufY9z3LKrfzfRbvd2I846iXKMjcxjcQOkTqpwQpCuj2RyEQ0gG7rRfh4TdHQAHBhelXua1q/0VUF5Fhzr9BqQu/8gYRPL7iMMBpuEDUTfNT78RfF8SRsnRFGDmfEBHpMVpo6sW7t0iF8/8LD+tejgso8AcL2JbOtOymmT71VIJ52JlKNJ0yzbD+SyG2DIGAp9qc83/OhH9VsFoY5xcndrUZw07TB046kFQ7KhrTFz9v6lzhg== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 0MLtd2sgAWNFLJmmAClpvY5EGedPiCbNHhdwRI3fq6nenlnde1AySK8luAW62u09hfY+yq4dpgme/h8gnCFRW5DVHttsHupvBl3SeE1iCxdJu2kHy5RqBwFtHYQtvgpiCI24F5GIOQYZO5Bzyr8QZx2ors/XfoyF0JBQaGZ+ej+A84z9I3BmykR2np+Z0Om3O7DBw6FNfQTg+PFJzbS00HXVluGnVCmiPnzLblIxpyxxwOeBe65cyEi9Y6UvQSbK234MhREFsGQVyJx2fUJFR54LfH4uxwGHThhVA5h+fYvYPZHAg/wd5PPLZe9JhsGsMgefcRiYqivHgoKflh7E7keKHcqTfgE8NVs5G93TnX1JqgioeONb6dNpnfQQ8GE4CAqkRgLMSdkXMrfgAZ/s/JGQn1BdfWSl99T9WYc2XqEn/T3DzOlgl+fYjYRaxe7c5bVOTuP/97LLPiVFxEwu0tP6IjPIwY1lygfZC3Ps1rulMgGWpAz6BI9CAJFBcbNvcwl3+yh4dOOeBKfMQdt9nXrZZh5Yu2hyIm9TqWt3QRpgJufQjEbAytZ9kKIXHoNH9inwAoWOVObiZyTNyqT8g3iz5+E7J4oAS8hE0GCVPqjalNGujF0Uh7j15FhTTJ8QC1W7M0OcYMvvSyXnDy3+meIsjGOmb5ZmX6M3h7wx8GxQB+TbeLMnck8hnQxS/G2EWpFtltlQzZ+1xYTudRUGLdzJvuz+RpR8IqqCVqbbkuxIBpL7GCJkbkpq5nAIfMjDLaIxLVgSO7JMXx+FRgEsH0kPa41FckPkdXLe4AwDEWFf/Ituuo5baYn84H8M/idHg7T8xJZB1GzZdS+QiKdaRSGxKCl5SiyGHSTN7NvxyARx2kQZTt70HXwUgfnMqkXbhKT3NHL1oW/6cJRt6MMXxltWtBK9MWb1jYqlkgrVFxn1KL2rQhQvgj0FipBKhzPOTerFsKf2722qIfVDzM/kAlUevTsKVBKLH5Z2RMaht7uHQ/W53FJBHeHQezwmZMYJFTLTVFWIU6PNFP0js7iElQURVWHyvKfofkm5gdBT+JSWlGkcAConKQCT6qMDZa5ODAVcn4zPBz2ePHqNuL4qNbbxbobDf1OWFve06O7SIj9If8rSadWMxctN0jFHrMWEiawiNx1EMWc57pWJyWsfcL229FeEQCO1xmH2Lr/Z3LChsInMRnDQbUkk/L1HPTtzla7V0z8twzTlOtjgcwa9wuhPpsKmeJce/r5vMW/ERB11jtpQOKUtSMxevSNzpq21DSKCzxuafF3tUixdd0DR3Y+zJ2PMYn+IgCNlii0RU6NsYAzf+z/yLMcFAjganBIhCwUdHmkzptlzgPoGwt05umT2bQg//oghudP58M1dI3aXPEEYPz8V0MhdLMzDlAY92ywMoyNhYbuKyOvVxyazvaxeNl3lblVy7g933q6v2oMcuYNt2weXXgMZr+bE1cbSN2K9RzNiKpG41DzcoAE/IbeEm+sqRJJQl5PA+w7WGXUbBwIFVxdc9suMbpi6C1iIbTsN2sN/eSIKduwfHKe+n/Hldt5xFQKV90m8PUYU4giYjXnrbdQYPKe+P7RwuTGLS/kv5QC3ZQv6DVTtUIaRZyNkuPVtFe/GozmxDd1daYU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20a0dbfe-7daa-4fac-48f1-08d9bedeb059 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:49:50.3779 (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: Ue/xa5SH9R0oegLoJ059DmIk7lWWlztX0babRQNYvH1zSJQYeL5PlVywCpOJvMqiUiykmN0A46szTdxKgcdxRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-GUID: JfLH6e25AIT0hQQ74DHCnJwWP0Di0E3V X-Proofpoint-ORIG-GUID: JfLH6e25AIT0hQQ74DHCnJwWP0Di0E3V 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. Signed-off-by: Chandan Babu R --- libxfs/xfs_bmap.c | 4 ++-- libxfs/xfs_inode_fork.c | 2 +- libxfs/xfs_inode_fork.h | 2 +- libxfs/xfs_types.h | 4 ++-- repair/dinode.c | 20 ++++++++++---------- repair/dinode.h | 4 ++-- repair/scan.c | 6 +++--- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/libxfs/xfs_bmap.c b/libxfs/xfs_bmap.c index 46e4c1d4..04466348 100644 --- a/libxfs/xfs_bmap.c +++ b/libxfs/xfs_bmap.c @@ -46,9 +46,9 @@ xfs_bmap_compute_maxlevels( xfs_mount_t *mp, /* file system mount structure */ int whichfork) /* data or attr fork */ { + xfs_extnum_t maxleafents; /* max leaf entries possible */ int level; /* btree level */ uint maxblocks; /* max blocks at this level */ - 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 */ @@ -460,7 +460,7 @@ error0: 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/libxfs/xfs_inode_fork.c b/libxfs/xfs_inode_fork.c index 42a7e4e9..627eb23b 100644 --- a/libxfs/xfs_inode_fork.c +++ b/libxfs/xfs_inode_fork.c @@ -115,7 +115,7 @@ 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).", + xfs_warn(ip->i_mount, "corrupt inode %Lu ((a)extents = %llu).", (unsigned long long) ip->i_ino, nex); xfs_inode_verifier_error(ip, -EFSCORRUPTED, "xfs_iformat_extents(1)", dip, sizeof(*dip), diff --git a/libxfs/xfs_inode_fork.h b/libxfs/xfs_inode_fork.h index 494942ad..b34b5c44 100644 --- a/libxfs/xfs_inode_fork.h +++ b/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/libxfs/xfs_types.h b/libxfs/xfs_types.h index 7ff162b1..89ab3f48 100644 --- a/libxfs/xfs_types.h +++ b/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/repair/dinode.c b/repair/dinode.c index 735ba066..8b6cd60d 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -342,7 +342,7 @@ static int process_bmbt_reclist_int( xfs_mount_t *mp, xfs_bmbt_rec_t *rp, - int *numrecs, + xfs_extnum_t *numrecs, int type, xfs_ino_t ino, xfs_rfsblock_t *tot, @@ -645,7 +645,7 @@ int process_bmbt_reclist( xfs_mount_t *mp, xfs_bmbt_rec_t *rp, - int *numrecs, + xfs_extnum_t *numrecs, int type, xfs_ino_t ino, xfs_rfsblock_t *tot, @@ -666,7 +666,7 @@ int scan_bmbt_reclist( xfs_mount_t *mp, xfs_bmbt_rec_t *rp, - int *numrecs, + xfs_extnum_t *numrecs, int type, xfs_ino_t ino, xfs_rfsblock_t *tot, @@ -1045,7 +1045,7 @@ _("mismatch between format (%d) and size (%" PRId64 ") in symlink inode %" PRIu6 */ if (numrecs > max_symlink_blocks) { do_warn( -_("bad number of extents (%d) in symlink %" PRIu64 " data fork\n"), +_("bad number of extents (%lu) in symlink %" PRIu64 " data fork\n"), numrecs, lino); return(1); } @@ -1603,7 +1603,7 @@ _("realtime summary inode %" PRIu64 " has bad type 0x%x, "), nextents = xfs_dfork_data_extents(dinoc); if (mp->m_sb.sb_rblocks == 0 && nextents != 0) { do_warn( -_("bad # of extents (%d) for realtime summary inode %" PRIu64 "\n"), +_("bad # of extents (%lu) for realtime summary inode %" PRIu64 "\n"), nextents, lino); return 1; } @@ -1626,7 +1626,7 @@ _("realtime bitmap inode %" PRIu64 " has bad type 0x%x, "), nextents = xfs_dfork_data_extents(dinoc); if (mp->m_sb.sb_rblocks == 0 && nextents != 0) { do_warn( -_("bad # of extents (%d) for realtime bitmap inode %" PRIu64 "\n"), +_("bad # of extents (%lu) for realtime bitmap inode %" PRIu64 "\n"), nextents, lino); return 1; } @@ -1815,13 +1815,13 @@ _("too many data fork extents (%" PRIu64 ") in inode %" PRIu64 "\n"), if (nextents != dnextents) { if (!no_modify) { do_warn( -_("correcting nextents for inode %" PRIu64 ", was %d - counted %" PRIu64 "\n"), +_("correcting nextents for inode %" PRIu64 ", was %lu - counted %" PRIu64 "\n"), lino, dnextents, nextents); dino->di_nextents = cpu_to_be32(nextents); *dirty = 1; } else { do_warn( -_("bad nextents %d for inode %" PRIu64 ", would reset to %" PRIu64 "\n"), +_("bad nextents %lu for inode %" PRIu64 ", would reset to %" PRIu64 "\n"), dnextents, lino, nextents); } } @@ -1837,13 +1837,13 @@ _("too many attr fork extents (%" PRIu64 ") in inode %" PRIu64 "\n"), if (anextents != dnextents) { if (!no_modify) { do_warn( -_("correcting anextents for inode %" PRIu64 ", was %d - counted %" PRIu64 "\n"), +_("correcting anextents for inode %" PRIu64 ", was %lu - counted %" PRIu64 "\n"), lino, dnextents, anextents); dino->di_anextents = cpu_to_be16(anextents); *dirty = 1; } else { do_warn( -_("bad anextents %d for inode %" PRIu64 ", would reset to %" PRIu64 "\n"), +_("bad anextents %lu for inode %" PRIu64 ", would reset to %" PRIu64 "\n"), dnextents, lino, anextents); } } diff --git a/repair/dinode.h b/repair/dinode.h index 1bd0e0b7..3aec7bc1 100644 --- a/repair/dinode.h +++ b/repair/dinode.h @@ -20,7 +20,7 @@ convert_extent( int process_bmbt_reclist(xfs_mount_t *mp, xfs_bmbt_rec_t *rp, - int *numrecs, + xfs_extnum_t *numrecs, int type, xfs_ino_t ino, xfs_rfsblock_t *tot, @@ -33,7 +33,7 @@ int scan_bmbt_reclist( xfs_mount_t *mp, xfs_bmbt_rec_t *rp, - int *numrecs, + xfs_extnum_t *numrecs, int type, xfs_ino_t ino, xfs_rfsblock_t *tot, diff --git a/repair/scan.c b/repair/scan.c index 4488e084..6b6c0519 100644 --- a/repair/scan.c +++ b/repair/scan.c @@ -220,7 +220,7 @@ scan_bmapbt( xfs_fileoff_t first_key; xfs_fileoff_t last_key; char *forkname = get_forkname(whichfork); - int numrecs; + xfs_extnum_t numrecs; xfs_agnumber_t agno; xfs_agblock_t agbno; int state; @@ -425,7 +425,7 @@ _("couldn't add inode %"PRIu64" bmbt block %"PRIu64" reverse-mapping data."), if (numrecs > mp->m_bmap_dmxr[0] || (isroot == 0 && numrecs < mp->m_bmap_dmnr[0])) { do_warn( -_("inode %" PRIu64 " bad # of bmap records (%u, min - %u, max - %u)\n"), +_("inode %" PRIu64 " bad # of bmap records (%lu, min - %u, max - %u)\n"), ino, numrecs, mp->m_bmap_dmnr[0], mp->m_bmap_dmxr[0]); return(1); @@ -476,7 +476,7 @@ _("out-of-order bmap key (file offset) in inode %" PRIu64 ", %s fork, fsbno %" P if (numrecs > mp->m_bmap_dmxr[1] || (isroot == 0 && numrecs < mp->m_bmap_dmnr[1])) { do_warn( -_("inode %" PRIu64 " bad # of bmap records (%u, min - %u, max - %u)\n"), +_("inode %" PRIu64 " bad # of bmap records (%lu, min - %u, max - %u)\n"), ino, numrecs, mp->m_bmap_dmnr[1], mp->m_bmap_dmxr[1]); return(1); } From patchwork Tue Dec 14 08:47:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675671 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 7F679C433FE for ; Tue, 14 Dec 2021 08:49:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231737AbhLNIt6 (ORCPT ); Tue, 14 Dec 2021 03:49:58 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:44854 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231697AbhLNIt5 (ORCPT ); Tue, 14 Dec 2021 03:49:57 -0500 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 1BE7tcRB005519; Tue, 14 Dec 2021 08:49:55 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=IE3XjpZ6Kz0xPPRyKHk/2qL+AgJ19Q8xQ/j8VtUD194=; b=V4hQGHfNcDoHuDVIn+9XfRxPjhTuMx6VYjkZOlxRF9r/1KY/DupyqCs7kgFXOZRR8lrl BJAz+JKELS6zQ4NRmwx59qJAS6aPwUEGLI7goYmn1hTMCTRXEJQ1cRzovJflG2Tk6xLD P9+SvQQEgR1fmEBPOimKJ6V+jyzcwdMIVVTI5RJ9onWQjVRT5eJZBPQAW7NfptD7+UF8 ZHpCZztNnjisg/FS5X3BaWJc4rScxa7CVTCO3GR84Y4t+MfXyCgJ3tpIZD5dWBXMbn8O XEWbCGD46tKajSuTzkBWs9B/0CJY1THBIi6421QBTQrCO0ojLnkE6mi1dTMSm0BOjQ2F pw== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx56u2sww-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:55 +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 1BE8foBT104439; Tue, 14 Dec 2021 08:49:54 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by aserp3030.oracle.com with ESMTP id 3cvj1djsxw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YptQMyEA4H+XhwQFpM+Q6NeBmfzFzGMnZhgZKIOqh2MrKZy7Udk9H//W256ookRyZAifW/Ib6v6r8qRuKW/jvRuKoOWVrkI7mGYjBRv5GPGtQUvXXjpWC4LIGfwbCL1LjObp2HU+g85rLd4v5bpzFrebRH3wOI+PT5nUVBnnl9dtkcj540sZUjnOW3iQZ5FMuTTZVHpZmt3Odnc5dTL0xvjkyf9R6088C6pLck/G2oixffIyGMQT7PUJY2K5mK6WCnz8SX7pIaD3S2U2E9IHnwovTv1sO2P0oWPSssu8lHRcLnboryZx2Wbhr6BIK+Y5gTVw8VNmUzqw+7QbgRX7aQ== 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=IE3XjpZ6Kz0xPPRyKHk/2qL+AgJ19Q8xQ/j8VtUD194=; b=T59DKMStwyDZbAZUBRSSCYN5gFLCjAMWHXWkrAEYwUaTMU3rviOeDhAfJX3+WhuCbQCGXa4TnlplCyV9nLBQ5TfvoczxkOKvE0QVUlCBUnpyChapS21R9x94o0vne2aX/Jx8+9jQtl/4euvGiT1NVWi2fuSlztrQnvv6YXZcvrLdcQ93HwrMWNsXmDEe2Nztov2BoFtsKPzYKXnIWmURxnGkQrvIymxpJnH7BbgwhDCyf4Zn8bow0JCBH8/S3Chjgs+mmXKks6JmeuLxlnbypohtI6hmsvIWwN7b1yMOGPbZelg3AmsxuWXf1IL+YQdP/CO7TLLx0hZGDikxUio2pA== 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=IE3XjpZ6Kz0xPPRyKHk/2qL+AgJ19Q8xQ/j8VtUD194=; b=J3vL19UFCGgNfpktpg7RR54We2k6DY2zEp/pukOiBWRfJew7uiDChn15Io1gilFLwm1Xne1ExagGAN8fmvDzO2sF2p7FRTP8emJBv1zm4FuzHqPd5zjCKh3BuE2JKi/MlLgcHeJv0lA5S5tdvEU7ySmoGIogbmL2rRCTp40Bkvo= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:49:52 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:49:52 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 08/20] xfsprogs: Introduce XFS_SB_FEAT_INCOMPAT_NREXT64 and associated per-fs feature bit Date: Tue, 14 Dec 2021 14:17:59 +0530 Message-Id: <20211214084811.764481-9-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: 55541395-cbea-43ef-4860-08d9bedeb1ad X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:644; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: f47xuSFhuT14Vl6xibWvv6BZiuxDgqpEp7uRNAqFGdy2M2nAdKgoMncwoDCdyMiTdbHsJeJGGh05Osx/ilRgEaJ2YTm8a7vuNkgx4WgLGLv6Hbaz7BmziqAQskbN2OH/70Dzvw77WI9N7UzNCeNqWNFrAfVFRK/Ak8Tt4tkThFkWY/L+RWeB694gi0EfXdrFuB54wiDvDuulkU4YIbKUqxosCILDCOQi8/wpR13nBtg+KFtu3SIThgpNPKrZJRFlJepp+XIXtZfwyXA9snZtdmdKXh3QCGMD4oBWN/duLc4iAuaEgMju8XAsFe+NaWW03x5glrW2tyoBJFVMzuYLuldxFlOV4WR/KHMgxTgReR0YBw5nZUDE2+ma8M3GvJAIAq5T+Q+xTvt0BxOgdhQrlK5xxFKzOxiEVMnt0ITVGuDzQ2tk4MGQgu0Tc1fgGj7UgF9yzLkxgVvsAoICEn/gGUK5d5KDmvHqb+I8cNM4BrnhKabTilBsIpBp9Ra3l40/uwBvAi6wTz5sinThOMmsTw2nsXFUJH3+Ha0EFkQXzmK4fteI0M0L8beX0acAQaeo6bPzGGCAX6m7YlpH0UzGt2MvdXek97ZC8JmB3E2jKqwpeRjJ7OqUqr3b/Va+rZ++qQYP76o9eIBkXwVIoD8j4SuAmFZkAdakiXKehOVXB6W79MU9VwWtEujuK+xNr6cx26iBHJNaZWPbYceoyxgqpQ== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: d/2HpCVa/7ab/nYvAv81qYcJ6LPBQyLIdYb5OI2chuFheQEkFL6NHdnFxtQScU0KijXu4EqaJaZJ3LmtrDxqKze5YYk0N6OYnAE+FSyOGvg5X510vxzKk7cxIOk014jOCoQJx08OTaJBI0Vh7X7cQYFoS9m0JU8/6lIe3/uI5ACrmEiaXq1qD5uG104RpVKpgpcZ1h1/sipu2g6nG+ykhkuwx/cEGnOU3hy9LeKkS8DWpNN+qEToGHMPy43UyQSP8lX1njUGwpoLiUpS7bWzJU9eyJem5MBRLMLxBd32qGX9OO8PTCdpAOxbZtrEJsfMBZBpmnAKBpdbzBsFqgiudlpFmLRoF3aU9fx+2aCtv4uB37eSknBnUd1YOWaNuphPmf/2rvK2URdhvsdSVA+AV++FRKoolHVTZrZ2LN8U/kWwZlRRV1j0R8cJtRo7ehVJN5UDYgcBwiBL/2cVRjS4TGEs5qY65Z9sEzHt2YjGWXhchCxtAusB9aYUh6ri/6/DKf9eGlL/1SdsIAHOdRyoIuC/1PEl8U4zEbotM66JYPIe8l5YSXlEagwoIN1MhwYAnmOW4Dc/4e5fcjplo6edkXOYzrL6YY0E5ZxlF32vPYzQ3Yx2yYs+Hw+gcDeXF+DuuG9dwah5PvC4KEFKDWtfxiwXfl6aQS2oAFIPPlqumUIgYKom73ubl++q3omlhoR9jLaEhKC71Wc9mw5ugkOdoKpj0PVXxUKtlJn8H1j8phoS2u/SJj0IpTIQH8Df7qNqU4DyhGw3n+EdNA3BKTpIpfjdy22fH5mShaRr4Q7vKdnL9Bc/k+yyawksxDxkDXWClz5gu3DGOtdJdQu42Q2I/DvAY52edUa1dbtkybJq/h1CUSDIAHu8I0mMmGeoJBXjH5Cg5HRX1Y7x8PHV5dQfmCLJOy33itOTdXYeIlCfghNFouMaCdB98tn+DMPzm7INx0/S+C4CbgdBCRJvUNP3q1QbVE40tDct0V/aZupE6R7aoFwM3Y8TMJ/HWsTtY7FkGSNHwFV+4PyWIUa4aRidzUc2mU/XdbodA0ROXiLFhomV+emjL636V9KzvLnBmgSy85HYmlqE+x1B3kWlGr1pMHjvDJRuXRUU+BAk1MyeFZbf8Gqp0PHxyXV31kK5M+tCDf9KMczxKKYG+Z7bn3EyhsA99vugIfe1zduFvctDzDTtjc2ZHooa7+jIgYoxw05OQUYe+Z6aXEc+J0a4hQASiTnxFz6CelO3FKcU/RXq/O5flA9uRfKo7FdORIc9mnPxOdU2gxF+zcwTMjV4oJlSM1TBIYDQF/NUdH9Pl7XvLTa3OdH62zq1Xyc+Y1/HtnNXQoNa4vP4n7Ou35BcmPZ2NQJ12A0rZaM6L4y+Lhw605vGHOl4G4F1EjIKyyqKxNeoCD94H1nN0eQce+pMkXiTZLkwbrjqh89rMHTsWP0Hj44IJndoMJyJ2FttsHiWi4t/otL2aUU6ewELLrf3vHUWXyrbqaGEBCvX4HZRWlHlte6UPYW3BBurVOsXm11L3Vz2ijRqNGQIaKxezBjfIBiW5rEBh+vINdDdjaL3Dx6+vncBO3bGIzFLOfKQ2QREhtV3eNQAbFJa68mLFJNiF6hLMA1TF/SUpD4fguhsS6M9khk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 55541395-cbea-43ef-4860-08d9bedeb1ad X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:49:52.5951 (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: aB0qm08vox6Hs2KdupUiB8eswYFJrGljiD56llv4XGi4V59mRCdFVex3bKqihe8MTa20DVyKO5BLpU/yrsC2wQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: GYqcm-cKOsTmn3R7spf2inL9t5tYZU6y X-Proofpoint-GUID: GYqcm-cKOsTmn3R7spf2inL9t5tYZU6y 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). Signed-off-by: Chandan Babu R --- libxfs/xfs_format.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libxfs/xfs_format.h b/libxfs/xfs_format.h index 68f42fca..23ecbc7d 100644 --- a/libxfs/xfs_format.h +++ b/libxfs/xfs_format.h @@ -469,6 +469,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) /* 64-bit data fork extent counter */ #define XFS_SB_FEAT_INCOMPAT_ALL \ (XFS_SB_FEAT_INCOMPAT_FTYPE| \ XFS_SB_FEAT_INCOMPAT_SPINODES| \ @@ -575,6 +576,12 @@ static inline bool xfs_sb_version_hasbigtime(struct xfs_sb *sbp) (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_BIGTIME); } +static inline bool xfs_sb_version_hasnrext64(struct xfs_sb *sbp) +{ + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5 && + (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_NREXT64); +} + /* * Inode btree block counter. We record the number of inobt and finobt blocks * in the AGI header so that we can skip the finobt walk at mount time when From patchwork Tue Dec 14 08:48:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675673 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 8755EC433EF for ; Tue, 14 Dec 2021 08:50:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231660AbhLNIuA (ORCPT ); Tue, 14 Dec 2021 03:50:00 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:13568 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNIt7 (ORCPT ); Tue, 14 Dec 2021 03:49:59 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE71GEL017905; Tue, 14 Dec 2021 08:49:57 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=xyjhRtFNiNt854KoDuHsGzLtKTUO3ZUKT20dhrkzL/w=; b=fw+8mh2jlbx9iUJzfBvFdUuxpRwsSUjO2Xvo/TFKg997JSaLwriFKlDiiCo4k+4I0NNn fcHAc51d3Iz9tlL7NRVucGHikC1buDqdlyG8TRmyRl8jeUX6DaB2XTJVdJZJr69S5OmO 7ZAgyWToI7jOAIUTnKl448UBm8JioapgL4V7CITEHcm0cQPcS0KsC9yu4R5rhpR5R7jX 3t8hIlGSBfiW1jzym/+rloXvxYANY3MuPXlSlXNPqj+o2+28xlGuYqZPvm1Pd8KE2hkm 9sDfBfrqABDSgfHAaF9Ie3n7defESq+tXKNBT8xnkKAG7pl+fB5F0eexGFrsIJDxPaaJ JQ== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx5akau0t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:57 +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 1BE8eREe074100; Tue, 14 Dec 2021 08:49:56 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by aserp3020.oracle.com with ESMTP id 3cxmr9yjj3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FBNFg2gRi4GzATqM4ovXXXilTmHsX4Hv52E4v510T3A9HmdeCh1pzKspdYkTi1IlI5A7VA0uhodAiCAlbb/3d10XG9Ud6Z4s7posIZpvTPotYtKmmz3dwcLF7hKvINEZ+UeD0sQyqlbjEsqQH0eMgFKW07DLe8xtt29mqtdvbeC8ewQGTnJhhEBStmCFUBBE4GuQFUQmTQDarWDRUNf8hZPtWylsYEfx03jiXy4w2AHEsmH2KgvQqwwueyrz3nBv0jl5cKUztaxGsYVuyHVCMwLbQH6KL6VROrW0VedB/X7XBz4Q+xNdK0g0foNdptUORgkUtxDhHwcXerDHwk/qFQ== 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=xyjhRtFNiNt854KoDuHsGzLtKTUO3ZUKT20dhrkzL/w=; b=g2KtKiQ5bZgA7Q+nuENnbo7esX9/1E+8IkN7TAYn1UPJhjQrJjIHS9aaEt1SshmcJV1Ay2eATl3t9ZepzfEi/J9XqScn4JVShzHHuEpbbGPfL2bEDL5GRCgIR4h6hmBAhzkAmmz4BuJ0gPLHtCIp57u/h4fTIRd9tRENDvetN6MgTPtuzMM1bOkRTKcMcP5c9gIHFuKPZvZQu6XU260wtKEFIO2qnn+oP0qjKYXyuEdDA38w6CmW1VIiTwdh8XarUZn0GBgYuCFN8AQ6Lu6ESkMCjtIw4jY2Snf+uA6ZbZK2+APwI9lwsJ77+k3c676Ba8PFm/Or3tqceD4lQAZE5Q== 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=xyjhRtFNiNt854KoDuHsGzLtKTUO3ZUKT20dhrkzL/w=; b=dXH7nGlECrTwtqptsWvlJ17kOU+ouw5FgxNN+nc9i7zCdrRLsZXRkQBFal0xhAQDKjFmPjG1cvqNiihII6lRRHvYtzvjn/O6KauKFKdW6gyYaZGwSCU1RxxQtlljrVsb0IMXt3KNEP4TrgxD4c7XH0c6uZAW+JXOszCkfENBJ5o= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:49:54 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:49:54 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 09/20] xfsprogs: Introduce XFS_FSOP_GEOM_FLAGS_NREXT64 Date: Tue, 14 Dec 2021 14:18:00 +0530 Message-Id: <20211214084811.764481-10-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: d74b136a-9857-4a87-2dbe-08d9bedeb2fd X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3513; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: p3qnWddY5A4YrB5lbNEZy3JuJjaMtIAtpPoSM/bOgOneZlUYEfLZmDQxJlEAz+TZNnNcRBOtJz/FXQFjnk7tSaSn7eFuyTCdDEe4dMqyXfDj3O/UCEwtxcuyEGcDAikS5qlNkkIby7lKJ7eqFiESHVOfQy6XSzxfPEWBhoF/KiDztEtjKU/3rr4+3qX+tzoQ4FB8hxa8rliji9YtCOussf95STVGin/a814w3FtLHTdf4NswmdzOMdMNbYgIyEzQTFKxj6O8z6aQHgbl40KPUoKSx4D/mj6LNtsgC5f5FGIB3Q2rOniYaUS9Rqjp8p7pxoKTuLWQbP0e1IyUutLuZJPfaFQSS+OM6ERW+95/R2NWCw3Ud0qkwkwowKROW/o6+RvOz9bV3VyHDawPchjnW7wRFEHLCMmTVAc1etxEhEMnl3+uA9OPzcstIJYsP86fWjNl97pk0kev7oFchnSkUM3woA8Y9yuQpxrttqZ0cCseVvqDEcxzPOvB0UpwDW7s5IK/i5MzCHf9+GiP6VMBHRPFbfrDl8TYR1fdcGZ5r6m77CY1iVYQB18aVzmSdQLFeSy+4icnnyDGX6chzDivtk/KT76DXPXcgaVKVBl1qMgbqZRxb8kCpGkkEI8JsVgnL/tZsTjKz+C3i4y72BmGMnEh5MNNFzyyx3AhTMCi/Lbrkhi7t+YqAHBOE6Vxb6WfJ0uaL6eJ/qX0Y7uYK7d44w== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: f30HRWfzcK9lpyAcYfOcz3y10Ya9SkgBO0cL4nYUKweR72Mjs0KLjfe1XCPOwT6+ELZ3NM28bh2keNcuJMJ9IOGDsbcwi8gvbbgrI9wAYkLEPEMOXRSYOyAqGuZqLjnP150GmXj6QWNpnNqsdfo2U31H8/dqtkD1TUz29ffQWaKzhucS35TyOWxHXL1KWLOC03ZvfsvyW88GTU0C+90EO9egKzOkU+q73WGrl5fu1DkNIOHR8CyywMwrdmIkYTuJKANM9GKb1gDfldbkFc98cIgWl/n240cYd6uIv4NHzZPGPOxW80IGJ59HhmDg6w1Wc1Hnda3eBwwPgK1fKk1J8adulKg9bbDvkBZeKQcDrogbBg91VQdJ6B1volBOgZZwB9BdAtXB+Jnr3odyo5neqc3aEYyEvgXTPYEV6wOrXXWn0hvbLmqzoGfoDrN+uzN+QzG7DqaWdHQbMvZkk5koCbiIrmdfEWMXKgEnDFyV1t9ijtS+rByijwsTqFh4xeH8Isr1aBwETR/UFlTk1SgqR4a74wMcqk7yKphQntGjze+ZPuB7jDSJbPUdF41ul1UoIwMv5VonZ43qRx6L13jPqHtni58WGOqKcvKvL6llUD3extsbaQgasXEjMftMOJBC9sSJsSoSINDaSl2W+X/ugsEVEWcJr8BqiGZ+1C2KJr9TmVcCmParrjMkqLCrWXEkkivAjrQ70YuO7JeiQSGHtjCtluC9EZ7Sov0S4KYby/zqGFXXuvFdxx0ZIfffWnFbDcBds/11YPPC5Eu1x5bCPGRW9CJIBIB8/XdnTBgy2pHeamwbCSFXXvoRV3NBwPm6eg0qluFTa46cIRn4Y6b5uJxZid/zZU7MtS3LDuhv6eeDemDuCUE93FJkRUjsyToMkz2JIxyGCibD5E+BGrG/BhXV/a2VPYlMuZEgBCTQ7s2AOZa58n/dCJZz2hdvgoRm0A8Vq6M0rbuQUix46jiQonZrHxTN3/eNF68pSXhnPsftuWgBkeKySinYxykw1kcadg5kSPPFbaZl9QpSxltei7//oJZ/rpq4D4FjgOgMvqrk7jNLMvTyLRxYxJttUvRhwE/JjbKuWhdnTE3qL2VNQd7NG3waxCAKROI+xEMDhuKZPTovwBRCsc7Es4zqZcTXo6EqpzcsQhA97XE6mlFHNyUmWf2wLQ+AX95lfLZoZfV63ys4xUnRQZRx4Sfvp3vCaaRgtpyNvwsD9a3J8TdDVQDCPuvVNVnk+aqY8YC2aiBElEDF7IUoQk5B/yaDfYhxZgTWvGPyNSDO/mDPOjMCcM0b4ugpGBeaPnIx7dVwD82A6FCQoeNEMISQHgpKlI8nQfqOsR+OJYjFriNquOT2rvdzZG8xR/155IYJm5CDfwFg2s1r+SX67VaFB7ZvbOCGAe8JqRB7gSiEwzNeWz9TzFrYJeSYM0QspqR9twTFdsxiIfTLb+NlHFnthnSr3iSyXnhJenAMQokUhZazIA1w8Ndux619Iv//8wJ/KbuWJTTiJxHIRfai8pyGAC0yj1H685dEeQMElnLpsF/FGj4haxaQDltCESLaRuUbZ2zcYiYpfcGRBI5kDdI897CpsKgAEsOH0h+IjJnPIdnm9cY9v/60dUPd2/kjv4sfYBgMs0Y= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d74b136a-9857-4a87-2dbe-08d9bedeb2fd X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:49:54.8203 (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: cBWvsque/j3oP236bVMPEudHY0txY1TQYwo4N12ZLXeLzb3cJFwTveQTcVhuHzXkujAGgcPaFO6entFk/EEM1g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-GUID: w6I0z0SRpK-R4UAImBrqW6n3jylWkE06 X-Proofpoint-ORIG-GUID: w6I0z0SRpK-R4UAImBrqW6n3jylWkE06 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. Signed-off-by: Chandan Babu R --- libxfs/xfs_fs.h | 1 + libxfs/xfs_sb.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/libxfs/xfs_fs.h b/libxfs/xfs_fs.h index bde2b4c6..7260b140 100644 --- a/libxfs/xfs_fs.h +++ b/libxfs/xfs_fs.h @@ -251,6 +251,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) /* 64-bit extent counter */ /* * Minimum and maximum sizes need for growth checks. diff --git a/libxfs/xfs_sb.c b/libxfs/xfs_sb.c index b2e214ee..7bea660a 100644 --- a/libxfs/xfs_sb.c +++ b/libxfs/xfs_sb.c @@ -1020,6 +1020,9 @@ xfs_fs_geometry( geo->logsectsize = sbp->sb_logsectsize; else geo->logsectsize = BBSIZE; + if (xfs_sb_version_hasnrext64(sbp)) + geo->flags |= XFS_FSOP_GEOM_FLAGS_NREXT64; + geo->rtsectsize = sbp->sb_blocksize; geo->dirblocksize = xfs_dir2_dirblock_bytes(sbp); From patchwork Tue Dec 14 08:48:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675675 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 B3A6AC433F5 for ; Tue, 14 Dec 2021 08:50:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231928AbhLNIuD (ORCPT ); Tue, 14 Dec 2021 03:50:03 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:17136 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNIuC (ORCPT ); Tue, 14 Dec 2021 03:50:02 -0500 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE7KL6Z022072; Tue, 14 Dec 2021 08:49:59 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=3KfxxSxLkQmS9vEJk81E/eRVCc9oNIDNWKI50uq0Uo4=; b=biHa7kgkelvhkiE2FERznVL3/iLAy3Hy7aaDdEgPg+wDFDOb/rZg+Sl8Azhc/3fpx9VS tTNaw0lOABJh9BBo4pfcX3dBKC31UkAf5TtqTXkpjk7ugmpJirlATMu4GHIOqRVJjtf+ sNNu21T3K1mTnBFnqQGfsjUuvaKzTh2/6OLJklgEe+/hNcZg8W9JnkpKiZNZ9zOA7omv ZQoHVxlqsRI448Ysqq3zq29mlVDTDHf5D5qxeBdit7/C5xKeUjn7+NuzMZTEDtiqG7i5 bJFssnY0yhxdwRMNzna+/0SNLxsqN0s8xLaTQHQONFZ0KMAK/xCjvuj/R2UFpmdAzKBh Cg== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx2nfb6k0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:59 +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 1BE8foTR104448; Tue, 14 Dec 2021 08:49:58 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168]) by aserp3030.oracle.com with ESMTP id 3cvj1djt1b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:49:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B4m9P36U1ffPYAgzwG7j2Kc9wkd0srXjBm+XnZOvV5e8DhwsD2bsAELDBgvbmPaNLtJkEgFFvJzR1UuKyuLGvvztX2wz5789tzc/sYD0zHxxzLEGr+vSHOOglWtS9OKTgT9J0dMBpLH6yjgIdS+ntlWEZHldvjlF+lx89M4LxLeZJw+4KusAHjuo6MhVSVjIlESd2fUXJfrq1YYcK0/Mx3JhRKYSvBxlUySQf3I3Xx1e3yY1SbKEfrikakkw8W8ymnjW/FzKT3hBLreS2cKKpL27PBZYY0NpG+gzu9MVeMOD6op/VPtoFkkzdjM3rcRMh4UjiasnQYjEMuc9CxF+tg== 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=3KfxxSxLkQmS9vEJk81E/eRVCc9oNIDNWKI50uq0Uo4=; b=TTFOnxYT8/UYd6V2M95WjWInSvAWFFQWOMXu/FHUbwRchcrNafBjVdCYUrbfh2Bf8BQmIJ6fc3WJnyaGgAxQIpD6Em6Bypfjcpx9oB7P9XyDUtVq1v/uWguKyzDMNbhXgM0ngjw5ggDxogLPYRl6041HQXNq9Yh9oTHwJ9hJ4EaeUAi3TfYtwHSIcTrPxDfSWHLXl0L/dhyS+j5aIXviOJ2z69OkbvjBtH62oy9UnKXFQrWDA71Q6DXrf4V18vcjp9H8JWb4da7HS8NzUszv+lPj+8qwu4vnSzX51h+389/BAJKek77i/QSa0pnQyJCzYjj+62nzw2G+hz4By/dC6g== 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=3KfxxSxLkQmS9vEJk81E/eRVCc9oNIDNWKI50uq0Uo4=; b=I4RhiUYx3wdx/iEfKw1baPM8atG5Zqrr2mm37D/gCUGXkNZ6ocJLOkjfkepbI3EHX19rY8jBE67c08TrLtZH2FajYBlCmQBXdX/EeYKxhapZX8pFFf9z17t/hEmgFcOO2z4oNz3Vd7qU3bUrk69uqg/9Vhn9SdGMlqLQg9Dqh90= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:49:57 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:49:57 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 10/20] xfsprogs: Introduce XFS_DIFLAG2_NREXT64 and associated helpers Date: Tue, 14 Dec 2021 14:18:01 +0530 Message-Id: <20211214084811.764481-11-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: 8c672a07-717a-4a83-6447-08d9bedeb452 X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:345; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VQcbi3uX7kES4HujtD5y9GakiIzSkbGNCAqsYhoko0h0GvdEro8Gg8pHbPWoqQDT6nTtyC2uxxV170Z9M3B3yESR0mHOtFIpFJdMU9el8C1gNFOOefOql3ZFOAd8/5HhQxM2Knzy5ZNK7NT4Ud4EtEyj8fFgKrYvin2VRRvsre4BxsAKwGdxRpELbRAVprC5gsyE40IT7flUXlgKX1LU6nVkdQjN/Fgk8IbckaYYkQjL16OjGAKKnhVdmPuJ/H4WgRZiSkGqlfGmMrdxgOHJzse5DB68FAwrzNGXPsbU2L9Zs3HUsjFQBeIieDl+KwqSr808v4g4LQSK6bUUeP8ReERt9IMKu1LpaXxch7AgUwgE81yUD+EG+LLAGA4Jjd5V7O8mc+Pd3Hku6s0pFCToYUq9qQSTulFB6yqNjWzrLgMEmXZctvGkEjpVleQHhw2+V4KWf0vmEys/4AGMyCfVwI23qWlG/aF25ihuzgIdy5kPxCiatFlsdTdXShyqKYM9vzmG+AJolQJ8rI4yDVgyiS3zqgcUuL27L65QmW0obLtxvqXJSK32ONeTyCfMPfolr4Xnt66BRQ2iucD6wm0CZIrxBH51EBbI0jDM7m8e+2b9CXKTbHObltVGDF1hfLDCmoQbyJsEc3bxcHB9SP7NUWTOoDSr0/UZqjVYiv1uqBnx7b/UIP+USUYEZJdZdKBlAU5x//yG3eo32BHxpXbkUA== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tl5QKVgbOgDPh+9YoePeJecsktPo6bPv+527h6ck0cSS7Sci4jBdLHBdSjwF4Vr32we+AlN7seAlx39eizHU1k9hL6v0ANHWUgfuFfdmr8cszUCC+EbZ4VvdKHZHa0xEFhpVh3fD55TvkIW4yWVMU/V3Cxohj78phMlzRo6XSL1E6Zazwl+itdHNPF171F+HVZdCfpJaflmQX6fF+IW82HucucxwHwROKebNTRjmMxvIkMVM8P2RjYgvxLIh0KLywo17e9tiL2o6yPUaL8ouuOJtwJXb8owq8uAwQJUNO+WfLAp+7nlQCahZeXthB+DTOef0qfKEBUCm+H+i2DKJXKRBSb8HXwnTpEVFJZt/iErEqcB6sdc2B9/+pd75eO3SYp8QlXOYiKJsqKRb6AuEWb4Wj823T83uHs3LToflROq3Cu/lTqAT9uZUWScRXAqTf0UcRxh7OTeJwMs8vv7STsEGTg/57tMjYhZ8fPcA+JABKDMppcUb4NRPfHkeGsNIizsM48OJH6z6aAcRMGjQURg8+kMxH6td8/5rEPndoVMwcLcsLpF/ZyU+iVJIxIga1/SleZp771XS/NbLpSk7WbuE/g52sIDQYyJ9NBUGQma8+snqfkALwpP/QS8eBMzq8PzkY6KQSdZuHjaipsWOelU2udSh97R2hZmDWTZFNotPVhZlvRrGVKnzNVCdV8S1oCJqEKh4mcxOrV5/WncRYxTAFmnfVJ/OCT5mPd/JejO0kBrgmzLtPSbIGAAfyzm3Vjua6OwWYJOAK+eyoiYrn9U0yzgdSGeyS18WXEkmypWRWbfiNf6/gEJidymKQr7oQ/WKc5Vsc30NZ4adA4tQNRsrB+gdT7sgce0ktmHTLgx0VJQkzZhwxtObHiIBo94Fnh57uE8hfis0DxOdR7hHN3jMvj+YBowi3fCtBa0cNnKzNofDsa57TvELhZVOil6fVfbc4WVpJZG+Z84/uk8QkYWNWDbOBf9UsjdnsFLhDm8PGXfQ+utvrupumOHUkfvJuT6xv8cYGhDTx+6QgSLxZWjJtoipbOvoPva+rh4jLFzliepUMkTFRkEn7JunX8wQnnhV31BDvEScMSmfEhplwmLfu3cVv/Z7iVK0mpXbOnuNdqonBQ4NFG8j7qfF5IEPRAZWuQqI/8Xs9Xa1bnHT00NLkkhQnkgvqoaxL0Vd0xoR4IFAOfVe57m1t2rRqhyJ6uhQqI1GfumSSHQaDNidIW3pw51YeIu7cd7gJ6fER29v7AQJpWaPAzpyS7yApYagKI0OpCvfxkCwj4jGfIUyqlx0LXiSdwEaGhzqNsBAgkyQDgfLHbZ1LlNjyCmah/w0itVU9BPWX072y6jO1KIHISvCafaRjn9BdG25WzHRZ0Y9j9SBMP1T1szRi0JH4E0lSiqXZkKlZtNv1V0MQ+IQIu7mXRud+AaimldvvpQY0GrqF9CRWBUQ4w7XIhxUExE9y4ZBG1We+C3ExG5rkzgD+oov3a7R1AJ/nKPd3HrvbQAc2QxXvdxT848clRie1ICsDRPRju6iEZrwfoB645K4Aj8XFXrOI3W11zLevLKVs0StffbILJkgXGC3BArJaP2IQ0VfVoZi/hJbxs9qCsYNAl/AKEsmUcDkX4fX6bDnxRs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c672a07-717a-4a83-6447-08d9bedeb452 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:49:57.0396 (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: hau7In+2fAymKuewRi1odDZ40FGbRNkQer5be1TiwIY9RFl1xaF4BdWeD4XSAB864dooO0EgKs+0LJozG8KCJQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: MU4fStQMIQh8UEua72lNClwAZAfX9M0c X-Proofpoint-GUID: MU4fStQMIQh8UEua72lNClwAZAfX9M0c 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. Signed-off-by: Chandan Babu R --- db/inode.c | 3 +++ include/xfs_inode.h | 5 +++++ libxfs/xfs_format.h | 10 +++++++++- libxfs/xfs_ialloc.c | 2 ++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/db/inode.c b/db/inode.c index 9afa6426..b1f92d36 100644 --- a/db/inode.c +++ b/db/inode.c @@ -178,6 +178,9 @@ const field_t inode_v3_flds[] = { { "bigtime", FLDT_UINT1, OI(COFF(flags2) + bitsz(uint64_t) - XFS_DIFLAG2_BIGTIME_BIT - 1), C1, 0, TYP_NONE }, + { "nrext64", FLDT_UINT1, + OI(COFF(flags2) + bitsz(uint64_t) - XFS_DIFLAG2_NREXT64_BIT-1), C1, + 0, TYP_NONE }, { NULL } }; diff --git a/include/xfs_inode.h b/include/xfs_inode.h index 08a62d83..79a5c526 100644 --- a/include/xfs_inode.h +++ b/include/xfs_inode.h @@ -164,6 +164,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_nrext64(struct xfs_inode *ip) +{ + return ip->i_diflags2 & XFS_DIFLAG2_NREXT64; +} + typedef struct cred { uid_t cr_uid; gid_t cr_gid; diff --git a/libxfs/xfs_format.h b/libxfs/xfs_format.h index 23ecbc7d..58186f2b 100644 --- a/libxfs/xfs_format.h +++ b/libxfs/xfs_format.h @@ -1180,15 +1180,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 /* 64-bit extent counter enabled */ #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) { @@ -1196,6 +1198,12 @@ 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_nrext64(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/libxfs/xfs_ialloc.c b/libxfs/xfs_ialloc.c index 570349b8..77501317 100644 --- a/libxfs/xfs_ialloc.c +++ b/libxfs/xfs_ialloc.c @@ -2770,6 +2770,8 @@ xfs_ialloc_setup_geometry( igeo->new_diflags2 = 0; if (xfs_sb_version_hasbigtime(&mp->m_sb)) igeo->new_diflags2 |= XFS_DIFLAG2_BIGTIME; + if (xfs_sb_version_hasnrext64(&mp->m_sb)) + igeo->new_diflags2 |= XFS_DIFLAG2_NREXT64; /* Compute inode btree geometry. */ igeo->agino_log = sbp->sb_inopblog + sbp->sb_agblklog; From patchwork Tue Dec 14 08:48:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675677 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 72202C433EF for ; Tue, 14 Dec 2021 08:50:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230225AbhLNIuF (ORCPT ); Tue, 14 Dec 2021 03:50:05 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:20544 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNIuE (ORCPT ); Tue, 14 Dec 2021 03:50:04 -0500 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE7LE84022068; Tue, 14 Dec 2021 08:50:02 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=RzbmGf/SXfra7iSD+JVjYvN1fkKYhjCR/73WdObA5to=; b=AQiGKxkyOiCIIyR+KhBkYsfn7H5xOGs1T2gE6Bg/zGjvKI73664npKoAGATEuK/RTcc1 YSUtaMQG7VJEMReBTv49F3hkEaFadlICgutQN7cxxjrMt4yC0x8NS8Gb0V/Fj/cGG05O 6Voi7GerJieJTK/GQpTM/ySx8dW6Vy4JY//nvO5uKnzk2M5LU3PzN/OxoKuxgjT2JFDm BHi/7uKgyj+YOWQ/elKWomwofy7X+1Ba202CdZ2R6aFoUsv6w2hcOPEYnkiZWUaros+I nUNYbdTxQWnJl/jwsdKJc1doIrSb+b1Hzugz/0RpAIzMUF6EWhWWaoYd0yU6OKokPqO6 XQ== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx2nfb6k7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:02 +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 1BE8fX3v156432; Tue, 14 Dec 2021 08:50:01 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2174.outbound.protection.outlook.com [104.47.55.174]) by userp3030.oracle.com with ESMTP id 3cvh3wy7s3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DrhMkbE7rYYbpwWFquUmoxVaeufo7qeJhMbVlw8vx7e4rkFXqMYqaUaYSkTKsGRkXWlE2LPbqg6mNoVDleyyTQElHsfFITZH2cgP4YAzHyBrjAW/44UStXSZxa0PFK10x/yeWpBO/3RzLfA6y02qaJc9fV4h9YyJjJCxzjl2AzKThYMbJDj4wkXh60X1xXfSIKGWv0ZkA+/LS0395w75EMpmwdXTRtIAxXIHCuIxsyR8e4I/pq4gbMCbiVr8iJFqlIDjhKoRkO87/+69gDTGZtboqHRgZOYzPv5ILh9oWWPhVuVfoSewe4pz8EcJH4YWVJB7PSPFqb/sHCjnUPiM4Q== 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=RzbmGf/SXfra7iSD+JVjYvN1fkKYhjCR/73WdObA5to=; b=Ih1qBfq+U85StKfL+ECofWT3ylRCJbwIzvMFnKDxCIhLrGb7E+u4oadbC15IbOFw/eyTEErrH6ps0Nntb89Io7mXAvSdChu+DzAxsAY+MH492sXxaRGbC46iCWpVcHt7vz1GLgHsb9wiy9EQkI13/Dq6Sig9WM8jamUjbvIr7Z0pCSP0UrzZlkw7iqv12JWxmEkZgCmdn3cn0a6E8SUC+0DlzVq5VpWYReswZkplwaqoqXpaB8tsV/ikkkzREjya1d7/JjK+N9KEoHt/RY90V4Kw5VOtuKXG3ZN45Mir6hls2RCxKMBH1yFEUDxYW9swz+M3MDJ9Ok8iv3tU5lFmgw== 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=RzbmGf/SXfra7iSD+JVjYvN1fkKYhjCR/73WdObA5to=; b=AnmtsTfkNIhixN3O208lXxmQ+OySQ/v9Uv8SJ3tOaEQClC0ks3Pon+DOtNGo1HQVni97qdHw22csQp4fkUIgApDJPtdS/WTI0zl7WtRbbL3AB/VdAMShBKOEVOr1YB+8IOSWHNH70ujxmX+SvCHGrgY1O5e9zxTE+jXIKF9Ug/w= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:49:59 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:49:59 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 11/20] xfsprogs: Use xfs_rfsblock_t to count maximum blocks that can be used by BMBT Date: Tue, 14 Dec 2021 14:18:02 +0530 Message-Id: <20211214084811.764481-12-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: 66d1aa4a-4680-4789-434b-08d9bedeb5a4 X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1388; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lzeAZstl0LPYq7c/6lURzoMVUXbuc4s4V5WxHU44f4L5KaMc3/WUPOcTR4ArDDuKD6MMxo6kldFkZKBUcfdVdcf5Jxf3OBw+XF1cHlsVQRWQi3X9N7uTUciGjbapIY4q9qo6AWKz7JGBnk6WTVplScWQ9/PtWfDU8ytuAdVIX47XwOaURKvMCn1Zlbb6C32DXyZW+MZiV9uGFfyjWmbdNBIYrBjcdYUzdsN1D/NeqfH1lB6M0JoFuU1UapmLRY/CLfFkwuFX68vn9PJD/IYrGpr8agulnNNre8MgBlVBIjbgv25+Ab+bG2pWMmjaTbSK7A3yRA6szY3IZRddAKbibuE3IhJYuTSBtIXY2O1QnsRH6sbesNXW8Gdx0+/1bRwlYo3PBE7bvVC2zQnpQpyBuwo5QUeCGLE73fflRTCtZg4M/cc7x/L6nngzH41Cx8bORBRfSKm5fGJRPrznpVpYJnmcF39XyU9Xm1f2Pfs/R2XoHAtjCAC0ETZSJFpy/zq/EIjNnXHlWU9kCXPifpbaV/w1LdUkfFLfKs4mCyZBOqUyWsfYbCwZZvuKQulqvzyLY+Vxw9Wyo5EuZ3m7vXebEG3uoWQ7ESR/wHt5zMCmDQT1am3rn5SgRDD9Ouwcws3K5bUOIdenlFwNU29C6LWzeEnciQTds6G0NAcoZCI5iIFWDNOqoDP+oSxCBz7sx7Xyuaaea1sOXvdy8VOoVCbB3A== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005)(4744005)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4g3ExouD3nqfNuPeexkBRjeLHajNHm6rrUxwPy/VRFm5XdTKF0mdqZOd5xLV1S3smMTlaBRTdX9XFmaQZcLAk6JFxkZhEUHNY2hdh1ldRR0dAG1WSNBb7hB32lHY+DEcLBfPG+NEJzqojtIni4sUiOX9mAPZl/ihiDbBM0LUzbxk5/fCYzmAebJnzIcBT0hfEk3d/dYSMOoC4HF9F7azztK8TYvNEYnfb5NDxtt0N5fLC7EHtUvAEq9quYGzwEw8OBrmj+Q3dk0gFgAx9xRQS7rclAB3luS8vlckOe4adAH9vEKImDMC49aPyOaEtdPWulpqOuIG8bvFFSAgOHHdMGEI4Wo1c32KD6gNTu2+T8k1k4ESt7OOJzX74nlSJKZiC2z94nFrqQ7eoH4LABD43zhMIVwwHSRfJhio5TjbYriUG8i0U1N4wMl6UKpaU9T0SRv9Xu/iIHcSwXdu1qd1zKRIbUvDlUKJ2GigkZr8HhuTgxjkFJ9HMZQqncJkqNMFzrW/L6hDZRcbQw1GsgcqsvIxHtONqlSvH5u11bCX6uBL37Pr4+dKbpRORcLUCJOv5cDpjvQJ6NF0G9jaC7LPB4yjabFDzAC5zg/D3SYhNlqOdvhm5w38wczfOzqjr0zzjABZEF4hCXL50TBcxUZ0INgAPZ8E1x8A5zDcDaAbqZzFFst/YM8gEGfN6fw5vobk7aO3YfjdL1axb2Jr/1bTIjC9WUUkBj7GEFSvJpYQdv1ElFvVjxdpP5+PVcmlOIvxejvCWKLtk4LrFIHhD7jiflkUqZc7Iy5RAX4v3yQX4gMvAfV7jGhSkzBkdbXCRJkEaKSGcERMNqivLiGeRp7tmkv+mBIg/Yo2nzbZs0zic/Va5J71KirPt82Mrs03i1blaxJ+aW3Vy7QMZY6HlYVbhT3VPtKoTbSgNSauJE/xAx/j8oBDDMKXa+gmibVcOzmYW1HqgnSQQLihw96HpMRe2XX+Iqjt/+FdR5Wpfxulism03wUz2AHcmVUdmFFmTuMBvzRrG20lD/dixTvrLJJVsKKZYp6GwBjfJlr85Geio3vkju9hyMoC65Xe0laBPgZNyDydB08x0TmV4xllAGJsl/+4tZmamG9HHek8xeUwMmefAY10nJu29AOyIr01y7YdhnDisSGuvQZb9YoQCRkNtR2f36xZ3DMkxpK95kQMF4Joa+HR87NFPYoon2XSqvj4R79zBaXVuV4w8l9siwioIxsrK5WVh8SRPOSIZtqTC8jWmpQebz+zn5ZCcAnTMv+DOG2aNBlP4pxDy/MRHhZKxxI8viHR2lkmODi4KIDYxfjlo497uFK/w07axJELBnpLdQGmWB+kHHOpx6OJuTms5z6BaqTtyL+VmxeHT5p5QVqCRbH24vx9+M3MnczukvhG/uJM3HeCRC6j51s9Hw/xCDi0JsC72pqAPYDy7R0K2ok1R1oYDcZLGctf437vJOlImu8iR1spGGXRfRr0TLT+zUdiayK4CBLVNuwyVGcyHnJM6JEB6vvF6f6NOZuhXmgJdQKdwdTijLrGqKwpIfKB/3qADZSqTV7xKsoT6RpzhWBnrbdVHp5dSW/GwNI6/7PzhT0y8hlTwuHS/GI+p4N+cvJrw4G/MUi/fno8ibwDFQw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 66d1aa4a-4680-4789-434b-08d9bedeb5a4 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:49:59.2648 (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: vS+/6Cu7rQDKoFpLw81etbhnPqM3/HoUqfpFmAwctqGtCf/lUgBrgkfQVdYtuiw3UJClPnIkrm3kCsEtVQzhWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: izFo4EM7Y4uedZl1YoDXAM5FuUrIennh X-Proofpoint-GUID: izFo4EM7Y4uedZl1YoDXAM5FuUrIennh Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Signed-off-by: Chandan Babu R --- libxfs/xfs_bmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libxfs/xfs_bmap.c b/libxfs/xfs_bmap.c index 04466348..37d9d47c 100644 --- a/libxfs/xfs_bmap.c +++ b/libxfs/xfs_bmap.c @@ -47,8 +47,8 @@ xfs_bmap_compute_maxlevels( int whichfork) /* data or attr fork */ { xfs_extnum_t maxleafents; /* max leaf entries possible */ + xfs_rfsblock_t maxblocks; /* max blocks at this level */ int level; /* btree level */ - uint maxblocks; /* max blocks at this level */ int maxrootrecs; /* max records in root block */ int minleafrecs; /* min records in leaf block */ int minnoderecs; /* min records in node block */ From patchwork Tue Dec 14 08:48:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675679 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 6CB57C433EF for ; Tue, 14 Dec 2021 08:50:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230165AbhLNIuK (ORCPT ); Tue, 14 Dec 2021 03:50:10 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:27360 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNIuJ (ORCPT ); Tue, 14 Dec 2021 03:50:09 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE71w80018096; Tue, 14 Dec 2021 08:50:07 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=yNQ7ebnbClfiH4wfQgmLMpAvdaCM82jys3K7HSsk1Kc=; b=MuJQaLYHCkGo3hdrvDiEs2hXuZ8uJeKe/m424k83XbfnIMWIoTA56vtWy+WpbQoEKOF0 5orYWdPs/pTD4rZ9tNMeEs6osOqKgRR4eHyKad456OhQ/28SAagbS9VB9bM7ZXTIEG63 t+apsJStEm7T6Y28rhzJD1AnPRgsOaT5lhSzrSIul2Tbhwsak9rK3hzB3I/q7UNGdbMU onlyDLGavSMCCXQ3TKPPSGt88fEn56zPywzliq7L6Wn1trXAJJI7fN9AoR0yDKcME+/f Xfl8L63R48OEx3rL+IoLQwvPqvpxOh2uVZoXSflrx2nbl/y2nrh1t8TgaTLzcm9Mkgcu WQ== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx5akau1d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:07 +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 1BE8eSHs074180; Tue, 14 Dec 2021 08:50:06 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2177.outbound.protection.outlook.com [104.47.55.177]) by aserp3020.oracle.com with ESMTP id 3cxmr9yjp8-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iYq8r2LP7cAltILO2GHdcS/B8Z0gMQQfSItvcL7y6ooOughnP/e8wkirR6nyHp+eb55I9SQ9GFUyHcmqf17otjYS2yb6rBQk+a2IFe2HcO3XnQTJvVZu66Dfj+QKUdUJ+KtlJCbH30L91ptiCEhb0v4lh+s9pbiWIMC0CVvrZyCJ95IPuIRCucF404hnACVFmyHZ4D92Zi7t+h8m+lUeQJAzKD75Wav952W0kCN8TFbP6NShn7jew2T14wPPIHKxYc3V5Tjv7n4HOa/aobAVnwFJeZnEgxUscLa1lrPUazWaShWPZDp+GBI9ccPBJAChXu4U+lHJJIrnIY9tsu1Iyg== 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=yNQ7ebnbClfiH4wfQgmLMpAvdaCM82jys3K7HSsk1Kc=; b=MXZq15lgwc4nLRuR/fxTQxrZmvqDGrwSUDiaBsg51hnDqntlfhY2qqR4bL5AzgyGXzIaBl64YkqJBFyIrcxBMzhR/BVI8PJ+57hTWiMFId+sdUME6wWh2Yy6Crw0P8xF88a7R2gZXp4Q2JTWpnTnetHzESRgeZpZUhB+CQcA4sflq+GOCQqcH8pKWmeniQicoOpawXF2grzS704DOMWnltqKuDKxuNXdM1m+A6viu+j8IviYIojWgINWhmY2ACpwISpZGtfeX245p+xx1QUX0E6YH16wm/8xJZJLdxdekMtOXq2YVMe/8+3U4gTcHnbSWQHgCVjvfohWL+K5rbOQUQ== 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=yNQ7ebnbClfiH4wfQgmLMpAvdaCM82jys3K7HSsk1Kc=; b=QDFZf9AQy+b56v2Q87UoZ+zCzYWuGMYz7qEQSZaujXxhr71yrVEdKieqWxUIKnjwiJDUXYB4rHHQNM9s0ccwiZqsGE9fKuCnJ17lEs9SpdVv65tuijm0tShB+PrWY2vpaq5sTYt7/1t2r5Ml1Gs5lgKiOl0WBfa45F/cY0f2TaE= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:50:01 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:50:01 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 12/20] xfsprogs: Introduce macros to represent new maximum extent counts for data/attr forks Date: Tue, 14 Dec 2021 14:18:03 +0530 Message-Id: <20211214084811.764481-13-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: 2da0f7b3-2365-4b33-b75d-08d9bedeb6f8 X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cNLI1vzpfzMq0GfFEiQXs4YWCK/UqC/sRDEBsmYKKpoTg2l3OJQMgFYrkhcsETv/QBkOR90iA8R1OPBb59fl7NMdj9iUXcn+vp0efQXgnxg1l2zjn1i69KBnBVaiIy0RCuRBLO6YCjVixfDKnigHTEUPMtCimnBj6joEpIbvQFnb3gwhJkzGYaMY6G++dNUoQcsvTsex6ecsWBwzpIcfpnI8s4tgoIsYJYY3V8U1BCECTW3NYxWjiudfBSAde+w73lUjEAOYAsU5jAQ3hD3IXl7FymNvMof/QoJgNHabwBAtG4pT8DhxT3iu2PnFokMUmQErF//HgZ8mCp224b8y1bkTk1DkscCS/RflcY8iOm9bwzrOegTWjsja3wWhCnJ/Rx4CvG112O1sBlL0/IFQwzqnCF3FRUSl5R0KddCoK7Bn9FpUtLenCMsKJK1/SqHxyKzmtplQ2xi3tOD0/Urjce2om867n0pDGaMD1yhalDfxn4J8kdiTbChN7GYqHjEt3pDGjtYOSWN0l1i8uD1HACExx9jKVuWdUQAG08hCDqCa/KoBMLZroCblJQ2jYVngwFsoR+45fjXvqM7HsN/4HFfUYuXZU7pQZLEtR021B7K+DyqHraAs6aamp8/IPBw0ys/uNfNBMZ+os2+u0XUUpuX7FosAMK3TLyNJ4kuOHywWy92u+r0AEqnix2Kpi02i1WBYSg6ORSdgIQhb6uzjcA== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: knQfkTKYUhBOd0SS3nRRrIr4jzbNCPqVeNkyuiy+j2MRYmFGA0jCRi8UhAvmoBi5IWssR2uXHNo/taph5f3lT3Se6eX6eZM34Bwsh+5a9P+QRPZHVPmvsZ1rX6o8LjZwI4hpDQ4iXEnDgB7QWBUYwNLLlPpiNsgpTLszyT2QmcG2SyqhBjmU9yEvk0qHpGHHqmGRnsTOLMfjdagm9zMPMPjLpyJFXVc0GlBPeWZ3rWJnOsM/sZRdZUOkISClPdCMIE1lxwYynA85VvFC4dCc96D0m1ml8Gzj0q6MqPMD2QtGCXjuX3Xn3sjWDZuZQ070Om/2Vv09U+oJUJEt03HwBqgBZrF1gCpIa5eyGl8boxV4bF878hinQBb0POFf/oNMn53lhfVxVYowHBh4pZEmipxxqfTkXlYx9XnJlUb1rdBGKmqs9/X+t+p8oRMnBrgIGFEkkytuO2adEnbCPnjV8//lCYg26MotM0EfIOdMWvmL3GIE2FPfC/Wiu+nykKZl+UwI0zNgud6/yNF7aowG+tQqU/PSVP4kjCyd+hkdNO+1clfMk9eYppU6RX05vAi945K7YX5o8bt9r7iItoLC2t1ZTAna30ckipgeUMPtFNZmuMLHF7baWKT5ZSeefpw/4P5P1lzSALgLauR7fCnhnzPDzX8UU2zLZwwIbj2F2CQk2rMdATyG2J8CWs7Tm28OjdX7JhQ5/2JmGgbLKEPFCjESa4NvSA7XbWl9t89dx4pAyuEiZxtdzDlfJ9/wFb74cDiSNNJeRZs0LgwWXy0FuEL5Y6SeAlFCuURTnaGu5C8yn68uiGsfEEBvDSBBJdTbD8N1kIBpSXXzdNVCMSy4ePs+E3HYeI6qXJZximHBwInDLkjgMFz2qV9QHbpIuhxKeduI5NA0EfhcQiRe64cEmezKp573BnPsSON0lESdQPiY2sfGAWecA/E9bJOUc+dUoWJw1wUCC2AcszcIAFsemqWNRraZ69r1UzHrrA3Haldb85QH81FtEufg4QtcIIe+7Sb8GaEGG/v7v8JT73QAah7V3vloVuuUZp8e66RjIJMnNIvsBp7MllFEnQ3iJJoqteorphGLaWPM/7cDz2bERkQ5yewaeZ9K52UwnL7pMtcA774GOo8jCz1NYhKUrse46Ay5WNyNZ44sHdtRlvgvISpN1tYiV3a/6fRyLVQtLUtQy5SImvWvi/0QioZOcN2lGn8umE4Y/VsIHIWmVAQMj7lmu8JpEOqGDeJ/wEA3bv3o7hFL29Tbw5UiCy3dEvFzRukwi4ALUCh0Ak5hnaluxkpWT09psJEsZaM00mijivN+DcKTw8Q720u6SxZwK0/kXfZdYMerjzojqFK8ArOYewnEQOhsDCBES7v1yGFSfLlhdC7WCOf38Zdyxt5MvTNrm6EZ7KuwlPLt1AlojlbZaah8jM+AmwMYKlIfFv0AIsuiAWMvMKUMJOgLNEHSI+TbN1NBLslrewaY/5NKNhhtQLqPDfVPrHs743X9oGSVqidEGfBdSpqUtURW0xoLUVgucpbZOo1cbsb4UJAhtJ0s4C0+hBdVulYk+h/sQqBmGJgcwcRRDAhykoBpYcE41zx1+D/94cxPSnxCfW3APTsEZPJB9eGpT26eoz823dqV/fE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2da0f7b3-2365-4b33-b75d-08d9bedeb6f8 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:50:01.4990 (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: UdrICyUtuejRhXNEK4yQKwoarn3WBP3IjegiuhEiytwu5k4eW18xDHdK8XodCjmzrlhbgp0Khp/YtyhSMffL6w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-GUID: m2vNyyLewfnlPr580qwgRWyhde-2Q166 X-Proofpoint-ORIG-GUID: m2vNyyLewfnlPr580qwgRWyhde-2Q166 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. Signed-off-by: Chandan Babu R --- libxfs/xfs_bmap.c | 9 ++++----- libxfs/xfs_format.h | 8 +++++--- libxfs/xfs_inode_buf.c | 3 ++- libxfs/xfs_inode_fork.c | 2 +- libxfs/xfs_inode_fork.h | 19 +++++++++++++++---- repair/dinode.c | 6 ++++-- 6 files changed, 31 insertions(+), 16 deletions(-) diff --git a/libxfs/xfs_bmap.c b/libxfs/xfs_bmap.c index 37d9d47c..9dd24678 100644 --- a/libxfs/xfs_bmap.c +++ b/libxfs/xfs_bmap.c @@ -55,10 +55,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 @@ -68,7 +66,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_sb_version_hasnrext64(&mp->m_sb), + whichfork); if (whichfork == XFS_DATA_FORK) sz = XFS_BMDR_SPACE_CALC(MINDBTPTRS); else diff --git a/libxfs/xfs_format.h b/libxfs/xfs_format.h index 58186f2b..bdd13ec9 100644 --- a/libxfs/xfs_format.h +++ b/libxfs/xfs_format.h @@ -1061,9 +1061,11 @@ enum xfs_dinode_fmt { /* * 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 */ +#define MAXEXTLEN ((xfs_extlen_t)0x1fffff) /* 21 bits */ +#define XFS_MAX_EXTCNT_DATA_FORK ((xfs_extnum_t)0xffffffffffff) /* Unsigned 48-bits */ +#define XFS_MAX_EXTCNT_ATTR_FORK ((xfs_aextnum_t)0xffffffff) /* Unsigned 32-bits */ +#define XFS_MAX_EXTCNT_DATA_FORK_OLD ((xfs_extnum_t)0x7fffffff) /* Signed 32-bits */ +#define XFS_MAX_EXTCNT_ATTR_FORK_OLD ((xfs_aextnum_t)0x7fff) /* Signed 16-bits */ /* * Inode minimum and maximum sizes. diff --git a/libxfs/xfs_inode_buf.c b/libxfs/xfs_inode_buf.c index 06b6c09f..9bddf790 100644 --- a/libxfs/xfs_inode_buf.c +++ b/libxfs/xfs_inode_buf.c @@ -358,7 +358,8 @@ 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_nrext64(dip), + whichfork); if (di_nextents > max_extents) return __this_address; break; diff --git a/libxfs/xfs_inode_fork.c b/libxfs/xfs_inode_fork.c index 627eb23b..17265401 100644 --- a/libxfs/xfs_inode_fork.c +++ b/libxfs/xfs_inode_fork.c @@ -743,7 +743,7 @@ 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_nrext64(ip), whichfork); if (XFS_TEST_ERROR(false, ip->i_mount, XFS_ERRTAG_REDUCE_MAX_IEXTENTS)) max_exts = 10; diff --git a/libxfs/xfs_inode_fork.h b/libxfs/xfs_inode_fork.h index b34b5c44..7d5f0015 100644 --- a/libxfs/xfs_inode_fork.h +++ b/libxfs/xfs_inode_fork.h @@ -133,12 +133,23 @@ 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_big_extcnt, + int whichfork) { - if (whichfork == XFS_DATA_FORK || whichfork == XFS_COW_FORK) - return MAXEXTNUM; + switch (whichfork) { + case XFS_DATA_FORK: + case XFS_COW_FORK: + return has_big_extcnt ? XFS_MAX_EXTCNT_DATA_FORK + : XFS_MAX_EXTCNT_DATA_FORK_OLD; + + case XFS_ATTR_FORK: + return has_big_extcnt ? XFS_MAX_EXTCNT_ATTR_FORK + : XFS_MAX_EXTCNT_ATTR_FORK_OLD; - return MAXAEXTNUM; + default: + ASSERT(0); + return 0; + } } static inline xfs_extnum_t diff --git a/repair/dinode.c b/repair/dinode.c index 8b6cd60d..0df84e48 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -1804,7 +1804,8 @@ _("bad nblocks %llu for inode %" PRIu64 ", would reset to %" PRIu64 "\n"), } } - if (nextents > xfs_iext_max_nextents(XFS_DATA_FORK)) { + if (nextents > xfs_iext_max_nextents(xfs_dinode_has_nrext64(dino), + XFS_DATA_FORK)) { do_warn( _("too many data fork extents (%" PRIu64 ") in inode %" PRIu64 "\n"), nextents, lino); @@ -1826,7 +1827,8 @@ _("bad nextents %lu for inode %" PRIu64 ", would reset to %" PRIu64 "\n"), } } - if (anextents > xfs_iext_max_nextents(XFS_ATTR_FORK)) { + if (anextents > xfs_iext_max_nextents(xfs_dinode_has_nrext64(dino), + XFS_ATTR_FORK)) { do_warn( _("too many attr fork extents (%" PRIu64 ") in inode %" PRIu64 "\n"), anextents, lino); From patchwork Tue Dec 14 08:48:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675683 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 9F108C433EF for ; Tue, 14 Dec 2021 08:50:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230219AbhLNIuN (ORCPT ); Tue, 14 Dec 2021 03:50:13 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:62062 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNIuM (ORCPT ); Tue, 14 Dec 2021 03:50:12 -0500 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 1BE7mv76005512; Tue, 14 Dec 2021 08:50:08 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=NuY4BFF036boyOImtMYIuMRaRZSoCiHJ1JNEpc0oahM=; b=gvYEblRhF7gpc06qLMuxaS1wNr8dSecxsa2hCXf8l5tKAPbSyqsoCGBjpPnN0H0GaB2F tt9J8FBPU3EXNIavMjs+EQK6QmAVtYVYZLXQocPUGr4XxMUYvz9NTrMSgBeydODCkB9W 1owtAr+ObTgpyfVS1t7bJhyHXXxLvJvuLpJHcdG7tDJQtAZHPlZbQuu3A4pyWdPMjBoC 6Q350iFWENPJQXzL3tXEl7PGzDMSkiK8Ux7k9iwpG3TLROLa86bMh3FN1YXqajnLdy8X hlU0NVT1k2oQUCSUxSaemUYrPa4pbtXLG9+4M8kkORRWCb1LF3xaP8/OmQZ+uoInJrS4 yw== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx56u2sxa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:07 +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 1BE8eSHt074180; Tue, 14 Dec 2021 08:50:06 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2177.outbound.protection.outlook.com [104.47.55.177]) by aserp3020.oracle.com with ESMTP id 3cxmr9yjp8-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VZtwMH/dSmLYUPieOEkLZlb1rn37RqZVrZ+5MJuh4LprNsCu43fjl+UI73QB8oRVwtlJVLWWDvLfoM/Q5Cci8XUTi7JHKMj/ZU/V40cbQNb0wcom+q7dXuHyXXS/+O8ml77gBh/lS1tzf0yO/pdMFyLbbSBbdvv/Lmw9JF9lvyRDokKoMzvC4Y3R+5X9xlSitbrQXmX7n0g569j7TZEelwRHhUhQ3pVuerQjpcBQYXQcAIjdZIIR8tXDXm8GGQJLdRSPlEPCSTh8gBZUoYoPaJTwnuhm2PNco2ytp9gBUXmKRG9FLvKjYgszEG96M8q2V6IwErG+oEfBBERaE6mmsQ== 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=NuY4BFF036boyOImtMYIuMRaRZSoCiHJ1JNEpc0oahM=; b=Lb7Q2HYDdF3897B5/zn6TjO0OB/wO8EPvQMb2TFJSwzTjo8+xLMIzD0l8pdTfU+BMwNVW59YpR+kZSHuVl4JM7PywHQAGjiR7YPOFlsiT5GhP9PGt0nFPSNCGmorZ6HD3cCtk4Cxth/CFjTiMHp2X6TqSIulGYrC+Kw2cPeF4VoVbcUyOEIFdEqoTG466xTw+G8FDLuc946DCc1XO1YQOPef9Kybxp0LzdWNLISkZk3gQ9lq2of2yoe7ZtNC2GIvakN6mWtoEgFpHPWy23WIUWBIXC/VMx7iDE+O2MbTIxff6iBdw5GWB1HmMBlY5v6+5zYDajuOfgt4z8OskHn8wQ== 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=NuY4BFF036boyOImtMYIuMRaRZSoCiHJ1JNEpc0oahM=; b=dt2MAWVXi0FB4QNatuJQdJXQYiU3+5rCxYUlXMnP/owDi6lzJ/n1blAgtvcAX/ompR6Bs2baw7XDvVmju00fydUe5W7kBNi48NxioaGGrmJnYAx91a1lrGkIlogjqEfQTzCd0pDrP0I6HY6H9T4QctEAWSt3kxR4v5j84MdW2JE= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:50:04 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:50:04 +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 V4 13/20] xfsprogs: Introduce per-inode 64-bit extent counters Date: Tue, 14 Dec 2021 14:18:04 +0530 Message-Id: <20211214084811.764481-14-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: 18c37830-bffa-47dd-ca1a-08d9bedeb8a1 X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2276; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qNk6CHKPSmZmbFvpIfxYiBIwBj/8qpJT09Csjx5Lzm26L2nIXg5rqVbEZkmYk2kswX5o44bKT1958XgNISLGLap+elU6n7wPgTWVchBf4Hf6xSsyKA4u2VTvYFs9VIRrUhwxTIQEYiUPff1stOyVWd0W0apLbcsLEhj9XimR5puSrrJWqGATk4fjSwTKQyxhvGjI8ZLyeAfRCF8DXKNDRY/FJCFZZl6aGy2hrGOhoSQxqgA70JsS5+Tu3CLmU8FzYABxOxjFTN7I4Yq0rCx/liHq/vOu1TbQMthS4ShBptLWmXv8nFcbgdZftr7Qtec8ttk+NRubJoMTXiA4pPg4Hg49C4FZF5DJu8+OsNjv1PRkovD2oOV7p9XfR0D8NuzZ7MLOYxILJdd0bvqIxs9E9Ym8H5jT9cZ7ss8O0q+c3cUJABgdVCX0usvmscx4TPWPzicu6goK3a59X66QtdZWretxZaet63pBUP8VJBlkIKgeTTRhAClynW4T0ZtbkbH22TGRUFvJpYZPlDgYmUiNL3vNjOV+CNZ6KrhZg+LJqc0TnoZCq+JcFGJ2uoI/pTJua6gGKpJNvcrUPAGe99Y06MtBLEVKSYhLuGhWh0rAIJ2bfw6G9j++cPXBnlHL8xo/QuWzqcOdw3WkI8jYJvQsscSF+cQdXCcEorDZpAFPCzSp3lFx/RwSS0c5GbxWqh7B 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:(366004)(6506007)(54906003)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(30864003)(26005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nwmpaS+8JE95npmTwFXiWS1BoMCV2fZlbzVoAEiLpMWNTo5/1fzO3PcvW3TkXAN6dO6PqX39rC5LTp0yi3RIoyWd/0DfZfFxeRetCbj/xo+hQHuoNyD814iovb/TslDo/lMGRUVcoc4e9IqVrq1ITEeG2bLirqHWS4Kda8kinZ42cOc0VKkA853Nul21n+1sfnoPNTs69QUiN61LCO1PWh9zztBy+Rgw0Jl9tnGT+WO2sgizCDtAGl0v5+bOYbXfUJnPekJkef90n+0xRD0Gp7WkCd5HvEtLvRYiXRUwSaGZtydd6kddVgi7ocdjxmgmp1pzB99QeI/DQzVvdDOkt//YvkRzqEAomgKTDdl1hI4Dz1mDazt64Cg/hPvmhHBRFKF7ySE/UoHD4uRsCej18lyrLxgL2k8dsU//g8/1zuq76NrkvtjbNOobRyrqK4omUWV/vySUsRmX1WcoiqMHySO10EKOP5o7BenMiv9EaZdimvlEYYUli/lFk8K4y9reA1uh+7UoXjfA2SY1+t278TlbkJ/CrJaAMZQQIuh53+oyw2YhqG0WkBCzJXXO+jCIhQYb9cEnztVfX2832CX2kY+8GUPrWN5O8rdJNA5UhWAdB+7QEmzahmpuVBuWPwBLBjXzaU9nrlWVUrt+y8RJ89EKtA3IURFTUGoL6Tx4W0mYS+D2opdpV9PDTtUB+E3I7nTHO+5DbnEl+Z0W2APUyBg9aQEoLv4E17a6U89CBaG6kJGtqI49/Yr5+WDZyVt47bwWh+llzIjIEdG9vOd2iVjJZeCwkfL1VRRi3tN2/6Lcj9gwg86FypQlJ+b+yYMVIZ0Ov889svqjq+OQFwxSXl6QE5Fbr+DLqi0v1jiAl7OCYsTDOeA3Ql2U4HZIFrp6bRMEKG0/DddbHZ8PJ1aZrebVYyAXsztUBkjmT0v8blPERWGOGXqxm1YtA6q6GnTyOO8nhBOeRdu4xVa9T2k9spAEKL7F86dgSdlhH0Us27g1801JtW8Z+Rq9D4kyTXXVOX1X0GZpFXkZvzkh8Jc9+PzmvsoyH+UE0qXgcu8DnbfDsap21aao/L442sg3ePJPuJTj8hKShaXHenmuy+V2+YwQbNLGDUY7+db59qxDbHW8blata+Ia/8R04xB3zayzTvy9Hx+vo8bov+CbVqSmi8Ut+oxOhC9qJUKa8ONdoE8U3+Rzx02J0/c/+MrDnISL3y87+ykoI+kwAACykW2fLs6/HRO/sr2Of/XNq5ras0xC5uubRR0zD/caoqWvUA70d/PHT1SEPlnMDVvs2ONczOkdvjQDuEHP3ujhMks66byfOtlAL70kVz13+c8ZrP+wcYJaHftOygJt6oP1xTOesdnUROSQP+xsD7Z76agJuucyanyDZVa1wMy0drQB353T14otrCzIq8Fb2+249zLcsdOSOZQp7msnzk4qN4BicLCeoxXAYxRWqMzPU7YtMtQTfcc2N+R/tlf/OInB1FUJiZCueknsLrh/HaJDENNXbND01/P12QbN7KlvkMd3dBnDj7Vm9Htpo6ikkx6pj2wCdxYNGW71MXdjaxMkpULg3QkommO29eHBwF7EQrofNOs5N7+8p7BH5LRnqrzvD24MnPdMRKU2AtNKDMkaRbzH7NQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18c37830-bffa-47dd-ca1a-08d9bedeb8a1 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:50:04.4351 (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: e5Fe9KCcF5mijSvFEB99GGtnmms0SN5uWgl7VDTR/O2DTHm5GF34iiqH79LeN1IfFSRu6b7ufJXlu5r6HBAedg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: uSenwqxnhWY69XVxQgtILqKtlR1oMEKD X-Proofpoint-GUID: uSenwqxnhWY69XVxQgtILqKtlR1oMEKD 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. Signed-off-by: Chandan Babu R Suggested-by: Dave Chinner --- db/field.c | 4 - db/field.h | 2 - db/inode.c | 170 ++++++++++++++++++++++++++++++++++++++- libxfs/xfs_format.h | 22 ++++- libxfs/xfs_inode_buf.c | 27 ++++++- libxfs/xfs_inode_fork.h | 10 ++- libxfs/xfs_log_format.h | 22 ++++- logprint/log_misc.c | 20 ++++- logprint/log_print_all.c | 18 ++++- repair/dinode.c | 18 ++++- 10 files changed, 279 insertions(+), 34 deletions(-) diff --git a/db/field.c b/db/field.c index 51268938..1e274ffc 100644 --- a/db/field.c +++ b/db/field.c @@ -25,8 +25,6 @@ #include "symlink.h" const ftattr_t ftattrtab[] = { - { FLDT_AEXTNUM, "aextnum", fp_num, "%d", SI(bitsz(xfs_aextnum_t)), - FTARG_SIGNED, NULL, NULL }, { FLDT_AGBLOCK, "agblock", fp_num, "%u", SI(bitsz(xfs_agblock_t)), FTARG_DONULL, fa_agblock, NULL }, { FLDT_AGBLOCKNZ, "agblocknz", fp_num, "%u", SI(bitsz(xfs_agblock_t)), @@ -300,8 +298,6 @@ const ftattr_t ftattrtab[] = { FTARG_DONULL, fa_drtbno, NULL }, { FLDT_EXTLEN, "extlen", fp_num, "%u", SI(bitsz(xfs_extlen_t)), 0, NULL, NULL }, - { FLDT_EXTNUM, "extnum", fp_num, "%d", SI(bitsz(xfs_extnum_t)), - FTARG_SIGNED, NULL, NULL }, { FLDT_FSIZE, "fsize", fp_num, "%lld", SI(bitsz(xfs_fsize_t)), FTARG_SIGNED, NULL, NULL }, { FLDT_INO, "ino", fp_num, "%llu", SI(bitsz(xfs_ino_t)), FTARG_DONULL, diff --git a/db/field.h b/db/field.h index 387c189e..614fd0ab 100644 --- a/db/field.h +++ b/db/field.h @@ -5,7 +5,6 @@ */ typedef enum fldt { - FLDT_AEXTNUM, FLDT_AGBLOCK, FLDT_AGBLOCKNZ, FLDT_AGF, @@ -143,7 +142,6 @@ typedef enum fldt { FLDT_DRFSBNO, FLDT_DRTBNO, FLDT_EXTLEN, - FLDT_EXTNUM, FLDT_FSIZE, FLDT_INO, FLDT_INOBT, diff --git a/db/inode.c b/db/inode.c index b1f92d36..226797be 100644 --- a/db/inode.c +++ b/db/inode.c @@ -27,6 +27,14 @@ static int inode_core_nlinkv2_count(void *obj, int startoff); static int inode_core_onlink_count(void *obj, int startoff); static int inode_core_projid_count(void *obj, int startoff); static int inode_core_nlinkv1_count(void *obj, int startoff); +static int inode_core_big_dextcnt_count(void *obj, int startoff); +static int inode_core_v3_pad_count(void *obj, int startoff); +static int inode_core_v2_pad_count(void *obj, int startoff); +static int inode_core_flushiter_count(void *obj, int startoff); +static int inode_core_big_aextcnt_count(void *obj, int startoff); +static int inode_core_nrext64_pad_count(void *obj, int startoff); +static int inode_core_nextents_count(void *obj, int startoff); +static int inode_core_anextents_count(void *obj, int startoff); static int inode_f(int argc, char **argv); static int inode_u_offset(void *obj, int startoff, int idx); static int inode_u_bmbt_count(void *obj, int startoff); @@ -90,18 +98,30 @@ const field_t inode_core_flds[] = { inode_core_projid_count, FLD_COUNT, TYP_NONE }, { "projid_hi", FLDT_UINT16D, OI(COFF(projid_hi)), inode_core_projid_count, FLD_COUNT, TYP_NONE }, - { "pad", FLDT_UINT8X, OI(OFF(pad)), CI(6), FLD_ARRAY|FLD_SKIPALL, TYP_NONE }, + { "big_dextcnt", FLDT_UINT64D, OI(COFF(big_dextcnt)), + inode_core_big_dextcnt_count, FLD_COUNT, TYP_NONE }, + { "v3_pad", FLDT_UINT8X, OI(OFF(v3_pad)), + inode_core_v3_pad_count, FLD_ARRAY|FLD_COUNT|FLD_SKIPALL, TYP_NONE }, + { "v2_pad", FLDT_UINT8X, OI(OFF(v2_pad)), + inode_core_v2_pad_count, FLD_ARRAY|FLD_COUNT|FLD_SKIPALL, TYP_NONE }, { "uid", FLDT_UINT32D, OI(COFF(uid)), C1, 0, TYP_NONE }, { "gid", FLDT_UINT32D, OI(COFF(gid)), C1, 0, TYP_NONE }, - { "flushiter", FLDT_UINT16D, OI(COFF(flushiter)), C1, 0, TYP_NONE }, + { "flushiter", FLDT_UINT16D, OI(COFF(flushiter)), + inode_core_flushiter_count, FLD_COUNT, TYP_NONE }, { "atime", FLDT_TIMESTAMP, OI(COFF(atime)), C1, 0, TYP_NONE }, { "mtime", FLDT_TIMESTAMP, OI(COFF(mtime)), C1, 0, TYP_NONE }, { "ctime", FLDT_TIMESTAMP, OI(COFF(ctime)), C1, 0, TYP_NONE }, { "size", FLDT_FSIZE, OI(COFF(size)), C1, 0, TYP_NONE }, { "nblocks", FLDT_DRFSBNO, OI(COFF(nblocks)), C1, 0, TYP_NONE }, { "extsize", FLDT_EXTLEN, OI(COFF(extsize)), C1, 0, TYP_NONE }, - { "nextents", FLDT_EXTNUM, OI(COFF(nextents)), C1, 0, TYP_NONE }, - { "naextents", FLDT_AEXTNUM, OI(COFF(anextents)), C1, 0, TYP_NONE }, + { "big_aextcnt", FLDT_UINT32D, OI(COFF(big_aextcnt)), + inode_core_big_aextcnt_count, FLD_COUNT, TYP_NONE }, + { "nrext64_pad", FLDT_UINT16D, OI(COFF(nrext64_pad)), + inode_core_nrext64_pad_count, FLD_COUNT, TYP_NONE }, + { "nextents", FLDT_UINT32D, OI(COFF(nextents)), + inode_core_nextents_count, FLD_COUNT, TYP_NONE }, + { "naextents", FLDT_UINT16D, OI(COFF(anextents)), + inode_core_anextents_count, FLD_COUNT, TYP_NONE }, { "forkoff", FLDT_UINT8D, OI(COFF(forkoff)), C1, 0, TYP_NONE }, { "aformat", FLDT_DINODE_FMT, OI(COFF(aformat)), C1, 0, TYP_NONE }, { "dmevmask", FLDT_UINT32X, OI(COFF(dmevmask)), C1, 0, TYP_NONE }, @@ -403,6 +423,148 @@ inode_core_projid_count( return dic->di_version >= 2; } +static int +inode_core_big_dextcnt_count( + void *obj, + int startoff) +{ + struct xfs_dinode *dic; + + ASSERT(startoff == 0); + ASSERT(obj == iocur_top->data); + dic = obj; + + if (dic->di_version == 3 && + (be64_to_cpu(dic->di_flags2) & XFS_DIFLAG2_NREXT64)) + return 1; + else + return 0; +} + +static int +inode_core_v3_pad_count( + void *obj, + int startoff) +{ + struct xfs_dinode *dic; + + ASSERT(startoff == 0); + ASSERT(obj == iocur_top->data); + dic = obj; + + if ((dic->di_version == 3) + && !(be64_to_cpu(dic->di_flags2) & XFS_DIFLAG2_NREXT64)) + return 8; + else + return 0; +} + +static int +inode_core_v2_pad_count( + void *obj, + int startoff) +{ + struct xfs_dinode *dic; + + ASSERT(startoff == 0); + ASSERT(obj == iocur_top->data); + dic = obj; + + if (dic->di_version == 3) + return 0; + else + return 6; +} + +static int +inode_core_flushiter_count( + void *obj, + int startoff) +{ + struct xfs_dinode *dic; + + ASSERT(startoff == 0); + ASSERT(obj == iocur_top->data); + dic = obj; + + if (dic->di_version == 3) + return 0; + else + return 1; +} + +static int +inode_core_big_aextcnt_count( + void *obj, + int startoff) +{ + struct xfs_dinode *dic; + + ASSERT(startoff == 0); + ASSERT(obj == iocur_top->data); + dic = obj; + + if (dic->di_version == 3 && + (be64_to_cpu(dic->di_flags2) & XFS_DIFLAG2_NREXT64)) + return 1; + else + return 0; +} + +static int +inode_core_nrext64_pad_count( + void *obj, + int startoff) +{ + struct xfs_dinode *dic; + + ASSERT(startoff == 0); + ASSERT(obj == iocur_top->data); + dic = obj; + + if (dic->di_version == 3 && + (be64_to_cpu(dic->di_flags2) & XFS_DIFLAG2_NREXT64)) + return 1; + else + return 0; +} + +static int +inode_core_nextents_count( + void *obj, + int startoff) +{ + struct xfs_dinode *dic; + + ASSERT(startoff == 0); + ASSERT(obj == iocur_top->data); + dic = obj; + + if ((dic->di_version == 3) + && (be64_to_cpu(dic->di_flags2) & XFS_DIFLAG2_NREXT64)) + return 0; + else + return 1; +} + +static int +inode_core_anextents_count( + void *obj, + int startoff) +{ + struct xfs_dinode *dic; + + ASSERT(startoff == 0); + ASSERT(obj == iocur_top->data); + dic = obj; + + if ((dic->di_version == 3) + && (be64_to_cpu(dic->di_flags2) & XFS_DIFLAG2_NREXT64)) + return 0; + else + return 1; +} + static int inode_f( int argc, diff --git a/libxfs/xfs_format.h b/libxfs/xfs_format.h index bdd13ec9..d4c962fc 100644 --- a/libxfs/xfs_format.h +++ b/libxfs/xfs_format.h @@ -980,16 +980,30 @@ typedef 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 { + __be64 di_big_dextcnt; /* NREXT64 data extents */ + __u8 di_v3_pad[8]; /* !NREXT64 V3 inode zeroed space */ + struct { + __u8 di_v2_pad[6]; /* V2 inode zeroed space */ + __be16 di_flushiter; /* V2 inode incremented on flush */ + }; + }; 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 { + struct { + __be32 di_big_aextcnt; /* NREXT64 attr extents */ + __be16 di_nrext64_pad; /* NREXT64 unused, zero */ + } __packed; + struct { + __be32 di_nextents; /* !NREXT64 data extents */ + __be16 di_anextents; /* !NREXT64 attr extents */ + } __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/libxfs/xfs_inode_buf.c b/libxfs/xfs_inode_buf.c index 9bddf790..5c6de73b 100644 --- a/libxfs/xfs_inode_buf.c +++ b/libxfs/xfs_inode_buf.c @@ -276,6 +276,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_nrext64(ip)) { + to->di_big_dextcnt = cpu_to_be64(xfs_ifork_nextents(&ip->i_df)); + to->di_big_aextcnt = 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, @@ -293,7 +312,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); @@ -304,8 +322,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); @@ -320,11 +336,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; + memset(to->di_v3_pad, 0, sizeof(to->di_v3_pad)); } 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 diff --git a/libxfs/xfs_inode_fork.h b/libxfs/xfs_inode_fork.h index 7d5f0015..03036a2c 100644 --- a/libxfs/xfs_inode_fork.h +++ b/libxfs/xfs_inode_fork.h @@ -156,14 +156,20 @@ static inline xfs_extnum_t xfs_dfork_data_extents( struct xfs_dinode *dip) { - return be32_to_cpu(dip->di_nextents); + if (xfs_dinode_has_nrext64(dip)) + return be64_to_cpu(dip->di_big_dextcnt); + else + 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); + if (xfs_dinode_has_nrext64(dip)) + return be32_to_cpu(dip->di_big_aextcnt); + else + return be16_to_cpu(dip->di_anextents); } static inline xfs_extnum_t diff --git a/libxfs/xfs_log_format.h b/libxfs/xfs_log_format.h index c13608aa..8f8c9869 100644 --- a/libxfs/xfs_log_format.h +++ b/libxfs/xfs_log_format.h @@ -388,16 +388,30 @@ 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 { + uint64_t di_big_dextcnt; /* NREXT64 data extents */ + uint8_t di_v3_pad[8]; /* !NREXT64 V3 inode zeroed space */ + 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 { + struct { + uint32_t di_big_aextcnt; /* NREXT64 attr extents */ + uint16_t di_nrext64_pad; /* NREXT64 unused, zero */ + } __packed; + struct { + uint32_t di_nextents; /* !NREXT64 data extents */ + uint16_t di_anextents; /* !NREXT64 attr extents */ + } __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/logprint/log_misc.c b/logprint/log_misc.c index 35e926a3..721c2eb5 100644 --- a/logprint/log_misc.c +++ b/logprint/log_misc.c @@ -440,6 +440,8 @@ static void xlog_print_trans_inode_core( struct xfs_log_dinode *ip) { + xfs_extnum_t nextents; + printf(_("INODE CORE\n")); printf(_("magic 0x%hx mode 0%ho version %d format %d\n"), ip->di_magic, ip->di_mode, (int)ip->di_version, @@ -450,11 +452,21 @@ xlog_print_trans_inode_core( xlog_extract_dinode_ts(ip->di_atime), xlog_extract_dinode_ts(ip->di_mtime), xlog_extract_dinode_ts(ip->di_ctime)); - printf(_("size 0x%llx nblocks 0x%llx extsize 0x%x nextents 0x%x\n"), + + if (ip->di_flags2 & XFS_DIFLAG2_NREXT64) + nextents = ip->di_big_dextcnt; + else + nextents = ip->di_nextents; + printf(_("size 0x%llx nblocks 0x%llx extsize 0x%x nextents 0x%lx\n"), (unsigned long long)ip->di_size, (unsigned long long)ip->di_nblocks, - ip->di_extsize, ip->di_nextents); - printf(_("naextents 0x%x forkoff %d dmevmask 0x%x dmstate 0x%hx\n"), - ip->di_anextents, (int)ip->di_forkoff, ip->di_dmevmask, + ip->di_extsize, nextents); + + if (ip->di_flags2 & XFS_DIFLAG2_NREXT64) + nextents = ip->di_big_aextcnt; + else + nextents = ip->di_anextents; + printf(_("naextents 0x%lx forkoff %d dmevmask 0x%x dmstate 0x%hx\n"), + nextents, (int)ip->di_forkoff, ip->di_dmevmask, ip->di_dmstate); printf(_("flags 0x%x gen 0x%x\n"), ip->di_flags, ip->di_gen); diff --git a/logprint/log_print_all.c b/logprint/log_print_all.c index c9c453f6..5e387f38 100644 --- a/logprint/log_print_all.c +++ b/logprint/log_print_all.c @@ -240,7 +240,10 @@ STATIC void xlog_recover_print_inode_core( struct xfs_log_dinode *di) { - printf(_(" CORE inode:\n")); + xfs_extnum_t nextents; + xfs_aextnum_t anextents; + + printf(_(" CORE inode:\n")); if (!print_inode) return; printf(_(" magic:%c%c mode:0x%x ver:%d format:%d\n"), @@ -254,10 +257,19 @@ xlog_recover_print_inode_core( xlog_extract_dinode_ts(di->di_mtime), xlog_extract_dinode_ts(di->di_ctime)); printf(_(" flushiter:%d\n"), di->di_flushiter); + + if (di->di_flags2 & XFS_DIFLAG2_NREXT64) { + nextents = di->di_big_dextcnt; + anextents = di->di_big_aextcnt; + } else { + nextents = di->di_nextents; + anextents = di->di_anextents; + } + printf(_(" size:0x%llx nblks:0x%llx exsize:%d " - "nextents:%d anextents:%d\n"), (unsigned long long) + "nextents:%lu anextents:%u\n"), (unsigned long long) di->di_size, (unsigned long long)di->di_nblocks, - di->di_extsize, di->di_nextents, (int)di->di_anextents); + di->di_extsize, nextents, anextents); printf(_(" forkoff:%d dmevmask:0x%x dmstate:%d flags:0x%x " "gen:%u\n"), (int)di->di_forkoff, di->di_dmevmask, (int)di->di_dmstate, diff --git a/repair/dinode.c b/repair/dinode.c index 0df84e48..3be2e1d5 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -71,7 +71,12 @@ _("would have cleared inode %" PRIu64 " attributes\n"), ino_num); if (xfs_dfork_attr_extents(dino) != 0) { if (no_modify) return(1); - dino->di_anextents = cpu_to_be16(0); + + if (xfs_dinode_has_nrext64(dino)) + dino->di_big_aextcnt = 0; + else + dino->di_anextents = 0; + } if (dino->di_aformat != XFS_DINODE_FMT_EXTENTS) { @@ -1818,7 +1823,10 @@ _("too many data fork extents (%" PRIu64 ") in inode %" PRIu64 "\n"), do_warn( _("correcting nextents for inode %" PRIu64 ", was %lu - counted %" PRIu64 "\n"), lino, dnextents, nextents); - dino->di_nextents = cpu_to_be32(nextents); + if (xfs_dinode_has_nrext64(dino)) + dino->di_big_dextcnt = cpu_to_be64(nextents); + else + dino->di_nextents = cpu_to_be32(nextents); *dirty = 1; } else { do_warn( @@ -1841,7 +1849,11 @@ _("too many attr fork extents (%" PRIu64 ") in inode %" PRIu64 "\n"), do_warn( _("correcting anextents for inode %" PRIu64 ", was %lu - counted %" PRIu64 "\n"), lino, dnextents, anextents); - dino->di_anextents = cpu_to_be16(anextents); + if (xfs_dinode_has_nrext64(dino)) + dino->di_big_aextcnt = cpu_to_be32(anextents); + else + dino->di_anextents = cpu_to_be16(anextents); + *dirty = 1; } else { do_warn( From patchwork Tue Dec 14 08:48:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675681 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 D2E25C433FE for ; Tue, 14 Dec 2021 08:50:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231697AbhLNIuM (ORCPT ); Tue, 14 Dec 2021 03:50:12 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:30260 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNIuL (ORCPT ); Tue, 14 Dec 2021 03:50:11 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE71w82018096; Tue, 14 Dec 2021 08:50:09 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=Jy5wAhLoDqtrf7O1e21eU+SvgDE1LGWnwnCSTcu1Fi4=; b=KTWg2YTOJBqP19iwYb3lhCqhrHnfnvi/cSW5MpKyvUHz4uM1EUlmdWJ/TWwcHO1az3ML 93kbgMf5wAhMCbj2xQSyOvpsFzZkeuZ+Z8SI8UVQc5tjsjVH7/cDt3cj79oufJQ3EiJn hiubOkkRyGkDrxG3EUIXVoRjOr2c5U3/0HRHjoKwcBn9gGzrdURjsmJwYDESB8FP46Em kOB0LNNgDqDoNU1y1Fbkb/A5PvEkD5WSJIJimOUO4srn/3RQZ5Q/RT/zosR8PTwNQAaa TLA1qn8V2GPzwF9Pd12B64+KeWlVcyJRHVMGb7R1a2t1Ic/e0ZviPKGqTwCpG3YJExmQ ig== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx5akau1j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:09 +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 1BE8fnp1104427; Tue, 14 Dec 2021 08:50:08 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168]) by aserp3030.oracle.com with ESMTP id 3cvj1djtbn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ft6rfJH6pWB0l/fSdgYX2v+wAI1dKtt9FXvgrX/PknmU0Q+fVSrn8lL7QRucR/fCluG/w+Km5AcIi5fwTv2iRW2DayNIIfc5ueV5kBBMFudh0Y1Stfdp9QJndIngDVsDKgNp1ViqFGAS/iyarXCANgXj9kk7dzoDE9cen7MtDwcMgK4Wsb/rjcKb4yTb49jXiLhUgQV5alByStkn/aYCMyhTOqNkzNM3cnAioSZryzxZBjrCCXo8Mg5a6cxp3lxZfqFmzr24EivN3cCMS5U6SYFyOF8w6rracu0A1XYuSEr4kB+3SfqFSuHr7I8jzcGlQ2iNbfx1meAsKUVZB0A2vQ== 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=Jy5wAhLoDqtrf7O1e21eU+SvgDE1LGWnwnCSTcu1Fi4=; b=S6EOt14Ke7lLPiVbvkBb16D8BLJbmG5B9Wsn2v5Nmwq+rZMvP+INUE11Au/JaN8ZIskN5ykHT/LeBfh+NB2PJkQGog9rG/IIfvJZCgKC5Iv+4hhZClCAWnmmONZhPyn32vMLKakkRX+irN3eC//LhM38Mke+zxLrkXjOcTupRIp+6E/vYA6VAPkyTSGXRYi6eGOgrDtgKdvWZYTNCajiat9RSXV41mr4yPxEbeLxaKdCNZrGq+/sJ/yEpRVb+AlKICt7/Lk/iFMunYeRjye17+Za0ShMBYbMWIyXQLOMg2babd6v6l1u2cbOBVmLBp3iliUGDk0Ym7M/JIukvOQDUA== 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=Jy5wAhLoDqtrf7O1e21eU+SvgDE1LGWnwnCSTcu1Fi4=; b=J2uQ4EZD2/OyDQ37Z9rMD2WH7Q6eRYWh4gCNITRRzbNPofk7E1hTvTqirKlMAmMc/U6AENOqHx/j/Otns6K1mnLzdXZEl3REkXeErL87NJTUOlPd6UToj+ICXAT1nbaHTzRIF3LS1B6MTsMIFuomEgKbawIaIuSzD5GIY+O/0Ms= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:50:07 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:50:07 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 14/20] xfsprogs: Conditionally upgrade existing inodes to use 64-bit extent counters Date: Tue, 14 Dec 2021 14:18:05 +0530 Message-Id: <20211214084811.764481-15-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: c7cec97e-97d0-4916-fdc4-08d9bedeba58 X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:47; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pfmdr62Qm5ux/NXsG7G1OcJs1RIEXsdAMqe4gSKJYIU/wjTnjlWF8IN3cVo+Rvz5Au0bI8qkmICHPQ4bPccEn9MbGRENrvjA+xqrPboNVmV3Z5XHl1jUCN29aqoTWle6O9zVKMcYROlVwcdp3ZnSK93hXTXdsZnsIblJDAmcwUKxrbefum96KryY9dskzfmrbz+Fq1QOqkAExEjFCFk5gXUCVApetOejNbPZFu30gg9w+57oe4t98KQ/dRvlIIGEt1vHA5YI9pOLp6bVOltyNz0dFg+T2EH35fF1G4+CfYdqgd9CTpcp0unHr7OGyXC1hsHAjmYmurZmzT4flHAtETXWGyxwFHThcGGsChlnvevR4SLko8NW/bhcwBG9CaeFCiQ4Ty/Xtsp24B81QMRK0BAXCvaXuXhw03FWh+B36S3COmDCTYqKW4T/QpiKFwPfBlKtAqJamCOdHQK2gcAsnn3Vi+INc6uNw5ptH1uD0zCXKM5uWp05GOLCY7z6JotJYsfm+qd4Zh2xLk34IvSzmkG5z48tAjZuFihc4+HamQSEyqUpIVkbbH6jHgDom1K/kSfFZOFGaXnTQxfDDyPt3bHuVqz/xp0NnABpzWXytTneL3vgcX+AjQ/N0/ZVlL/n2ufv3lnQjZdPOzwYhp7xqqyuro80H6AfhQrXd0AajZMKPF0xuKGJYVV5KULLnGsUXu/HpD/euBctOqoarNV9xg== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005)(4744005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BL+WNSTtAFPgKUzMSfs+okBI60e7612KbG7jbkE6A0A0Y+tX9+j0CcvNV1xgFGJYNoj8B+QaFADczFcLPmVD3LpRyfvYHOQcOxtYqHarOUUN2UHbc+g52ZP5230FXpvMLZi2OGpMw5+/bH1J4phd2NOsMAM14nZaOeCxPFfEXDM7/Ku4YGP6k69wr50LveYbJgqVEd8J30rQw1VqoQx1S4FvcoBxCI3spxHVkyeKSDkOYSHLI3rvaaae9DQ0RKT7eXlcxyPkmsK9+Aw3JJBzaPG0/EZq2GVKRWKcAdwmnUqskT0FVIi28QV9t2sWvNnElcVZqV7seV8CJPwj9cI2/6TQ8kEMBfcp4ibqjiJYLEBNkzzRw3RJttQcH3TtFWm6XI5P3LIymWBCNnSoyT6cWnuy51+NXq+4h49pOAiNzg93TyhJQp7VNMI6lYZ4YV9rRVTDBMDA3WybPkhW4RMn+AonORNQ7U6sABECu6XwTyvvxQfqd8tHZDVNT//lvy+ZUJm6NSYIP+eAMMCAcOuDzSofaB5vez/K5h7AEl2WUIQR1I6JTKR/qczwrhn8LzbQzd6WUox+XIwPUcK9fgp3MjAjhs6LPa2no8ZLAepONFIniBaUfeNVIRImecaWi58ss9NJxuB/Sab0x61RXaDQ7JfAWes7QdEPzL093aWtdjq6B84DLfaial9tooLFK01wJa+alR7CVTv7mQbYJCdsw8GpVSYytkcY6TRhiFt5jmtXJkO/b7ehVOo7gDHvbIhbbpU5rlggNGJdzqQFAur6wBctInmQdi5PtQcCn45GZkdBDTUsHReFlVxR4SDV+y9wd7ARF4n60lfc5xRKrJXrX0w4UXvC0+NSSHq3Po2L39E2V+wXVZD12BSqDZ6iMWKfTNPtvaO5igzD2G+E6tmSnclUzWyYjqdqQfWPeyX3/YclWv8CgdASlcpnekEAnI9JI28LwyBqRy0Ftf9lFpIcf+6WLHY4AfOdsOQTAWvaCDJwr7emvVV8iJS9jXR+lR+ggzHcoixwW0bFmdSbIS4qAuFEvn4zJzuuZw2UmBeZcNALcz7stNm+EZMpCmoisNAgEOvyIkKc5syTG0eQmAaFIjCXq4gau63dw0CVYvUDtHXefFlxUK0Fd9Glnx+cRPQ+SuAREvQfBRNIcTtvuBEz5LgCAPxZrbdZWAPvvSltjtGD0TIce0peUTyvYcWBPG+srFV2DEQQ8iqEJ/qYXkg88Q/c1r5PiIr5iA+JoBLODFucE3qpSxKIwW9ro2PwnqUuWLdZmNtJa7S//GRASIgJ93gPyi5yI4K2Cd2o6fJvcsbN/X5iXnJ5hMcJNVLRtgU3l274YdpwT2wAO2jhQ/Jo9jN1c/S9csiFV8wTcwZrOtRvhxEvWndaAm/WIs9fK3NbV91KfiudMlCMwZv5WNNhw25s14H0GHBMWArvETL+crL7FoWbuHzNX1NaQIk+cQTMKcVhi+5ZIiQg0eW5w+4d7AEbuucd4lalcJbS2M7wmf5PCMDQ2aLovPwEyhSQ9aANJNAaNt4pIwMcD+sM/tijfl7MkF3sm0JKI3Gpuulm7QcYz14LZsFqJdmPJ9Xda6crTD6jmxf46xD1XoiW9brFpD9Mn3AufRRyGlS2K649r3g= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c7cec97e-97d0-4916-fdc4-08d9bedeba58 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:50:07.1701 (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: elHztojCaYlCj3u0ejzJttEn8ww+wVCJi7XnSuCzEaKXuq8AhMYKQ5VktusE8BrrgsiSxQZ+/GcZf4X+I1Mw4Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-GUID: 8RaQ2YrmV9BlnmIryIkgmOjA5WBq82bF X-Proofpoint-ORIG-GUID: 8RaQ2YrmV9BlnmIryIkgmOjA5WBq82bF Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This commit upgrades inodes to use 64-bit extent counters when they are read from disk. Inodes are upgraded only when the filesystem instance has XFS_SB_FEAT_INCOMPAT_NREXT64 incompat flag set. Signed-off-by: Chandan Babu R --- libxfs/xfs_inode_buf.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libxfs/xfs_inode_buf.c b/libxfs/xfs_inode_buf.c index 5c6de73b..a484e14b 100644 --- a/libxfs/xfs_inode_buf.c +++ b/libxfs/xfs_inode_buf.c @@ -250,6 +250,12 @@ xfs_inode_from_disk( } if (xfs_is_reflink_inode(ip)) xfs_ifork_init_cow(ip); + + if ((from->di_version == 3) && + xfs_sb_version_hasnrext64(&ip->i_mount->m_sb) && + !xfs_dinode_has_nrext64(from)) + ip->i_diflags2 |= XFS_DIFLAG2_NREXT64; + return 0; out_destroy_data_fork: From patchwork Tue Dec 14 08:48:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675685 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 A02E8C433F5 for ; Tue, 14 Dec 2021 08:50:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230254AbhLNIuP (ORCPT ); Tue, 14 Dec 2021 03:50:15 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:64750 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNIuO (ORCPT ); Tue, 14 Dec 2021 03:50:14 -0500 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 1BE7mv79005512; Tue, 14 Dec 2021 08:50:12 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=rvqtq/BubM4UAb0UrR8rZlHQwyO3mv/t9GjfEvJwWIg=; b=x2isCS+9IxGGRz/Vs5+R3dtxKx1JnqC8NJkg9h/xSLZYv/1dyEWQb3isdBvyhZFBedJk SNqBdUiAVjsg6WGnPqZVyoO8Zf6GHxLUzmcjx8BiMG9TyH/Oqk7yfyyofNpOARgIrPAS NcAuHvAhlRskYKdopsWNQSu1amoWgvZn3aNnnVl2oPJMBuV57x1qMNDEls50o0RXK62r UnOzS5ZN0mQTbDSunuVVLcuEv7OHfyDMxlZLq/JPEYVl7O+/6anm1l63DQtMPs9diKYm +BxoUnUQQea46va3Etkwyb+9+3AVH9ok0/yz5uVwGLxVEKGvqnPfgqxUCBMru1EB629+ tQ== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx56u2sxh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:12 +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 1BE8foqG104549; Tue, 14 Dec 2021 08:50:11 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168]) by aserp3030.oracle.com with ESMTP id 3cvj1djtdj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EY6AOuN4ECWkbPl9mYW9qGaWMPEZncvDkcVrODbYm3ehl/WQkQC4kxfB91iO2bXkM+JTlmWigHhFZXq1Hy16cssxfMXgXO+tHJUIf0cL0SEJQDbE5eADFW9oqlvvVQmlnjT4r3DthUUFaGJgP6s+oN8M3xjjZBtndoSIbTGsULlNCr9/U2ArORLzK2CJGpIqtQfHFW0DpOjhDcH7WK04Vef7IXPY+esenbcgChAOmnpyhIgjTr/YrNB+9BrMWJ0ECwWZFI6d8C5UXjkOllsRdSKmdlLb2zaHfIkR8rRSbewn2z7CXiLvs62ihDFz7I2lSkRNHUeAVzRfFCS2rt2kqQ== 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=rvqtq/BubM4UAb0UrR8rZlHQwyO3mv/t9GjfEvJwWIg=; b=IJi6wlenuNWN23Cz2zWZ2EHtq0YPlIIB7xXZbTDB3NcHVznH9FDFaatlkutsaMkA4glf3MD3jxaEja1an3+ndDjDyNaXvn5I5KEXGeK1ukfTE/HY9KBhK/TLCccrOqz3tIu1n3sVTahwNAN2Z4lCCs2Q1IK0cUAkC3z4DadOzPgzbl0NxRoZKb+AlZEmdDSdtXuYhjmt3yBlmDMo6yyZ3VnR2kCXB2fYpoCBi4NyFRYG5jKHc9Bo6X8UdEGzLRXxkrsQkWN0X/mxohULf4d7tt3faO8qFTJkgkkMTNyOMnu2+Ac/X0XQbbbGmD3Pn7Mudks3xKY48KR0/p4J0Pi1WQ== 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=rvqtq/BubM4UAb0UrR8rZlHQwyO3mv/t9GjfEvJwWIg=; b=ha6H6J0XYnrkRWkJE/pLqn7U9nOggepub8G6NnsFEduLl5mmBzHe9vIP1htWopRyVi8PkWBBMh+jgo4zAHF7HPgeafzEBNxhFSxdj5lwEQbeTikguR/bPUYHg3DQyNjV2sQsk+CQFMyKiztvjY7d6kNap8PHa39joDyysThBKKQ= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:50:09 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:50:09 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 15/20] xfsprogs: Enable bulkstat ioctl to support 64-bit extent counters Date: Tue, 14 Dec 2021 14:18:06 +0530 Message-Id: <20211214084811.764481-16-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: 7f1d15d5-26c7-450e-2418-08d9bedebbad X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:250; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lCs8BDW435Nn4whJuxrZE7y/OMgAxYuOe29nb6hpF3g4v3kOanyM2WUkxjsG7sQsfyhyZK7XCKfpltSugy6GBxqVzlPSVggjFoLVYW15eVRk5uzP5AXSfIJ+oXK20rb1+OVFpYkCdPhV0xYiZmPadRYuzyiyPUF5DqjNnGvS1VIwSxPEbSyh3TJEArQ5xbI1ix+pqguWUoNPWTStwqOl1wKYX7BLvxtjtYGnjdySvrF/GtZKO826sgM/q/m4OOOkkDkp5f48055xPukhHsmBe3Cbq4lH8TFFFKlVSaXNtiELXGHaTF8Me7Ms9wW9kaW4VsHV6wlXyGE+KEjItEmPm/ikMGGvlnzhoUNSENgN2XKkrwhZpuwUuC6c/WX4mozmEp9Vy5gJx/xjFR3TAOqeqr8UfRwQbL8I8pqsr4o7ZrLavkSAYs5aZBESv/+OOXm0B54Ltgp5uTJfQ39f9yJFiX84uH19UNE7UtKRF8KzHWU4Tj/F8+8YFMULIoZtIPBjzBBk6i+EnQvSR5DHAHPTcfHSkUj9bj4e4s+RevZMAunpixpHzLncKGeiECATPszPjvfnomm5BwdigsmL2VPFn+/Mluoi+4WD40c8VhOo4/Nrg4deu/9MvVpI1uiQeQcJH+v9pZPCOgn/x4n4YBGdadUMuelqXTXi24rh6cLCbbfOYzSYAvBULaLbunli+jjD 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YKL1Fo2EKK3ommbiko0R7qXTXn8KbBCs6+7i3bfzk/HvlShuygQC6qAjXA1sP4Nuhm5RG53vHhe6Mz6gUGfLlyRQjTrJyUHseeKw5hAvWTdBtUUcTqAi/kTga/ugfxBsmJyt6lUN7L91VFz9mjjaRo3jiIQ0KtjpY5tlU3oQY08UYtULIFtdqBFaC1uzrYil38CQFQsHH5DnjwPIi8Bvu/oc3oDcwutJC1ETTXOeCif2WHwCkQSutgHvMWWJeitFl4bGjytXHKJQwp/IJg/ah7bXGe5zYrLSCO3OG6E1QlUpuAV1D/LDw8HT56SaSNboDNhSo0Q9AMh4GlWQoccypmbkXaWZZ5PYkAPKrGcXMUrFXHv5xSKaGFqVHR49ms9hJmRmIhMmX6Q09PwRcz7lQD4lkhW2MNd5z6bP3cqPSxRs4aawSr3BFWw8HwuW+OYjHJZTFpn3TvFzgEhvjzfeKMMeOIBr+cVzN1HLlQ0cX1f771ZC8XCRQVr/Z14YMY7MxUNX5dP638Y+4Ywypp65mhvBKg1v8gHyWF2HelJkKfWh5Q60/GT/KvI8sALnXESR1uKHhoDDmZyVzmBdXPX2+fyvFUn56ldjAJrDYmToxWSY/vXietyMoFErZl4tVX+zUFMNxwNcbXeYbtNsE92ppH8rnbmPJMp92PNRppswc/hcWioLMyh3qF/58e3noDlBJ2joHAxszP1rckpXyLPJKlNCEto7Kx+0BmN21I5fPsORdHplq9FRY1W+3gAXyw7Kj5LQTifjMedQZ6UDa7FyIR2juhkLuM07F+wXh1ybiyW1ns9waCld8ySZUM+mrXul/nuC0H966lizclY0tHrHfREXSvk+cD4SMtrG+wshJAjPxkvZO/GdDQaSARv56mYKuXBcA2iEnUT5yxyJUwu/kZT1VKFe+bZYErI56YRWMu8OyYArbus1Vj/i7V1cRg3fVLsqURB0WYWXxhB/cBjM2JRloAam625+mmhNc9xex/Wtx0eNmJDj/OEiWfIzBgQlsLIqvZ3qJReVlMFTW6BqApaeW39L5oX1An4Xg6Ad/dllIO6DNNZ9gfKkzMjfQzeQYoHpjUOrIHDeYzBOsd5Hgp+Sq7EzoEd33oA0YbDVC2xv9nY99+olRVZ1jvIeQj6B0x72QrdLswGhGJjqJxvEtTV4U8OtnEkHkXiSrboXqkkZogjeSyp2hhMOXMZKDsfcYx1FSWK4kQKTclHSXEjivAI1TvJ9nuBT0u1yYgqBm2NO95QU50bNSVrevWAZzhqeSJMSeA9zk5ihLWENU60X8qLCJOeKgMfaKnjKLWvsxCAw2TwOWGrIJ0JTD6HVy2cnQlYl6EEh5tTuTShTnCS+xTxylPkwHnEB+RJFJqzQCkNgTFFqRb3XY5tfyZNMK6VM7uo506X+0QbyzGtTYOsDtv5QNWSn66AuVC0WpOLuG0BgFxvwc1UyOPDmd6mbFPIQ+Bd8KOUJx6u2PC5hGGzrivq6gaiSF2uXKikuMzqjrIEFSm0IebBKyLAY2i+EtiHmtqKyGAWmK9C33Kd4bTqslB3V2dXSX1Kh8pFKOceMdFUcKY9JpSlLWIkKzjbCQpQLqEFUe3MY6EFfXLNCE2WnxHuLb7afOxmEOhFqYRsbecE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f1d15d5-26c7-450e-2418-08d9bedebbad X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:50:09.3833 (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: R8JqPkZdiEYuAotF79gZMCJdGVvW7IxV5EL6IA2DnWX/tT04/CnPeDSh07NaZKS/dqBY2D8uWZc0fE2A1cMQsQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: -e-sKBRCpUsfTIVscZtM0zJcsFWNV5t0 X-Proofpoint-GUID: -e-sKBRCpUsfTIVscZtM0zJcsFWNV5t0 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This commit adds support to libfrog to enable reporting 64-bit extent counters to its users. In order to do so, bulkstat ioctl is now invoked with the newly introduced XFS_BULK_IREQ_NREXT64 flag if the underlying filesystem's geometry supports 64-bit extent counters. Signed-off-by: Chandan Babu R Reviewed-by: Darrick J. Wong --- fsr/xfs_fsr.c | 4 ++-- io/bulkstat.c | 1 + libfrog/bulkstat.c | 29 +++++++++++++++++++++++++++-- libxfs/xfs_fs.h | 12 ++++++++---- 4 files changed, 38 insertions(+), 8 deletions(-) diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c index 6cf8bfb7..ba02506d 100644 --- a/fsr/xfs_fsr.c +++ b/fsr/xfs_fsr.c @@ -590,7 +590,7 @@ cmp(const void *s1, const void *s2) (bs1->bs_version == XFS_BULKSTAT_VERSION_V5 && bs2->bs_version == XFS_BULKSTAT_VERSION_V5)); - return (bs2->bs_extents - bs1->bs_extents); + return (bs2->bs_extents64 - bs1->bs_extents64); } /* @@ -655,7 +655,7 @@ fsrfs(char *mntdir, xfs_ino_t startino, int targetrange) for (p = buf, endp = (buf + buflenout); p < endp ; p++) { /* Do some obvious checks now */ if (((p->bs_mode & S_IFMT) != S_IFREG) || - (p->bs_extents < 2)) + (p->bs_extents64 < 2)) continue; ret = -xfrog_bulkstat_v5_to_v1(&fsxfd, &bs1, p); diff --git a/io/bulkstat.c b/io/bulkstat.c index 201470b2..0c9a2b02 100644 --- a/io/bulkstat.c +++ b/io/bulkstat.c @@ -57,6 +57,7 @@ dump_bulkstat( printf("\tbs_sick = 0x%"PRIx16"\n", bstat->bs_sick); printf("\tbs_checked = 0x%"PRIx16"\n", bstat->bs_checked); printf("\tbs_mode = 0%"PRIo16"\n", bstat->bs_mode); + printf("\tbs_extents64 = %"PRIu64"\n", bstat->bs_extents64); }; static void diff --git a/libfrog/bulkstat.c b/libfrog/bulkstat.c index 195f6ea0..0a90947f 100644 --- a/libfrog/bulkstat.c +++ b/libfrog/bulkstat.c @@ -56,6 +56,9 @@ xfrog_bulkstat_single5( if (flags & ~(XFS_BULK_IREQ_SPECIAL)) return -EINVAL; + if (xfd->fsgeom.flags & XFS_FSOP_GEOM_FLAGS_NREXT64) + flags |= XFS_BULK_IREQ_NREXT64; + ret = xfrog_bulkstat_alloc_req(1, ino, &req); if (ret) return ret; @@ -73,6 +76,12 @@ xfrog_bulkstat_single5( } memcpy(bulkstat, req->bulkstat, sizeof(struct xfs_bulkstat)); + + if (!(xfd->fsgeom.flags & XFS_FSOP_GEOM_FLAGS_NREXT64)) { + bulkstat->bs_extents64 = bulkstat->bs_extents; + bulkstat->bs_extents = 0; + } + free: free(req); return ret; @@ -129,6 +138,7 @@ xfrog_bulkstat_single( switch (error) { case -EOPNOTSUPP: case -ENOTTY: + assert(!(xfd->fsgeom.flags & XFS_FSOP_GEOM_FLAGS_NREXT64)); xfd->flags |= XFROG_FLAG_BULKSTAT_FORCE_V1; break; } @@ -259,10 +269,23 @@ xfrog_bulkstat5( struct xfs_bulkstat_req *req) { int ret; + int i; + + if (xfd->fsgeom.flags & XFS_FSOP_GEOM_FLAGS_NREXT64) + req->hdr.flags |= XFS_BULK_IREQ_NREXT64; ret = ioctl(xfd->fd, XFS_IOC_BULKSTAT, req); if (ret) return -errno; + + if (!(xfd->fsgeom.flags & XFS_FSOP_GEOM_FLAGS_NREXT64)) { + for (i = 0; i < req->hdr.ocount; i++) { + req->bulkstat[i].bs_extents64 = + req->bulkstat[i].bs_extents; + req->bulkstat[i].bs_extents = 0; + } + } + return 0; } @@ -316,6 +339,7 @@ xfrog_bulkstat( switch (error) { case -EOPNOTSUPP: case -ENOTTY: + assert(!(xfd->fsgeom.flags & XFS_FSOP_GEOM_FLAGS_NREXT64)); xfd->flags |= XFROG_FLAG_BULKSTAT_FORCE_V1; break; } @@ -342,6 +366,7 @@ xfrog_bulkstat_v5_to_v1( const struct xfs_bulkstat *bs5) { if (bs5->bs_aextents > UINT16_MAX || + bs5->bs_extents64 > INT32_MAX || cvt_off_fsb_to_b(xfd, bs5->bs_extsize_blks) > UINT32_MAX || cvt_off_fsb_to_b(xfd, bs5->bs_cowextsize_blks) > UINT32_MAX || time_too_big(bs5->bs_atime) || @@ -366,7 +391,7 @@ xfrog_bulkstat_v5_to_v1( bs1->bs_blocks = bs5->bs_blocks; bs1->bs_xflags = bs5->bs_xflags; bs1->bs_extsize = cvt_off_fsb_to_b(xfd, bs5->bs_extsize_blks); - bs1->bs_extents = bs5->bs_extents; + bs1->bs_extents = bs5->bs_extents64; bs1->bs_gen = bs5->bs_gen; bs1->bs_projid_lo = bs5->bs_projectid & 0xFFFF; bs1->bs_forkoff = bs5->bs_forkoff; @@ -407,7 +432,6 @@ xfrog_bulkstat_v1_to_v5( bs5->bs_blocks = bs1->bs_blocks; bs5->bs_xflags = bs1->bs_xflags; bs5->bs_extsize_blks = cvt_b_to_off_fsbt(xfd, bs1->bs_extsize); - bs5->bs_extents = bs1->bs_extents; bs5->bs_gen = bs1->bs_gen; bs5->bs_projectid = bstat_get_projid(bs1); bs5->bs_forkoff = bs1->bs_forkoff; @@ -415,6 +439,7 @@ xfrog_bulkstat_v1_to_v5( bs5->bs_checked = bs1->bs_checked; bs5->bs_cowextsize_blks = cvt_b_to_off_fsbt(xfd, bs1->bs_cowextsize); bs5->bs_aextents = bs1->bs_aextents; + bs5->bs_extents64 = bs1->bs_extents; } /* Allocate a bulkstat request. Returns zero or a negative error code. */ diff --git a/libxfs/xfs_fs.h b/libxfs/xfs_fs.h index 7260b140..6a9e51ac 100644 --- a/libxfs/xfs_fs.h +++ b/libxfs/xfs_fs.h @@ -391,7 +391,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 */ @@ -400,8 +400,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) @@ -482,8 +483,11 @@ 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) +#define XFS_BULK_IREQ_NREXT64 (1 << 3) + +#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) From patchwork Tue Dec 14 08:48:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675687 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 ABD2FC433F5 for ; Tue, 14 Dec 2021 08:50:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230114AbhLNIuS (ORCPT ); Tue, 14 Dec 2021 03:50:18 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:37846 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNIuR (ORCPT ); Tue, 14 Dec 2021 03:50:17 -0500 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE72VSq021596; Tue, 14 Dec 2021 08:50: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=NmN7m4isKvNgZ1B/HaPdizeUa3D5dWVMWHZm3NbKXOI=; b=CCYE5FXhhCBE5MBndZKv+KuH2LMghx2syDOO/Fr8GoE0BhrE/2aQydt/VNCFI62vNgsf /RcIeHJIlUh2Feztoc/0exc58R/FCspJAqOgGOQFPRMYosys2eCuVXN3sYUQUOiMDO+T YBBAQHcrMxUg/L8tbqdzctmXY8BxybYnWYbSUx4Q75spSLk28q9WZTXH+8LXvLcmXqNf xtsEC1/aHyji3+kRK64dMWroyfuQBsMlRLUu6MtOwIwjQTRurJ4mpawDmd0I4wEqH1b2 ydMQ41qID/v/uCqHXPGVBlCzky6ehG8LABvQsuewxpE23gy+m1YXy/dfwb4uLQ75fhyR Dg== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx3ukb30a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:14 +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 1BE8fXkH156410; Tue, 14 Dec 2021 08:50:13 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2169.outbound.protection.outlook.com [104.47.55.169]) by userp3030.oracle.com with ESMTP id 3cvh3wy85g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Uxr1zZIUpx6Ab6WVM60XlOlxcAc/BvH/NA7hLCuZSSOmMbYHASbSPnypXejX9Y4pp4jWXv1MlKQ/l9Ua3unlHaVmhXjXi5vh7VXSY21Oc+Yj7LIZjVPrQ73boR681KzNiggDdlzhOHOkuZPQ9i4ea1OPQ1dP8TrDsM5i71zP/5oSM5qahtWEN/TKnQTIiVaopkV3h5PULlZbdyKZUg7gxHOe0lTOTJMQ3VFvqXhwozFjeXDZVnopb+q8ig9tL1pL3PV9DlzTAn0htetHFCsVuZKIgldp3n5qxDEgdkPi+FLgqdwPisJi55ldoBRGYyEQc0AOOLT/qSqCf80OBqiu1Q== 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=NmN7m4isKvNgZ1B/HaPdizeUa3D5dWVMWHZm3NbKXOI=; b=eOL2etgc/PR12rhdm8e6hZPzBdyYvqojIObsuoWjzQWIAiz1rz0BcZDnVaFzpnrxkpd/tizpwZSCihUm6xFrNWNmu/sWFxl1nac1DwGAmavpgj2oiALG2t6DlBeOtaL0CbsDEbOwkw0k97T/nG4E9df4F05ZZdrKs6weieNrKt7SXcEVCyjPIC9i7zoZYS8WosAor0cGfapbwySh95pUPZ8HnSw5zDBunob2bygjz/HbiH+CkM40dZVraU9K89NS7IcVLv3AytjJYR1O6eEsCsS5eOnH+fzlD+i3WjbRJXViqDrWY06DjN4kUPXztzmwfQo+GfCICStxNh2RKROQHw== 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=NmN7m4isKvNgZ1B/HaPdizeUa3D5dWVMWHZm3NbKXOI=; b=msQuwPEho5xgFroQfFZScqATTTVpPzzTWQ3mDroBslPq9io+bmQghGRg8Fmml9F720ICyZNJJ60dlCbVGdgLXMisFUbnGijgcG9ilvYlch5UAX7iPmu4YAw5zKrXNIOPLVRNJpe2x/MzpT6oq1mMcqhCgef9TS1YtBzz3PtOsls= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:50:11 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:50:11 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 16/20] xfsprogs: Add XFS_SB_FEAT_INCOMPAT_NREXT64 to the list of supported flags Date: Tue, 14 Dec 2021 14:18:07 +0530 Message-Id: <20211214084811.764481-17-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: fc0e2bcb-a058-41bf-eabf-08d9bedebd2a X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:151; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /udwgrQ+AknoP2dwnOLd1huzY5lo2swhYQ9G2Obx7wIbaHrI7UrgWy/wDav9CNaur6RXXeLJMh66jBF/tSK77BonyanTGMZpeYzGwbkoZl1ZRH57ufm8BD9qBJ8/u0oOTS5ABoodviK5nDyUnteyoSETSoX640LLtXjZXIW5jNCmbnGkWvOPQ81eZPv6DOeADzsxzYTxzE4Tk0K2EAPzsPMOUaCEfxRnSdRaTztgi6NEKqFrbaKECNSPn42o2k/+cFH4yi7rx74lM43ff3/1RkrjQZjpv2eSZAx0sIrmJCb3cL6cd2H99YJiiS4BSgVNi7lZ5huZpEpn90OXIvcIomHP+L3oBWylTEVXAMaWy9lzXH/pIJnhUqn5clphIafDJfpD3KYARtytIib+NrdUyGHu5ZN4LYbjj9/RI9ZiDjYOgFTXuRR62ukdyn+m9G9KrBqbMqJIQBoDMiudoyWss23j87Khx/1oojnAn5J7VC4R2rFMf7RiGRpcCTGfaBqfnl++u4r9i24wuNNkOyVHqT+BXPOVzTdH0MGCejJ2oNoV+MSkwlJPegpc3nngzDZGo0rApehelVGVhM/0ZPOFhwrcAFGGGFuOEqt08sC+NL+lrCj9An+rUpXXmmZ6Hb1GKEiTGofrPOhcYXYItfuFEJTWsAqvnP37oDlZ3Oec0wFn9eOz+6sNHJ4SUx/IJPO9tQFSIR7Knsl7jUuwGOryyg== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005)(4744005)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: z6N2KFT8E49fKvkWNog4FwZ9YwP84SBMU39YofY68eus6HIkIOJTN+EtgRk8BPulD6tuHoIRutWMbogBeNkzZDb1peSdTeRt9aj3UOFTYzmh/OidMAXw7b4tw+ASA+dD90kYL/JhKmIuqRkqyjQIXoc3pMiLDZXrx1vvY3+99G1gN4nkSQrsX7h4DcUkhD2WYMwkMDSo4ETp6l3QfVn2/hbKT8AvGDMCnNahOCD7xEkR3fTqW/mXDsrfJUztVEWUaQim7hn0vEq/KhysfQl8cZPvG0S0cYhL3o580nEnblWRtcJWrFqLXtzSvoXF7SV+LXLvzMRteJBwHle0JnhwTMqbMyhjN7RpdehwNVFuyDTy5vQAhPIWb+5tJ7oW9SasluKSTeLdpt28lR/AbZCtAmIJ+4Q8Gmb/tyNEiIm7ss+oMx/CMcPb5xhadjW4qWW1fEfG13MPO2uvp96OPq3XZXr8QJdis78lwtf15Ye7HaPDK4WwDFm88Kdos8pzxkw7i47DC2+GaoBPZhnU8B7+ZCW545eUI5QivlaPsgsSXSSvJVxs394fGWWNcrC9C7RJgzIpWRcWhaWEMTFVP9OLumg3a1XaxaUhAJGe1FfQHTTHB/KCflUM7rL+SU5/0nmubcYWFg1ZWDyrLpJwjaI7wMC9WttGTQRAvTqpeYr/Svm4Sy8mhx4E99EPBsF1ikvX61z3pY19WzMQP9RteDXzu195CnQKHE77c4XOEpz3R3Go/j8XnpAdE9GZljXHIvtEzaLNM0ClOM0t7ocbR7RQtJi9KqKfT1g38Ibc6+bmocuXKGqqTaERakxizmwUuY3GmG89UFjVKaULlFS2QuiERFgq4b+n0HKYSByzyzZ8u3Ikbqu0tpbEMBA7ra6e9QjjaUPMJe5qgZex6rqKKU5OAgdTuwf+MDS2/8dPNoCs1nwSjN9HxqxJSKKAhgTJCLcJ5CUNBp2znswxJzQzvzAqf4zeo4UtN7yyqZebX/VpJ7MukvK0QQDUu0K5MXVvbICWImwMD0YCuJks0H2/DTJdwMgmM1uy1FqDV7W4P2egLw0eVlz0ZvdIiHXujzKotcQtk+1G/twPkho0M/+7ay/blJFJzjxrBLeQHQaf86M9ZxQyo+JQnA3vZCXXPU8bcGkZGlW2/W4L4u050lV+5RRA6Aq3p0MEF/xJ31lesiGoPmytTtQCS5K9dFk2CU0Nz8TibPRG3QpzaF6zBHovJ7Ii8qlXHbHvLCcn3ykja8DMXlvFtjSKRzkWxslvhVnX7AUEcnjV209YuHItzGeldmAkffpdDoMrkwQFTsMZ7kYtUUCCYqkQuZ+UwDJOe5N+SyddBgRzNjCp60MDfOGjadXLqXFnMIZlgdRHdzolS69j0fy7fhq3Xm76t1aCB0CGHo5o1nuPjVRKv2qwIVWrCMQKYmvrDk3TQOyLDdtgtt2oMeUdcNuXgTWCiQTiBSyWGETRwe+ZRLo5NzlGmJ9lg1OMTEfKXxZyV1aPaMdbZ3XHbT6n2pqrgBxGFH7Ri9Mv2XQojLKNE5R1aZeToNV/u2uOMRQHfBlXYF+GfWZ0V3lSN3YcK8fWBkA+vjgxWYyZWa9Pau1e9xgm+pFIbFE436KGBxL90VWhaAlLF/wcKGPf2RA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc0e2bcb-a058-41bf-eabf-08d9bedebd2a X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:50:11.8933 (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: 9qlGGGnK4OyfRi7U38FdKGDkFDSUS2bOapRS76lfeMVb57+h2oEzWj+g+MxW3C/qytVLLh7J2l54Mw4Jyu/YHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-GUID: P-_tQJP5LmJgHzGRlU8dkeGTAdiZjoPj X-Proofpoint-ORIG-GUID: P-_tQJP5LmJgHzGRlU8dkeGTAdiZjoPj 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. Signed-off-by: Chandan Babu R --- libxfs/xfs_format.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libxfs/xfs_format.h b/libxfs/xfs_format.h index d4c962fc..0ed9d5ac 100644 --- a/libxfs/xfs_format.h +++ b/libxfs/xfs_format.h @@ -475,7 +475,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 From patchwork Tue Dec 14 08:48:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675689 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 0B6CEC433F5 for ; Tue, 14 Dec 2021 08:50:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230209AbhLNIuU (ORCPT ); Tue, 14 Dec 2021 03:50:20 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:5610 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNIuT (ORCPT ); Tue, 14 Dec 2021 03:50:19 -0500 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE7MkIZ004563; Tue, 14 Dec 2021 08:50:17 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=qndi7dXMJWJqCgoqZtNdon9FGoavpbBEWDxE3I/qSo0=; b=1J+aNwW82BSQBipxl0K3FIA4nWLyz+d2kb2T80M5cimXSOkMweczw70BrC4oEV7qMcYb /2N54rbMsGNyzIpAGYR0YPzNzjL7bedvEOfZ29KDQDvY7R91XlOLCAsB+EsUPDGgSxDI qoSvuePJ2N7ThDb5Zx3r8NOaxvbSheoeoUrTQFe0xW4H4H4miB18A9cVU2sctnfAq4Xj Bxj7DQWpev9oigqSkPBmBU2O3bPdwNPgzAaH4KbZVQMZ+oRkLCm5xoiXG9pG3oUHRLm9 y61uk0a+ffyLz7SLYqnIZd/EYY5lE6N1Q88bk70g1O/pD5brRV/cj6ezg6XodPHbXlZl zw== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx3mru63d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:17 +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 1BE8fYIe156506; Tue, 14 Dec 2021 08:50:16 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2177.outbound.protection.outlook.com [104.47.55.177]) by userp3030.oracle.com with ESMTP id 3cvh3wy879-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VXfJiA4iTgIc7ItkcxyX1KdYfGkoIgze6LqpgrQF2nvcFul42ZVIYEQ7OTX9gpinLYr+vqGirnUf1pgUEwcKG9xc3at54l8vIL93Ih35ExYc8yiyc/T/C54sNVmz8IHHSwU4iDg2p/ts67eooMAndbnxHAFf34rw2N/mAPzt8jlN6/ezqj8jTaTtfs5WDtBkqSEiuuwiTPC0R+PMBRvM97RYw7aevFgRWL71ArwppbqlCnT2rGBCWR4YxUwosCG+oxqRNnwkIMmz6wX3SM/TOMdGpqYaaJMz4F6Jxkna9EpZUpnn8+YkEClbPEFOPtEFMInkP3BGv42XMQNH+BgANA== 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=qndi7dXMJWJqCgoqZtNdon9FGoavpbBEWDxE3I/qSo0=; b=ZqL/evwoqXStytt1s1qM1D/Bwl8hkanEKtzMDBJX4j6fwJfUgcvlPMc0WBlzaFFpvUMzT1e/DXeIe9WxszxOnQo/DznYulTzg9xLF1zeYk2tNOpKkgdsDPKLeqTX+LUGIjaea4lxmO3UdWOvD/C7RHXKZ7XbGzON+u8CEFdhS1lK5ko2dlgqJ+0cAkGHyqjfyIlISQ7aBgMtbgN21REvw731kB9xgcwPWBce16fGRaW4q4zVYhOYjWM7Fo/9ThOIcDYZBm/ga0qk+p5jv5bu5c6EBum7H6SEs61utTnY31cGbIicuGgswtXfbySQ2qXoeIsR0EbHd6oWBgKVNQb+lQ== 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=qndi7dXMJWJqCgoqZtNdon9FGoavpbBEWDxE3I/qSo0=; b=PN+wKDnXbAaeme8YLTLDn0Ra6iUQ2Xg6CM2D0D1lH6h9yUdaj1Ze5+ygxhpB+70G0PNH0bEbyEVw8ZaoHnByMrswu2ksfea2ZbGXrEt6cdu2xn0bevakvw9nJpasXadF02X4FYhg5/GiP0iWVkorkxwHWBo0FYEXdkiQVqQiA9o= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SN6PR10MB2656.namprd10.prod.outlook.com (2603:10b6:805:42::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Tue, 14 Dec 2021 08:50:14 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:50:14 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 17/20] xfsprogs: xfs_info: Report NREXT64 feature status Date: Tue, 14 Dec 2021 14:18:08 +0530 Message-Id: <20211214084811.764481-18-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: d43a11f3-ccc5-4a4b-7c59-08d9bedebe88 X-MS-TrafficTypeDiagnostic: SN6PR10MB2656:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:229; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YORbi3LWduslgfPAgCD2fusirCtf0YmggLnxOhdYC02dFqu7yn/tI+odaHbNmxCHX2O00JwnNB0z/ArpZB2VXd6SS36VrU63m+gjh5KYF8gWftqULs1Zgyl96VfwHNMVYaTCoxr0e6Ie99GaNAohTeTN4u/aNjFvB1CLw2nDUBosq0hJp0RpwZRL3BXWKsYz7ArS3gSzms5A4U64pAvjklldxQAi0qNlhvDu7e255rwXXZFTwjg7GJq+xSfw0LNVVNjwtZRHHjq8JggjmnLCCFrqtl7rClMg3a8HjcOS5MqerUDPqUDVjeY4UQhq+IK9AdMZr2AGx29ZjSQ/I1ROEl7pduQ0hGMzqY4EKaOHoBSve7sYmCItU/VVh+nAEhrb7mEh4daFQDwqemmnbBT/Vt3X4/WLEL8gqUQu6nsnkgW+Ee/M1B5HjPz6rGgii/uJxyPYA0KbZklfhhmCgroJnogHfEauSoC/4sPgdWbVftLjoF01Sb+GTNitdUN73aEGolcGjtQz8oakfmCXA6Q7CPw/dtB6m7Mz2UHIfWXygpspTB5mU1WN70SlNBzg6j0aJbQKrFwlH/2/KX8IgW0D/WVA8QA2fOgsLYKQO1RjuaU0BLnj1IiIWnwoosFm6laeXtr9wIElG/tssiju59ML3S8ZWBASDsIn5ytp68f+HlV1eOgfwk2bO8CdB1HAgfpd3kpTOd07D3LyGgYTgmx4Uw== 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:(366004)(6506007)(508600001)(52116002)(86362001)(186003)(6512007)(8936002)(6916009)(66946007)(38100700002)(38350700002)(5660300002)(6486002)(316002)(8676002)(66556008)(66476007)(2906002)(1076003)(83380400001)(2616005)(36756003)(4326008)(26005)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Ou4l7PEmp9q9pxokwuh4VAc5KuLnRfqIksNg83hX8xhY1A82+r8y8bVsDq18F8nhvq/3unKKWQuy6aaI8IswHpg7AqF33JwHYGRB437ecEudnQJX8AZI1VDbVV0GQZdIhb1+WtwXp7T8EIYg/6zQ1nISBCaQ5o1TVN6C1VXF0W3gCqz+SNKY4M1WAz7e5Vl7l7GvTKO0ti66J+1RTS/omhbqRkNZ+nCy+jOULFIowE71VoHO6oKogTppRyvUMpJcg9i03LhqKs8fGx8aBTGbXlSF5oRTWWfBY4pu0bkS5O7jAbk4yLXNsOM/C6G9fdcyNT0jn1KO8ZdJTGBZO9bYDegdz/rty87dYGh7e+Dg5QavCQTvQKWiOceVbfYzlxxNeXgKEg+7VSEPAAkkNBXBgc/SmOBrdk6/Pc0jgAJZYwIP7lvptyi9ObNUbOhBW4FrbOH+S+j3YOp1iWIpf/fNerQIugImUnWj3KDVeV5WtuhZ/KdZEDvrJoupiEWk4akBeRgm4Pk2rGwK/V7ELtEOoR/msqXTuJBaNi8/E05EA4oPU7QlQY12BIoo8rlU2SlPGLZDrkYcytAxcFBaQgq54+V086TCXvxx/JfUJLCwFKBnpDu2RSwkfxOmyxhMwlOcxgy5FZxnW5OrOPBSD854p9stWMAOLQjPgrGH/06gJ4hze31ENN239iPRTMUtKoqHcBbXFxKkiR9f1K8mBxiTU5mdujQ8XjE+4cqqZNqY4+4SUxsMULyPF5HwA+zkIv6+2R2I2SBhabYyuZFEGcaQJ/bJscaFCWOQVeZEnDjC3YcZg9MWtbcTWFTrECiCxRh3ugEXUY7186KU3hxxwn62IGDhksOmr0BAet+I+6Vs/0X801uY3Wr4graGazmCVKev/X0JCpkGBkTOCMtYU29QtkMKPfpLdTAEGSG8dhRJ0xDQKJAVGeR1zV0HPjQPTe/mKg87E63lT66WM3Eb3ll1S8YnJldDhzLhRrjW0n+8fpV7z0tatvxGXpeitd6DdKyjGg3i4V72+chdWNrwpKhejaPaDQf/OfoOkPjv/lcTDdujfZNR1ZPOlWToUzI+3tAT3WWSDYd4orVHv7qZaPcz8PkufhYiMHifexJxB2OLs8ad6X2jP44UH0yBcZpOwXQx7pqUsdGi0pRuH5aKUyjyCwcDG4URcAtgY3Ap7+tURMMgiMcGwrJQo/RhtjoBSwxqrhneoH2vZ/o4jXkzXOMFQXq+MCo51SFAFhqbCTOcT5n2GV+lQoOPUG0rrtGEXIbEbLZTZwAeSbUhkUu6tpzSqDiQXEoCOsNhtD1dnYqmw73GXXMYwo0aktrBZqQzY85IEvVYy5i/mByGijvVufh1vC4WHIfdEfjG/mL0ZPJ4cwX/08gXYGI0KUO6rtAuvb0gRJcM76fRu2TyLs6LYXOXD9vRJn4GL2J7mxy0l3JCv2+481aHWrcK99SMOWRLriOoSnydrKCscXGmwEjKbLrHlYpA+0Zjvoq+bJkX0ZpKq2oxxfw1GQ0N4tSt1lWu7y6lLv2tNzyM68WRLtX/3NIrOLJQsEmH3elPlM1GAGmRab62bm2t83OqN6+bBhN9PKHHM7EeTkVyn+7k7GgQXkXnGEiaz3XVpc0L+HRRKNtp/NY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d43a11f3-ccc5-4a4b-7c59-08d9bedebe88 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:50:14.1862 (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: eMkxcCVKsUQyDrJuLECb7QGDRy+AHAd3SLKn/Bu5poXWUazcGo0pAniMdh8IG1CN5w2cygQj5lWc4GibrG+Weg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2656 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: BnIbrPNA267tjwVQ2327oo3cLkbTXBl0 X-Proofpoint-GUID: BnIbrPNA267tjwVQ2327oo3cLkbTXBl0 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This commit adds support to libfrog to obtain information about the availability of NREXT64 feature in the underlying filesystem. Signed-off-by: Chandan Babu R Reviewed-by: Darrick J. Wong --- libfrog/fsgeom.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libfrog/fsgeom.c b/libfrog/fsgeom.c index 4f1a1842..3e7f0797 100644 --- a/libfrog/fsgeom.c +++ b/libfrog/fsgeom.c @@ -30,6 +30,7 @@ xfs_report_geom( int reflink_enabled; int bigtime_enabled; int inobtcount; + int nrext64; isint = geo->logstart > 0; lazycount = geo->flags & XFS_FSOP_GEOM_FLAGS_LAZYSB ? 1 : 0; @@ -47,12 +48,13 @@ xfs_report_geom( reflink_enabled = geo->flags & XFS_FSOP_GEOM_FLAGS_REFLINK ? 1 : 0; bigtime_enabled = geo->flags & XFS_FSOP_GEOM_FLAGS_BIGTIME ? 1 : 0; inobtcount = geo->flags & XFS_FSOP_GEOM_FLAGS_INOBTCNT ? 1 : 0; + nrext64 = geo->flags & XFS_FSOP_GEOM_FLAGS_NREXT64 ? 1 : 0; printf(_( "meta-data=%-22s isize=%-6d agcount=%u, agsize=%u blks\n" " =%-22s sectsz=%-5u attr=%u, projid32bit=%u\n" " =%-22s crc=%-8u finobt=%u, sparse=%u, rmapbt=%u\n" -" =%-22s reflink=%-4u bigtime=%u inobtcount=%u\n" +" =%-22s reflink=%-4u bigtime=%u inobtcount=%u nrext64=%u\n" "data =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n" " =%-22s sunit=%-6u swidth=%u blks\n" "naming =version %-14u bsize=%-6u ascii-ci=%d, ftype=%d\n" @@ -62,7 +64,7 @@ xfs_report_geom( mntpoint, geo->inodesize, geo->agcount, geo->agblocks, "", geo->sectsize, attrversion, projid32bit, "", crcs_enabled, finobt_enabled, spinodes, rmapbt_enabled, - "", reflink_enabled, bigtime_enabled, inobtcount, + "", reflink_enabled, bigtime_enabled, inobtcount, nrext64, "", geo->blocksize, (unsigned long long)geo->datablocks, geo->imaxpct, "", geo->sunit, geo->swidth, From patchwork Tue Dec 14 08:48:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675691 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 8ED78C433FE for ; Tue, 14 Dec 2021 08:50:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231531AbhLNIuW (ORCPT ); Tue, 14 Dec 2021 03:50:22 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:7568 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNIuV (ORCPT ); Tue, 14 Dec 2021 03:50:21 -0500 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE7snMr004121; Tue, 14 Dec 2021 08:50: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=SPp1SmNH1r+7Nc0WrLWzqcBFLpsvAKqC14XtvYO8QYg=; b=W9axuSljoHkyikRV6AZHp1SiHv+MoHO1ALPFc561bqQDHKlIu8NAXq1ugjKsfIurJLAH /tEI8OBAwsj+OBMpZ7LNhdn0HOD3tBvKeJKIVKHXnH8mMEKAWO7hi/ilG7RGvnngDp0Q pBKGXdkpHLIx60EkpdGjxaQ/E5pDVSbGJLr88/JmVcdXi9Jcyr5hH1aBpkblFRdm9imv bShFD2UYAquQk4K7Cjh/OY3G5S+wGwg39PPcJbEv8U7SudyaNvTZPOjspOSawhvYH/9e LpNcT5pWdxLVQOsylsThMzqqaDuGP8ETATSDjmeKi25m6blqVmRaolh0kypQK4rJxBJD 7A== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx3py33ee-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:19 +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 1BE8fnYr104430; Tue, 14 Dec 2021 08:50:18 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2173.outbound.protection.outlook.com [104.47.55.173]) by aserp3030.oracle.com with ESMTP id 3cvj1djtj9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oMiFwMUn2D6B0HgO618zGBN6EfBNR5Dmqzz8kctmrRMPeBLEBctZBWwT0L+Ert5njsLW2FUXVWmMy1RQhtUlRIGKrS7mADVrH9f7JDmuOg3gla6oLQ/Z+pUyueRZ9kGu8wCfgjnC6pjGDheRl8oH5Kaf+9nYWqKoD2LxK+EZlXblgVNKvgUH6h58YOhhSzNu4q/2rGRSJebIs4WTBcPRrPnIq6DFuwqwkIdqkQsMwgonBgsdKWcOrHgVh3PTqyUSybeif+A9OOOKJYcnL4arMBICSbvjp+8zqN3SqvgCnekh3yVsP9ggelj+z4Q3otEF8FM2500jagCECHG84cnd5Q== 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=SPp1SmNH1r+7Nc0WrLWzqcBFLpsvAKqC14XtvYO8QYg=; b=ah9ZrY1Bkth4OVBE2ZG7ILRYtUIGxwIvMjdfI4SbBWHaxjhXxtZNI+Opv5AspnNSY2Rc2bdCCM0OeSj9QQWzMTrqlFKvlGb+bFqp3eT3ddnxRmgXo83AOARttIwV3+Oc4E6HJM8NFjYLqo/s3KZSzRnZIjZwJwDvuuxCM6DYlwlKJFCznuj2iv1yUnP1h5Q47vJVWXtwFGderArPZLE22TAvLoZAkrvf7IEbQafmjqUVerSnafX1Ge+uVQuzaRbVyidETdINg5BguGIvM0ZaTneDvkfCDy7q13N1NGIPeUWLfEeykqoKEU7+7RMSZZAeXjIQmVa0jjd/Da9VFjlV9A== 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=SPp1SmNH1r+7Nc0WrLWzqcBFLpsvAKqC14XtvYO8QYg=; b=0QbepCciNhlOmcz1q6lHNJjJ/GMPVvy0PyU/ciFNhrmK66QP2UPh4CjixpgZUJ+waprKBAcmfaUdEDykL+xXB1xjVST0mCIff3iuS66MGqge+LOzCp01L4qGpIRRDFWiGyGYDvQrrmIGPH2W3FVABzRCaSfkw3HomEaEWbqlDRk= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SA2PR10MB4555.namprd10.prod.outlook.com (2603:10b6:806:115::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.17; Tue, 14 Dec 2021 08:50:16 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:50:16 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 18/20] xfsprogs: Add mkfs option to create filesystem with large extent counters Date: Tue, 14 Dec 2021 14:18:09 +0530 Message-Id: <20211214084811.764481-19-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: 4d3663f8-0e6a-4b10-5b46-08d9bedebfda X-MS-TrafficTypeDiagnostic: SA2PR10MB4555:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NiY5DUAW7Rkoaj6JfWy0zTgdCl1DxkS4pqk/IVg5NxHOZ6oV0DDZ89yfVoNOVd75SlnYrxk/FDKa2N49VEMdV0LWewhh9tDgqECgsA/YGAU1DSg0Izd4oyLtP9idxAfSoLDCUxPYuMcJhNIfk/niW7ut/AI7O6Xj/KG1cqPmRUjjqsYBofdT/PeWHGE8rQGErhI2QAs3/Ghyj5up0NqeFBPwTUS7L+c2RHpWxavNaa5q6kgQnSsLlX+NvimY5u1TN3khKyGnKIgRXWE9l62VJR3THBMBAAguE0YIWRTk8voB7kVZOhROzAk5fkjlmVU7VFZBGA3K5Ej0XPZquMfadqiVVafpJFxxzUzBdz6EdCcLnGoHOfLHqIxeTowvDmiVvlbu+zt7y+orOHmoY6UmrfPO9BOFCLFhJ0T8bTslPPdr9t2yqDnCPM2sZdMmNPt/WzULyY3MtW6CB1bgIMgazzGKieTL3M1vo5U6wd9OYDFS+5QwW4I3CTtXORnohjZZK138t7qzmcuiQz6qKbjqZ0YVD43iaNyqZplR3U7DdlW5COCos8Cz2AjprNpmdr2Sgp/jPZZyzWeAfEog2FUde3Qfc21/2WOBArzoiV5cMZwhwdNL7hB+4HV14TfpxDL9WOpy1EkbEzQZeWeBHXF5A1gAVaLY9SkFkZWVIgAe/zHs+0TbFG1CmuVeV+YCk1fdWT5lxgJUofnLO+SGbh4eIg== 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:(366004)(5660300002)(52116002)(38350700002)(8676002)(38100700002)(26005)(508600001)(316002)(2616005)(8936002)(36756003)(66476007)(66946007)(1076003)(6506007)(2906002)(6486002)(6916009)(86362001)(6666004)(83380400001)(186003)(4326008)(6512007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dV5pm6hs6FsSehgOpzd+1wAJ08UibC4F7hyr97OXRWs2USM+pm1fxBbMjp4OEwZWTinr1BOOS9o6EzLv8+wgXzLqMghoiesW9ZUVz+kVnmMUfQ+0yB8NyzxrkkDWcCGZqspPDehIGtD1qWcIYJO7cBA8x1ouUxUWp9OUuQPIKAZxt1UXLk2Mrb0+kJSovHQEelQnWop3Pl9BbvL5ZypBQHkxSModopu49Cv3Or9FBKLDEynvs5YwmcVxby443njUwWdyQ14MloLVR11Fx4oJpqJoXiZZtIHkGXUkS2EY+VaNI2Fv0RcMSWdShhVOFOdgwsNbhfkj+CQErQI++h1yEWvdHkYdtPcKDmt6nOhx8vLdiB0LNXhfJY6NPHFekWG3eh0PZUuY9qGTiEC0Lu8vjKQD0bN1pUDJLy5W/3GIxhuHtgk6osF5cTxtlOn4Gw4A2me+8ELktVYTii3xGl47cmvuIoCqomOUAsTO2XEkrLU9mvHaoYzNKYRzGzJsyFwmlMA/ofzsc8/JVURMHTjSBChzCvjDIsNMgAKAndQdD/zS9yoYPLHge9gh/5on2ry842fjQBrzZkQLIq9DBI8JqJLwzCWlGlHLBkl6dluMbsaarhAOTfXZKw6wUIZzX8FJ7rOPMV8m+htTc2vq0FW5O2ATF2qsx3RkrHW8xuKGjgrPRzzG4StFoSrOodwlBshFbnksjBXCCC2KFoP9C7Ka/ygOltE31LNuP9KTWIJqDCaPQ53QPOjd1WS6tsdnp8K5ctbcjC9QRh53g3bYtutyNd1zUTsZYTaA301TlUrYLjFUSu+37Z+tUQKvwj+vYK9ccVPTf7/DmImQcosrOFmoQXojLv7eynU5XD6lkTYM3FZWDNrC8Eij5yDY8YUZ6+hPDmyPBPiHIWIRfQj50ZXZp8YS8Cax+mQfJt5LaK7gBoNvFEEL7CxtNEdC9FDXgaZjOY3iovznumbaBobJoxHSd7ppc90zjo+XPopde12YQWmUV0MdN6XBH/SZ0Tx7gB7sjQ8CaSMPvDPOWLsKUKmjn8a9qafeZaxzCX7y1ohw3ASfNTmg93KtuZzfst4rH4gvobfkAknA9AhZ/vOb8kMY74WHRGA8l6II4o5n7fneU/IV1AfvPiFeNtpnCZmgvOU6BauvJKZ700RAW9Y3WYAmh2YcPUMjuKToTbTUHW8672mVQaDPAtMFzojN5x+fCqSQNknpql//Q4i/xN6q6CPqXK4qiP5CmN3Cv8HRR415ss5dL2Gk/bcP2ANM6MhdFbwehjYq5VOT0ZrkL0C5dDQk4F8tPhAOp3bMSK3yvc6qnG4b6vKyWTvdXZNz6NL9OsoRqW/BpV1ITxUIngdUagKNzBfGj7cb1RPQWIJrJylr/v3LU255UK1fwkCvd3fC9NV3hQP9F2VuWXuQklvw5cxRCO5wjZa3ASyYsdxZa7WoMGOIcExXQOAiimRMxVvydKtg/OT/R6TfQXq5Xa6yG0pPo/ccqI5+B7HTewQVOh7If9C5OXG9gY8+5MxbkJwQAlzkbZb+oCQnvVxk7f5TNdNbopRTqqL5mMx3nayCOUvQmCaIcjpno8GXHCz+3lPeq9tX/5pkN1awP+2R3KcR0uKKbvyqR4uFzDMz1kyL3ULVe90= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d3663f8-0e6a-4b10-5b46-08d9bedebfda X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:50:16.1924 (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: 1Rw63efaWBoCC9et8LILL0PgaNG3qmyLjyHcytw7V4oxuleq7MIRMXec5Lw/iKluLscy0RQ2+n3ANZC8FtZ8rA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4555 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: vhL--AQ4NLVH3EzJIni66paua7BpJ-lR X-Proofpoint-GUID: vhL--AQ4NLVH3EzJIni66paua7BpJ-lR Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Enabling nrext64 option on mkfs.xfs command line extends the maximum values of inode data and attr fork extent counters to 2^48 - 1 and 2^32 - 1 respectively. This also sets the XFS_SB_FEAT_INCOMPAT_NREXT64 incompat flag on the superblock preventing older kernels from mounting such a filesystem. Signed-off-by: Chandan Babu R Reviewed-by: Darrick J. Wong --- man/man8/mkfs.xfs.8 | 7 +++++++ mkfs/xfs_mkfs.c | 23 +++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/man/man8/mkfs.xfs.8 b/man/man8/mkfs.xfs.8 index a7f70285..923940e3 100644 --- a/man/man8/mkfs.xfs.8 +++ b/man/man8/mkfs.xfs.8 @@ -639,6 +639,13 @@ space over time such that no free extents are large enough to accommodate a chunk of 64 inodes. Without this feature enabled, inode allocations can fail with out of space errors under severe fragmented free space conditions. +.TP +.BI nrext64[= value] +Extend maximum values of inode data and attr fork extent counters from 2^31 - +1 and 2^15 - 1 to 2^48 - 1 and 2^32 - 1 respectively. If the value is +omitted, 1 is assumed. This feature is disabled by default. This feature is +only available for filesystems formatted with -m crc=1. +.TP .RE .PP .PD 0 diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c index 53904677..6609776f 100644 --- a/mkfs/xfs_mkfs.c +++ b/mkfs/xfs_mkfs.c @@ -78,6 +78,7 @@ enum { I_ATTR, I_PROJID32BIT, I_SPINODES, + I_NREXT64, I_MAX_OPTS, }; @@ -432,6 +433,7 @@ static struct opt_params iopts = { [I_ATTR] = "attr", [I_PROJID32BIT] = "projid32bit", [I_SPINODES] = "sparse", + [I_NREXT64] = "nrext64", }, .subopt_params = { { .index = I_ALIGN, @@ -480,6 +482,12 @@ static struct opt_params iopts = { .maxval = 1, .defaultval = 1, }, + { .index = I_NREXT64, + .conflicts = { { NULL, LAST_CONFLICT } }, + .minval = 0, + .maxval = 1, + .defaultval = 1, + } }, }; @@ -804,6 +812,7 @@ struct sb_feat_args { bool bigtime; /* XFS_SB_FEAT_INCOMPAT_BIGTIME */ bool nodalign; bool nortalign; + bool nrext64; }; struct cli_params { @@ -1585,6 +1594,9 @@ inode_opts_parser( case I_SPINODES: cli->sb_feat.spinodes = getnum(value, opts, subopt); break; + case I_NREXT64: + cli->sb_feat.nrext64 = getnum(value, opts, subopt); + break; default: return -EINVAL; } @@ -2153,6 +2165,14 @@ _("timestamps later than 2038 not supported without CRC support\n")); usage(); } cli->sb_feat.bigtime = false; + + if (cli->sb_feat.nrext64 && + cli_opt_set(&iopts, I_NREXT64)) { + fprintf(stderr, +_("64 bit extent count not supported without CRC support\n")); + usage(); + } + cli->sb_feat.nrext64 = false; } if (!cli->sb_feat.finobt) { @@ -3145,6 +3165,8 @@ sb_set_features( sbp->sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_SPINODES; } + if (fp->nrext64) + sbp->sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_NREXT64; } /* @@ -3854,6 +3876,7 @@ main( .nodalign = false, .nortalign = false, .bigtime = false, + .nrext64 = false, }, }; From patchwork Tue Dec 14 08:48:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675693 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 5BB05C433F5 for ; Tue, 14 Dec 2021 08:50:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230258AbhLNIuY (ORCPT ); Tue, 14 Dec 2021 03:50:24 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:47528 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbhLNIuY (ORCPT ); Tue, 14 Dec 2021 03:50:24 -0500 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE7LE8F022068; Tue, 14 Dec 2021 08:50: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=qJaR9aYPUdMDay2IHt8rgVgOhxvq61yKuwGDyIJql+0=; b=omWnlmkN2RzWQhhVZWALpwh0Xdod/GpjOXjO7HNkMXUj/Q8+LIVorqyPr9c02JbXL96e WlXkcQZJnZM8kqrHGsVPg3CsF0I2YVQGCGXo+/O99eupM7crMD3BMves4rPgYWk/R24N g75NwtGpmTpDo7SdiEo/ecMo6bfiwCqfYEN1bLnGLoDwT0EHVfkFWnKOVg/xajTGbrQG qB+ckVZE1Tzp5c8xp01YfsY8D/WToCmbXGYgqzLOoxFwG0aGusMTLGcpfvpy9vVllrFZ q0s95jL2nXzk1JljV5stPPoQl/JVb7iw5g78cOhppIHTIxa7HHRqCJRAPmS+VJJk8Gr9 hw== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx2nfb6me-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:21 +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 1BE8fXjt156399; Tue, 14 Dec 2021 08:50:20 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2175.outbound.protection.outlook.com [104.47.55.175]) by userp3030.oracle.com with ESMTP id 3cvh3wy897-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ku5wGeX3zzQ5wl0ZHg3dN3arHQev3bP6bAFn/a6kc4RqpQpk8jzIy8X5OM6Gm8Pg+ms2H0JNiEt14AEWOz8o7Y+lXwhxuKkquRhCg0QTwqRh+qSI0bDR/UuHZlaVVbPp1ha73BVdHxGYxRiwJRH15s7LahdxSMW1TwXlvJmQX57YX1DeFgm2aOg0gCGMch7UH+51qmDcYewqyU80gOhTZSjzpOf7Ny0R7rCzoEgajoFS2uXqDRvDevzzza2XizzPlMrBj/7IyaKWaupgJ9Kj39AzuT+jlLFYpEnYMD/0QneLazkBXh/j+gNgWkTfF+2geU1P9zYLfdoLLAmy2LBrGQ== 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=qJaR9aYPUdMDay2IHt8rgVgOhxvq61yKuwGDyIJql+0=; b=hfTo0qyXDv2QYu9pTLVQyCsIjHI3PuMaI2ykOuWJ6Gh/PVvQqyKpNXCquL6Juv7iJOS9HS6i9E5b3WERbpQcsKqX5F+hdRaYnhbWQ0AimmgrC0zOdsofpSZpLD4ragELarDpHznaeya9Ydtc4L9cNJ7ZpHn5czn7dq5Hilz48t9f/+Rx+eC4Cqsq1XJS2xvc0HZGPP58RsiD7BK//lFGTXZPHwciFpOmQwSsb0JCQIxF8ExScOtYqUdRWx+alTtCvZTuQ+2HqB7zFFCuHujogwB6JiD03G/GYTT11F8ONGRQbNZ4nT7nmhMZS15Wi1sNGOVFX1UawoJJmi970N97Cg== 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=qJaR9aYPUdMDay2IHt8rgVgOhxvq61yKuwGDyIJql+0=; b=FiW40mAgLk5Qt5h2hI/PYHj4i1yAe3PA/SB/a86ks5FHMBm1rDyr5sEnDsYmJfHfnaWXcSyk6JYnlJnoiq29HzMsPggp1BOP6ioHBDyBfIH+5mmG6ygvkA9dN1TFbNlxcRqxe/PnTNXguqt8mdsTNHHdpZZlaSiatCLo8/KhA70= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SA2PR10MB4555.namprd10.prod.outlook.com (2603:10b6:806:115::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.17; Tue, 14 Dec 2021 08:50:18 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:50:18 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 19/20] xfsprogs: Add support for upgrading to NREXT64 feature Date: Tue, 14 Dec 2021 14:18:10 +0530 Message-Id: <20211214084811.764481-20-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: 998621d8-f6b5-4af0-2c20-08d9bedec10c X-MS-TrafficTypeDiagnostic: SA2PR10MB4555:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:256; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qhcTIFYrdmEcbT+LbvlizDM+GIB+Kt+1dpip1OiyDLMUV73vY3Yn4zIpryToENPnshxGEVB4VvnsaxwsorlA1yhd2KLSDVGmXX/lP8b/fBI5z7lbkpUSqkEPpmsWFPeNkU+tLK+/nhyTufEAjRAVFvimQRNahYmxP3zTvXGj6l0xXSw5AWHRyYEOi5F7L2sDB8y+dkPn9sH1R5ZBSr2+y+Z72Ct7SQkzH0VTBUIHDdn+cSpQ+OOWfBRX/UVrAlAxE2GoGQ84GXe4ELjCQYnX2tjwDv/zAMggfwfarmTV+6Eydx14tuag2KZPuhyvZfPRib7WkBtfW7cVMG9chKAFQ4UoTwYOeXo+68XZMOLOs+7GMB/RduqhVZkwWE/Ghqh+O6f6yOYR6n8b44FAwp1wxwKf2yvPO/l0KElgEFpx/S93OprEa4yPm8qEDu3c3W+3/D3Ln0Q/HVS7gVeYHArFZhM4YzLiHZ+vffkoiKaZI5GCilOYlBOyjgyIcVgke4CEY5LlJADlemHNWGOPwZnZMdlMlou/f0GPYWfxj7ys+BfspPYN1PUy6nvjMP/Vp78HxDWVPCp0DlS1ndxXgB5delBmCPVVyEeHsfz/bpf3ECzTsz8x4J697++8ybH9XtlbjACB5FQK6oqzbIFd89D0207VHF495aYA1cEVyovbkzo9+aUKm3fmlH2Amg2l5AtddiRTKqM/5XI2qKEFe/YLfg== 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:(366004)(5660300002)(52116002)(38350700002)(8676002)(38100700002)(26005)(508600001)(316002)(2616005)(8936002)(36756003)(66476007)(66946007)(1076003)(6506007)(2906002)(6486002)(6916009)(86362001)(6666004)(83380400001)(186003)(4326008)(6512007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nAzASAigz4NoGnGyDwzQ3oRI3RIyiGrNTxZ8spBdZ7Z+XCRyLSj5D5SKW4or5MgE7r77p8uggpy2GQt4Pp1Ts7/jA8InAEUHvWue7URFcr61TlZZnXOP4C1ZGaa0tEIsSVEZp2f4O7c32QYQqHg0MFWYNlR7TCCqAn7N7TlN6Vw5yDVApMab9eVCkiT8q0RhgRp1CW35C/pKbmrnQ5No+VQyRCiv3CssWv742esx8yViBuaheNoWycx5VD7tCHkrfinSKYP5XmkDwzHUE/hZxVYLCS7vwIfE1g6PdFRcRT1oRth4G5BOZimO97Q2UpVUCM7+DbeyLmqVO+T+VeAqQrrnCRwyO+3KNFzS+2u3v72pgAt+JFv2FO1qf9gBaTfi6PaRQ0xJgtIe0l3zJf4BQD9Eh7LRjgfdR+OayTXcYGClpQPYerAlezmd/dGB34ohteTcG8Z/d94F/E3coSQQrWIiCBT0mPqR5xKQN9DRlNnzjDS0nOIJ7ls46QJBWiRILe474xNOgHLt51bUZ4xRJMGSlYahi7O/uaIQGzS/V/neAfFK4dUFfxBl9Bqk1yAwMacIASUnNp/15w34FKxTWPIsWQMH2SRDp1d1yTEViaKyTlnJ/03eZtdc/iQCICRYlOPsyniFSYvvndAUxbmS2zeLufTr6BvOL78pSn7ZKN+ynTOGRVVdTQCIFey4scLKYQ6jBQqMMkBQii6Hoa7dYVhq0XPIpncEEtDWi1J0XfuOVm1IzX9urbB7EjQiEInAr8cBRtAEmrOi/1Lp2E07IWNJUdxG0tu54s8ee4MhtZ7xh2OSycdy66E95py+/WLnaX3x3zgeKJHOK7gx/1NsrMukfmni1Ae/l/yWDkvClM+OLYuVv8m+qtkAcdxWSIEo5so8vpZCfMsRAIw35X0Hmmy+uzv9V2EiLE2VeozFcGhl5dmqQyPRZaJ83JSk4Nnxa60OIIIgOvSBbpVgUn2TvCuaeOGZ98BCNckiQtVlnCxA3Fqyc52NJ4ak4qQzG513auEFYRHb3jd1cZzjI/OxiIEVoUJ7ZJqJ2/OH4zGSfItKnwtHyezvaoonLwBqVeg6Kx4x2Fk4BurSMNCQRv2/bJ/BRa5BeNfUSE4E6D7HF5LtlpaZ/fyg2YkqnNqEXKuksqhAP3WON1Ece+eRXxemrtqdhfTHqcEdsWk5zGINPEjJ9SGnNRNHwAK6eAy+PZD9YFIa67ldpl1QW/W2woGuvqe1mbLo/TnFUgoN0BNbCcOecRdW2UA+5KeO5ym2R2RclL+uQ7kAY+ywMAP+xnmTd1GP2Eu7UEPlYFOynMqrDcG0l4qqyZrYUOrniUmZ/co6G4Kb3CBYELonXHt4786BfzSbdOUFoxHHhEZ6KIjWBCE2YKgwn5meAgro0MFWmw2zEeL77FnCCDjGRBWmEnAocqN7mWywGn3abut7NxPRC8wQIlEiwOaLXR3ARW4Eve0VjtOBdsFQYxpzn8uFK7+AIFdQsL2D2IfIupJ8Sxg65Tu1a+FunFNGJjHcbBRp1+GElY5xN0NQsPZqMBsDoLPD2QnqOQNU/6VNeLuWJGk7SlBEdCIt6iiRnnEyIl5luSVtP/3WcMb2rKo0hoQ+gUOcmfhfXm/moU9WFFEiuwYE+pU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 998621d8-f6b5-4af0-2c20-08d9bedec10c X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:50:18.3838 (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: BvplRemWvVopLX8/f4/wnTZOKNzxnBA7TCbUjXurpgj160C9tGxoqGmWaPMax3qBc9l2drb2KtrI+clO2XcR6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4555 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140049 X-Proofpoint-ORIG-GUID: 4vcyLBQNE_2F0nOHew2GzTcZC2DYx0pB X-Proofpoint-GUID: 4vcyLBQNE_2F0nOHew2GzTcZC2DYx0pB Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org This commit adds support to xfs_repair to allow upgrading an existing filesystem to support per-inode large extent counters. Signed-off-by: Chandan Babu R --- repair/globals.c | 1 + repair/globals.h | 1 + repair/phase2.c | 35 ++++++++++++++++++++++++++++++++++- repair/xfs_repair.c | 11 +++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) diff --git a/repair/globals.c b/repair/globals.c index d89507b1..2f29391a 100644 --- a/repair/globals.c +++ b/repair/globals.c @@ -53,6 +53,7 @@ bool add_bigtime; /* add support for timestamps up to 2486 */ bool add_finobt; /* add free inode btrees */ bool add_reflink; /* add reference count btrees */ bool add_rmapbt; /* add reverse mapping btrees */ +bool add_nrext64; /* misc status variables */ diff --git a/repair/globals.h b/repair/globals.h index 53ff2532..af0bcb6b 100644 --- a/repair/globals.h +++ b/repair/globals.h @@ -94,6 +94,7 @@ extern bool add_bigtime; /* add support for timestamps up to 2486 */ extern bool add_finobt; /* add free inode btrees */ extern bool add_reflink; /* add reference count btrees */ extern bool add_rmapbt; /* add reverse mapping btrees */ +extern bool add_nrext64; /* misc status variables */ diff --git a/repair/phase2.c b/repair/phase2.c index c811ed5d..c9db3281 100644 --- a/repair/phase2.c +++ b/repair/phase2.c @@ -191,6 +191,7 @@ check_new_v5_geometry( struct xfs_perag *pag; xfs_agnumber_t agno; xfs_ino_t rootino; + uint old_bm_maxlevels[2]; int min_logblocks; int error; @@ -201,6 +202,12 @@ check_new_v5_geometry( memcpy(&old_sb, &mp->m_sb, sizeof(struct xfs_sb)); memcpy(&mp->m_sb, new_sb, sizeof(struct xfs_sb)); + old_bm_maxlevels[0] = mp->m_bm_maxlevels[0]; + old_bm_maxlevels[1] = mp->m_bm_maxlevels[1]; + + xfs_bmap_compute_maxlevels(mp, XFS_DATA_FORK); + xfs_bmap_compute_maxlevels(mp, XFS_ATTR_FORK); + /* Do we have a big enough log? */ min_logblocks = libxfs_log_calc_minimum_size(mp); if (old_sb.sb_logblocks < min_logblocks) { @@ -288,6 +295,9 @@ check_new_v5_geometry( pag->pagi_init = 0; } + mp->m_bm_maxlevels[0] = old_bm_maxlevels[0]; + mp->m_bm_maxlevels[1] = old_bm_maxlevels[1]; + /* * Put back the old superblock. */ @@ -366,6 +376,28 @@ set_rmapbt( return true; } +static bool +set_nrext64( + struct xfs_mount *mp, + struct xfs_sb *new_sb) +{ + if (!xfs_sb_version_hascrc(&mp->m_sb)) { + printf( + _("Nrext64 only supported on V5 filesystems.\n")); + exit(0); + } + + if (xfs_sb_version_hasnrext64(&mp->m_sb)) { + printf(_("Filesystem already supports nrext64.\n")); + exit(0); + } + + printf(_("Adding nrext64 to filesystem.\n")); + new_sb->sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_NREXT64; + new_sb->sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR; + return true; +} + /* Perform the user's requested upgrades on filesystem. */ static void upgrade_filesystem( @@ -388,7 +420,8 @@ upgrade_filesystem( dirty |= set_reflink(mp, &new_sb); if (add_rmapbt) dirty |= set_rmapbt(mp, &new_sb); - + if (add_nrext64) + dirty |= set_nrext64(mp, &new_sb); if (!dirty) return; diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c index e250a5bf..96c9bb56 100644 --- a/repair/xfs_repair.c +++ b/repair/xfs_repair.c @@ -70,6 +70,7 @@ enum c_opt_nums { CONVERT_FINOBT, CONVERT_REFLINK, CONVERT_RMAPBT, + CONVERT_NREXT64, C_MAX_OPTS, }; @@ -80,6 +81,7 @@ static char *c_opts[] = { [CONVERT_FINOBT] = "finobt", [CONVERT_REFLINK] = "reflink", [CONVERT_RMAPBT] = "rmapbt", + [CONVERT_NREXT64] = "nrext64", [C_MAX_OPTS] = NULL, }; @@ -357,6 +359,15 @@ process_args(int argc, char **argv) _("-c rmapbt only supports upgrades\n")); add_rmapbt = true; break; + case CONVERT_NREXT64: + if (!val) + do_abort( + _("-c nrext64 requires a parameter\n")); + if (strtol(val, NULL, 0) != 1) + do_abort( + _("-c nrext64 only supports upgrades\n")); + add_nrext64 = true; + break; default: unknown('c', val); break; From patchwork Tue Dec 14 08:48:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Babu R X-Patchwork-Id: 12675695 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 646AEC433F5 for ; Tue, 14 Dec 2021 08:50:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231931AbhLNIud (ORCPT ); Tue, 14 Dec 2021 03:50:33 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:20574 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231709AbhLNIud (ORCPT ); Tue, 14 Dec 2021 03:50:33 -0500 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BE7MkId004563; Tue, 14 Dec 2021 08:50:30 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=JRI21QCjDV+vJVKtFKVlGMW6DCaOiQnQBBVcF5nJzqU=; b=YsWiyQtsMQR/3/g6lePtonjrvDgqxapU8ZZsW8owHVoUrTBHyCRXGQRGW2y0moyb7GRp EUBt6WnY8SePq/Oz+hTuTftgfKUYAeNNoHANlWIaoGXBS/JCWY64dru+QojV/o56RIAy ZiEvaVqgFYv9L8ez0v11zPjiuXg6CZ8/BjL8Rmu8Sce99NcOl98r+PduNoM5+cVyYUP5 h9LOtY4jWD5HsY+WFU49c/TuRPv7gqXQmI5h/Zf2CPV0bN3NjNN7O5E3nxd/EWdPn07M 94YoWuvVu9UEGehrxajIEUWFc25W6bxHGD7GWsn5DyhZKhPTIB7h4hY4J0w0mGi6Gz+L qg== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cx3mru63w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:29 +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 1BE8oS16104895; Tue, 14 Dec 2021 08:50:28 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2177.outbound.protection.outlook.com [104.47.55.177]) by aserp3020.oracle.com with ESMTP id 3cxmr9yk5c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 08:50:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nfLowsqLGoYMxdKE0ywtSv6FL1wYzBYyZuOKyeg8ytNGCKHHcnUu7lpwbmnN28UNJmeeaL9HNZXuxNLPME9SGfcfPjGOwYh3WfJTG2uVe8+xTEILWbVvk64Qx2pHg8k05fd2gM3a6S9H4SwT0JMTE9bNS4mX0DExTf3X0UDA++O7Qn39imt7BRLM6EH8gIZYHsJlm/hYtgdrxqyRZ1E2UAifEWfjq9BD2SSjVecx/dqoMEzeUeamwJB5A70YVg5hAh+oDvKmXWiOX7Gw/7yRfM3l6HJLCg/J9FfKt1QEYcUgIBgRMlPs7IUC62tGgZ3LLKB9aGCq8MgSV/5PiZYlOw== 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=JRI21QCjDV+vJVKtFKVlGMW6DCaOiQnQBBVcF5nJzqU=; b=JhyXdY1kUj90ZMdVzZHhVROfsSB94Zrx91CAKKuotsfcX6X8uYCnCsmX15dm6V5kZVVMSLQzlJ2T1Td9j9ysjGXT6EKPp6mBdTRHOid6aPWCms/7beGiYnbnna4K9L+xmxZB+9nGkK68AJjYhwzEGBWo3PNvxx29SvdlrmkVDMljkDuv0OJm7VPa9ofQJZ4IHI5aZ/L8NZIudHxwr2ibAnsydr8bevJW+axAhqHxAYkrTlQbLmZzt7KJ6puKMDx22p6cuzW2xgKmuZKLsPUtW0iovSA1xoShujB9c6KmWC2ge6r3geEkOBLpmNU/KLDWGdfy1iIa//Cr4T8ht9eA7A== 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=JRI21QCjDV+vJVKtFKVlGMW6DCaOiQnQBBVcF5nJzqU=; b=aJXcVcxX352xtTyPk8d9+kz/r5u5GcAgDirjwmsVWbITnhdcRylvQWyqFCn6J7s1FF/HEfjAQBUHprTWOTpFcAnlqndzyoNnr+jD9m7zILeFJ+MbSWQk+THoQll+98aGWmF/tL/+cNawJtU+AKlekEiijJ56eRYsLHoZJBROdIc= Received: from SA2PR10MB4587.namprd10.prod.outlook.com (2603:10b6:806:114::12) by SA2PR10MB4555.namprd10.prod.outlook.com (2603:10b6:806:115::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.17; Tue, 14 Dec 2021 08:50:20 +0000 Received: from SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d]) by SA2PR10MB4587.namprd10.prod.outlook.com ([fe80::75ca:e478:6788:d21d%6]) with mapi id 15.20.4778.018; Tue, 14 Dec 2021 08:50:20 +0000 From: Chandan Babu R To: linux-xfs@vger.kernel.org Cc: Chandan Babu R , djwong@kernel.org, david@fromorbit.com Subject: [PATCH V4 20/20] xfsprogs: Define max extent length based on on-disk format definition Date: Tue, 14 Dec 2021 14:18:11 +0530 Message-Id: <20211214084811.764481-21-chandan.babu@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214084811.764481-1-chandan.babu@oracle.com> References: <20211214084811.764481-1-chandan.babu@oracle.com> X-ClientProxiedBy: MAXPR0101CA0069.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::31) 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: e315c867-f874-4220-5fac-08d9bedec268 X-MS-TrafficTypeDiagnostic: SA2PR10MB4555:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2089; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tImxLVNdQ+j99Q23QeqJUNk3ozi/uCPALGn/VL0Qc3z6TLr3bNpU2zHekp7HjMVUz9w/pdq+qvOZdWTqqb/+UzBcv9DZ9nX8iQiyw7VtjVsDLytbseEkBWPoHBqh90vta2GKVL/St8Lmj52c+X1iZ0LMjShgqKVvEsYhTb2bawjpDGJKFznLFZ3BYLvMO2fS57EM+akPZtK9bMgzSjH+A3ngHX3pGMr+vrTfIFdbD+KOgyiutSYGmfUaBNBFkmaDhaMjtwjLmTip1CN7942ZTwPJP6cMg9iNUOZk7Zgoz2cLhlxF8qDAEGfyQhXLBCzypH72n2An0mKq5oIbe4rSB/dVJvn/6Afiv+D3w4GmdES1tmFIWNzXPK6KjYELs/Xh1ugwhhT37mQliWb+UghJz1e9Mgt8bUBZifERJEiMU/9CmwZpq20e15osXRebFs9xKMmnuGcO2YKZ7DlfuAnTec257vlRuDH3neZIgJUBKiIG407XrynAiHj183GsrHxnUacy2l8SZfAxldgY17YiWwnkJlmjYOGUxwsUYEM/XJwV6XZMnayngqlvrnRckAAc+8OGXxYaOmOXFKKe1ZyEwuRTKW9HhqO3kS3haaIPa+MEAu7Y1H3r5WyGVpnTrYddh2VWcOQgvyOQgC6JkqiOI/R0nCFmtkVv2uxika6o+I0eeJKFWUX/TBIV/vBSSckWVmev+9yKsDdAlYyZZoj1mA== 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:(366004)(5660300002)(52116002)(38350700002)(8676002)(38100700002)(26005)(508600001)(316002)(2616005)(8936002)(36756003)(66476007)(66946007)(1076003)(6506007)(2906002)(6486002)(30864003)(6916009)(86362001)(6666004)(83380400001)(186003)(4326008)(6512007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: d1MYkEdYChL7yjHbPw+3a4EWZMZ5W3tKCl4t2L08tAS6tSRFHsEl8q1X7Vor9OQOqQE3+rHFxOw1nEhd+3mhDU8Cv2atm0w5GnuS1sVQMAAXGW9XjNXmqXfb/YKozOP9Ctwd13ddZqXgpK6nc8WBOopRzhdnM8NN1C8GLUVYzsML0/W0Wa0psnpeW2KzFxCK5QuJwamzSAdxnvHiYPV0Yw329iDyyf5+xQSg0GpipvtU7ls0Kwk0U0J1goFEQTeB+/WEffVZxm9au4Vp0Tt759XdocvKI9T7Vt3IotCGkoIMNcq9RWwaJ7tyIjq2bU/WTXH76Wt9jxZTzAFki812i9fDpzxx6bWRYrPhFO9NyDARLteSEihKXlbFIZljpyXfwILYx0aQmPnTcMC9tJAKcIJ6xwFO6j95Iw5Lg4iLhGAPO0MohpIDZfeqhCqH72V0sa/sEwtbybcj3lUdBuxmdbhhrhqVLZar3i4zsNEuXDr8NcvF3XXaMmSL9glHDtDI6RTIVJiDJjMMyhbFhOQYIzSrf87LjjkKomvgqi0VU9iynGxdwX8U+5lPrrsGx3WmTld3VBQUG1CKi4NMeR/KhsVhBIEnM0bFf6bx4jdTkw7hRlSpyB8jkP6qGv2iNzIzQBWCLuM/yFAm0VbRsyQzY5UedEFraj/KZRi8jacsQVZq2rWJWW/IyBnDV4FUpNCX5NL1BjtK3OWk55/vudIl2E8ElRFKjXM8HDmmidr/nR+ONairdxhVD2xyCi+X7iK1IiHZ1V2JAFPxCXIghslX0ZLh68zJtSc+ZWnMd33Ulh6yTzbEwh8QCXmXlr8wHHUMfQIGeNUSeXsFxAPmiclUixwVYE8Oy8n8kEtQ1MWpSYdwnudUnS4S2FVTBeL04t+cR3bAca5/XzWPrVN01AyaxFu3Aia7+fvuEtZbOZEAiGXHBJnuZcXd/hnc/IQrjuUXD8GbfB8uDHbO301X5jVlegqBko2xk8LS/yDk/+Z7PlhqXJLcsBBKGX13mASFHCrm6f2C19OjeTEIT/etiZxVwvGmKg8XFFcYBue/BmprR8GQxqIxr78SR9hS6c5iZXO97fbRCCEB4cj34l9hitK4ZaiAW28B8cu05ZxVinnPTJ1+5Us72p3rzVXS+KHT+LKw5a3OlxNK/MHxfk62J3Xs7VuA50tU6UlwaZhofAEs+utPxV6wnA08Jcdgc1tskAnsqqteALNyF+uBSq4MOv0ZvT+SEwe6O17k7KL5QLW9LN0ET2VrAJnIsIClJwjzhw3HtDxewRT6pTdb2nGREmIpU3LPEAHpesME+F3Y13XBdD7d137Xt9BeAzZoHMAIXra11FQEe8VqgUMjw0PiuUjwmCIu2e6NbsuWO/Oeff0/ATUcN/WFie3K9T0GEH8p3mPBHHwfyPWeyfJJtwlfNDlvtKMxBmMrVFRicnReXsxG74frMmPznMTeowI9qjfX80nKQq1HAC11ko9IqZCL5X4qIgX1DeBikdpYB4IvJdYivFjnKbbevr6BazHcdWVvgtKAIE+stCvZGICXuco6jjm/PBv3kxiEkgRz29SoWsaKici9cXYFlzHM3trIyo93iVO8W6K3Zl7FkFHlCmS8a+rUwx0Abf1gNdHC6Rie2NoN2cY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e315c867-f874-4220-5fac-08d9bedec268 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4587.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2021 08:50:20.7006 (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: pls5xzH7xl1zdrQa0xVmYpKtA9upnn4PkkuSVSMB6s+MSOrYOpPIZEmopTgiJ1wr+5Lp+OlbUNVCaFjRHtFKOQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4555 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10197 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140050 X-Proofpoint-ORIG-GUID: c3LOYzPjZcXd-gYdG6xKFxxSfu6q5tWC X-Proofpoint-GUID: c3LOYzPjZcXd-gYdG6xKFxxSfu6q5tWC 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 Signed-off-by: Chandan Babu R --- db/metadump.c | 2 +- libxfs/xfs_bmap.c | 53 +++++++++++++++++++++-------------------- libxfs/xfs_format.h | 23 +++++++++--------- libxfs/xfs_inode_buf.c | 4 ++-- libxfs/xfs_trans_resv.c | 10 ++++---- mkfs/xfs_mkfs.c | 6 ++--- repair/phase4.c | 2 +- 7 files changed, 51 insertions(+), 49 deletions(-) diff --git a/db/metadump.c b/db/metadump.c index 8a9aec75..3ed4d81a 100644 --- a/db/metadump.c +++ b/db/metadump.c @@ -20,7 +20,7 @@ #include "field.h" #include "dir2.h" -#define DEFAULT_MAX_EXT_SIZE MAXEXTLEN +#define DEFAULT_MAX_EXT_SIZE XFS_MAX_BMBT_EXTLEN /* copy all metadata structures to/from a file */ diff --git a/libxfs/xfs_bmap.c b/libxfs/xfs_bmap.c index 9dd24678..ac66a33d 100644 --- a/libxfs/xfs_bmap.c +++ b/libxfs/xfs_bmap.c @@ -536,7 +536,7 @@ __xfs_bmap_add_free( 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); @@ -1493,7 +1493,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; /* @@ -1511,13 +1511,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; @@ -2041,7 +2041,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; /* @@ -2059,13 +2059,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; /* @@ -2551,15 +2551,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; /* @@ -2702,17 +2702,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; @@ -2947,15 +2947,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 + * XFS_MAX_BMBT_EXTLEN. In that case, reduce the size by an extsz so that it pulls + * the length back under XFS_MAX_BMBT_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 @@ -3045,9 +3045,9 @@ xfs_bmap_extsize_align( return -EINVAL; } else { ASSERT(orig_off >= align_off); - /* see MAXEXTLEN handling above */ + /* see XFS_MAX_BMBT_EXTLEN handling above */ ASSERT(orig_end <= align_off + align_alen || - align_alen + extsz > MAXEXTLEN); + align_alen + extsz > XFS_MAX_BMBT_EXTLEN); } #ifdef DEBUG @@ -4012,7 +4012,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) @@ -4145,7 +4145,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); @@ -4465,8 +4465,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; @@ -4601,7 +4601,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); /* @@ -4682,7 +4683,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))); @@ -5682,7 +5683,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/libxfs/xfs_format.h b/libxfs/xfs_format.h index 0ed9d5ac..ac6aa23e 100644 --- a/libxfs/xfs_format.h +++ b/libxfs/xfs_format.h @@ -1073,15 +1073,6 @@ 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)0x1fffff) /* 21 bits */ -#define XFS_MAX_EXTCNT_DATA_FORK ((xfs_extnum_t)0xffffffffffff) /* Unsigned 48-bits */ -#define XFS_MAX_EXTCNT_ATTR_FORK ((xfs_aextnum_t)0xffffffff) /* Unsigned 32-bits */ -#define XFS_MAX_EXTCNT_DATA_FORK_OLD ((xfs_extnum_t)0x7fffffff) /* Signed 32-bits */ -#define XFS_MAX_EXTCNT_ATTR_FORK_OLD ((xfs_aextnum_t)0x7fff) /* Signed 16-bits */ - /* * Inode minimum and maximum sizes. */ @@ -1810,8 +1801,18 @@ typedef struct xfs_bmdr_block { #define BMBT_STARTBLOCK_BITLEN 52 #define BMBT_BLOCKCOUNT_BITLEN 21 -#define BMBT_STARTOFF_MASK ((1ULL << BMBT_STARTOFF_BITLEN) - 1) -#define BMBT_BLOCKCOUNT_MASK ((1ULL << BMBT_BLOCKCOUNT_BITLEN) - 1) +#define BMBT_STARTOFF_MASK ((1ULL << BMBT_STARTOFF_BITLEN) - 1) + +/* + * Max values for extlen, extnum, aextnum. + */ +#define XFS_MAX_BMBT_EXTLEN ((xfs_extlen_t)(1ULL << BMBT_BLOCKCOUNT_BITLEN) - 1) +#define XFS_MAX_EXTCNT_DATA_FORK ((xfs_extnum_t)0xffffffffffff) /* Unsigned 48-bits */ +#define XFS_MAX_EXTCNT_ATTR_FORK ((xfs_aextnum_t)0xffffffff) /* Unsigned 32-bits */ +#define XFS_MAX_EXTCNT_DATA_FORK_OLD ((xfs_extnum_t)0x7fffffff) /* Signed 32-bits */ +#define XFS_MAX_EXTCNT_ATTR_FORK_OLD ((xfs_aextnum_t)0x7fff) /* Signed 16-bits */ + +#define BMBT_BLOCKCOUNT_MASK XFS_MAX_BMBT_EXTLEN /* * bmbt records have a file offset (block) field that is 54 bits wide, so this diff --git a/libxfs/xfs_inode_buf.c b/libxfs/xfs_inode_buf.c index a484e14b..601ca604 100644 --- a/libxfs/xfs_inode_buf.c +++ b/libxfs/xfs_inode_buf.c @@ -666,7 +666,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) @@ -723,7 +723,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/libxfs/xfs_trans_resv.c b/libxfs/xfs_trans_resv.c index 4fd2c62b..559879e5 100644 --- a/libxfs/xfs_trans_resv.c +++ b/libxfs/xfs_trans_resv.c @@ -198,8 +198,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_MAX_BMBT_EXTLEN blocks' worth of realtime + * extents, as well as the realtime summary block. */ static unsigned int xfs_rtalloc_log_count( @@ -209,7 +209,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; } @@ -246,7 +246,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_MAX_BMBT_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): @@ -298,7 +298,7 @@ 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_MAX_BMBT_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/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c index 6609776f..deb3b070 100644 --- a/mkfs/xfs_mkfs.c +++ b/mkfs/xfs_mkfs.c @@ -2399,7 +2399,7 @@ validate_extsize_hint( fprintf(stderr, _("illegal extent size hint %lld, must be less than %u.\n"), (long long)cli->fsx.fsx_extsize, - min(MAXEXTLEN, mp->m_sb.sb_agblocks / 2)); + min(XFS_MAX_BMBT_EXTLEN, mp->m_sb.sb_agblocks / 2)); usage(); } @@ -2422,7 +2422,7 @@ _("illegal extent size hint %lld, must be less than %u.\n"), fprintf(stderr, _("illegal extent size hint %lld, must be less than %u and a multiple of %u.\n"), (long long)cli->fsx.fsx_extsize, - min(MAXEXTLEN, mp->m_sb.sb_agblocks / 2), + min(XFS_MAX_BMBT_EXTLEN, mp->m_sb.sb_agblocks / 2), mp->m_sb.sb_rextsize); usage(); } @@ -2451,7 +2451,7 @@ validate_cowextsize_hint( fprintf(stderr, _("illegal CoW extent size hint %lld, must be less than %u.\n"), (long long)cli->fsx.fsx_cowextsize, - min(MAXEXTLEN, mp->m_sb.sb_agblocks / 2)); + min(XFS_MAX_BMBT_EXTLEN, mp->m_sb.sb_agblocks / 2)); usage(); } } diff --git a/repair/phase4.c b/repair/phase4.c index eb043002..8cad2b80 100644 --- a/repair/phase4.c +++ b/repair/phase4.c @@ -372,7 +372,7 @@ phase4(xfs_mount_t *mp) if (rt_start == 0) { rt_start = bno; rt_len = 1; - } else if (rt_len == MAXEXTLEN) { + } else if (rt_len == XFS_MAX_BMBT_EXTLEN) { /* * large extent case */