From nobody Fri Dec 19 20:41:39 2025 Received: from TYDPR03CU002.outbound.protection.outlook.com (mail-japaneastazon11013013.outbound.protection.outlook.com [52.101.127.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C672E23CB; Fri, 16 May 2025 03:03:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.127.13 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364640; cv=fail; b=C44qlVPdtSYloxFheHhC4UKNroFZSi3xSNM8USWTvPFEcqAmc6UOWAvyYO6Q/SPc309xPlEwlN08rHFxZfVibSF9rAC7dFVZgP43WcnY44zJ6prOKxEJtyAWWGKrtmaW1JUqGUFH9LaQzyHlxyoXBg0VDPenw8bJpELEr15cA/I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364640; c=relaxed/simple; bh=PReEZLqM0M+gBjx3QUAmt7pp8QemDKMIk7Y5Gc6tVUI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=gkwcUmc2y/GZbcmZlgoHqHegDPvmv+xHJdp7FVjPUyvhbdiCXnJRRWS0cwZUhkLEVlQEf0+JeVwQKWBfFHe+WmHwhy0xk0kdKeHNO1zlStZK6sW3KN+YkdD6v3cA9yZWeQXb5eEJdEeoB2gZ81EpCDnL6Rz+s0Lpxih6dT2fFEE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=ktpuTd5A; arc=fail smtp.client-ip=52.101.127.13 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="ktpuTd5A" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JDjTpc93yZcvLCHD2t446Sd/FZALjW+dqqfGqQc3QA9Nga/OAIXyK61VF+XCC+gsng1uNYfbZ7A9gUr+wTiQ/rG/n6vIrCe9AzcgAxOX3sx5rvXi4BFLRuT6ks7xpv06qUB3xGME29Ed1QcwlGhimY4Csm1QokdXx4vAJ2jPBQxO4vxD4zo/0wdPRdfwBG6z3Bh02c1Jd2f0dIU82ymiFKhWnghjoGJF0W1WHBS59nggnI8dloZANWXu5VZ0HlbnIcDc2uw72ni82k3qVw4AS0X9zok8A5bYN07lpL7vMIhq3ivxas9HhocAyoyyQRpUPanN4Apjms68nxRvYo46lQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=aXN8R5PvW9GNG2ZA0rJQyGu1k265YB4WZxPO5wSflEU=; b=l8eBtc0sUM00zYAiAy7SgogNDu3DO8RxnxRv6EHziWlC84mFgbiGMz+LU1v/DfchseS6AvMwxPem4bPtgEFoFxkTBaPyxUZ8IMgs482DPsl9jmUuxclmGIgqhjbxU/DazQmTMY/Mi/aLjfjR9dprTTP08s1b+wCW9Wkpbx57JdAEzYoE8gk0VZNShn8UcjnI6k8Cn8mdu8nzUiPtTEBAKoSPboilmt0/1LYUNsoXy//7ioKj363Raiw3f44N2ffL6+bE/2wQs5yUt8UNyt0D8XAHbwhlaj9Kyi9szeBWdNW2XVQQti3Rbje5QKCE2dTNvNd85UfA4o2N5yMOAR0zVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aXN8R5PvW9GNG2ZA0rJQyGu1k265YB4WZxPO5wSflEU=; b=ktpuTd5AIoc8crSu2ptPBz5IwekbPLpsR+wrlwwiu3vyVTFpMRJFaed66afQ/mtgPGLrvi6pcvj5xqhYYWfm8aC3sNTW3JLPUss/Vqb7T+dRc2QEKmeyRLuzUhNQmVIc8SRRmHT/RfJyPf0CVSSAYX/bXioXmz2lx89scJiz5UQVB0mhH5waNrOwHVg+r7uNA7I8qdjDE0JBOYRwGcwEa6Bapv/Sa2YyMIa+hVR1/gGQU96e0Zhfkq0ZxAMkNJgZZ6mMNLJWzd21Gaem/YRX0n1VdhKaOf6u0ykTf9sDucnTNj8mMYsBsqKaA5LGvihn4JguIsajWZQ0emI/pjS8WQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB6159.apcprd06.prod.outlook.com (2603:1096:101:f0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Fri, 16 May 2025 03:03:55 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:03:55 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 01/15] btrfs: use rb_find_add() in btrfs_insert_inode_defrag() Date: Fri, 16 May 2025 11:03:19 +0800 Message-Id: <20250516030333.3758-2-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB6159:EE_ X-MS-Office365-Filtering-Correlation-Id: 9cd215b8-679c-4192-2919-08dd94264b99 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?sK6Id19gYAg31E81tw+uePIVyc6hlUvJ+AyQ9Q4uehfM1NY0zYPwBueS5iep?= =?us-ascii?Q?Xv8cvmCxaBW0PNxYie+VMd4KtbFe1/6jF+FFshZJBl7Fdcsz0Slh1IbOmkNQ?= =?us-ascii?Q?s21MlXdV9xk/x96MgYXAB0CZodGTYgVIWYLoCd9s8bLA5AZL7tLIbzdtkPLV?= =?us-ascii?Q?7TB+1AqUW93AB0tLsVe9ATDXu6NbhxhtiwvUW433M5DNvkHRG6whbRG3TMJO?= =?us-ascii?Q?BLqK5VBf6dunx6hfX9dBYfMDb//coCZPNnuVS8mtonzRL76pctZnC5+f4C6p?= =?us-ascii?Q?nSAjuMD+za8owENry1LqB57SSJH8QlAFU9rUEihjvtGUCygw+kxdA0TNc3sc?= =?us-ascii?Q?oCpJMHGs+wtE+qZmQkoS7tdMUEo3wk6k+/9IZDir9pj4aQOvxaDJvlrgQOTa?= =?us-ascii?Q?P/r+NC2vlXQZGfJK4q85ywqDaP1fyWanOP4hNpiHZVTj/iGks+G61O7cb3L4?= =?us-ascii?Q?E7xC111zZbxJYI/j1V/wPlpdE1fCqow5r0asCFOasDe8+e6t4m5GIYnTE56Q?= =?us-ascii?Q?4DIAjN+imS/0stGpGdW7DBEWXDXTCOale49+HoVwXHl1EJI7rN0Tnx1A4WHu?= =?us-ascii?Q?vPrwSFNR8I4ZNnHM0bTHlOyTtXzbEcRxZUGy9ri9gE6WxUVnC8jZvNgaRYC5?= =?us-ascii?Q?GtJKBi9FZT96nBJUGxYuT5a6CXCBqOjfnw/M+0Ho6WrLGLWUrApFKFw7LYkp?= =?us-ascii?Q?wjjCfNk0+nIxkZf8Gw0yumx7epcG6zNfCMUfLb4fGCWLJcWmkfeZchh4Noxl?= =?us-ascii?Q?c2XwEKFOnpq2Uu4DAhUNuI15xJYuwYcm8D7ahhAdWnubzoSHbjPhLnQEKY73?= =?us-ascii?Q?qMmtVWiaSFxCuo89y4DAGfz0AKAC9jPdKdZ2nH/GuJDujFTUwACk7DbDp66p?= =?us-ascii?Q?+wXZn1weMS1fKbWJ4qCpPNX8+hDFryM59hWR7V/rhRoOtmJzSqX0nA3OH8UO?= =?us-ascii?Q?YVYxqxLL6sAoOMymGs/mA6Oqr4f0eKRTs7WlEQMn1IsaQax66gPwceEwfTup?= =?us-ascii?Q?Y1+QoApd7cADKqSdKE5pYcLhgOiTZLTAyNmlpWqeqOcGVFJMLkjV9z/qkAdU?= =?us-ascii?Q?kFCvn/oKJqPncDqHV0gmXdJG3arJrvxnYsx1OIuyiSF8Wjfkuz2x9Uyc/iF+?= =?us-ascii?Q?IbFRDCbdW+OP7NycH8i9VwX9pz/mtgXWhGQ8vCTgifasbP82ZyDj9Holm0NF?= =?us-ascii?Q?sq31I2hyhdBXbMirUvxl7U0yPs0GUxLyON1gRdsp299qGPhA1212E185uH4z?= =?us-ascii?Q?d1thq7CmXjpqGi/fdtL88rn/0m5QIt+1SseSlReA0UIURIFO+0rDSOct/Pyb?= =?us-ascii?Q?UUKyniVEKUXI4a1DEaK5yh8IZ/sFnxONBXO1dKMBYonxvtQgcmHyUFh8eySz?= =?us-ascii?Q?uLx2vGMIHtruirnxQePWKbNKLEEGLmpsSLWUiTmKxH/zHMoXTzOgRMKipOGX?= =?us-ascii?Q?hHV/bA6lMHy+1YAjnENL6iIWzPpQOdhgArcr30kzzPoqFI4NPsphxQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?U9KXNhZlDabSsfLJ5J1Mi8pU3OokYJEbEsnlNCbJGlZB+2eCpjxCsxxzh4nj?= =?us-ascii?Q?Mtx2Iix9sJjO7e9dfx5PPedVXsY3uJStlP1wKL4yXcSWvu9ok0ytwc2sKa/l?= =?us-ascii?Q?+CgKjBtPQFFyPMXfwH6OCKDHSlZdAvQj1GDE/nUmvXXJz/yG73Eqszl02gPM?= =?us-ascii?Q?kdzcieNXUm9x1dtb3uJU+gPWi4+DqkiUSc6bauTpLJ3l+0XJ2F7xf7uQKb5C?= =?us-ascii?Q?q6fuxWkzJtlvd90NLXXAsf33Hm9KDS3+O1HE9EqoZlFQKj2VGUvDo9dz0qfq?= =?us-ascii?Q?OtNS0N4Od38FTXRBkWPtZFRK6m11MX7zLN+2yoHXIs+TIyttgvbJZfdko1xc?= =?us-ascii?Q?ex9/qspMs4EgvKkDP8k115CGlmuAdrokyYQJVFBcqRnRpglbMUtVEnKRUP8l?= =?us-ascii?Q?w/Clkv7mQgOqnW3VfOajMWRNWOxVQR+kuIpYXO52VaXxxYPWC6BYpwtcCWSi?= =?us-ascii?Q?dKHDZrhpw9ecZFCxRDVQM3KEmQdWE4oVqRbAQ6mLwN1aTJpp9A2JtjiuKDMz?= =?us-ascii?Q?Ghp62OmSjE0W4JfcnXNEMsXtRqIXJnnJEKm90Ck9lnlpH9M4wGtM6FforOmz?= =?us-ascii?Q?UvfCH50FQ4IwHN6i9giXDdxzTThCV3Dud3XfQogtvBeYs6s89FLN2kZltu00?= =?us-ascii?Q?g1Qqvb3+bU0PSq6Boo3JZ/AjxB3PZWx4BLa870VV2FTuoY1OBGSDJJx1FpAq?= =?us-ascii?Q?nXjFSu61RTxNGHhoMVJZnZXHR7eOnqSCqv8fIeyFyTYCGY6CxUNczSf0HAqE?= =?us-ascii?Q?7iRJzV1yqrs1w3Tc3w4tngt4UlAtXBNVLK11h7feTTcagIswu8l0DTqRCQZW?= =?us-ascii?Q?oOsVAKzNblyhhXoWLLy3OSg5tJDE7vuGdP9X2BflL6fuFX41YR+4Jvv9FIkW?= =?us-ascii?Q?A1FrWNKhGZONrkitLQC12YUyb0x370nIRCj7Zgu3TTZqeMosEcucDXnEG2wQ?= =?us-ascii?Q?Czlr8p7dHQAGk2Kv9CtBRFTMMVSFb+A33SEPB71Y3qTpzTPq9LHPPOAVBxOt?= =?us-ascii?Q?mlaObZjkUU3Vd8CNIUkU/nNFkjrIA6KdGf5EDOUI4XT0pdvOKGspAGAauLe3?= =?us-ascii?Q?F838VkH0IU5QzzYrc9uObQIuah3iEhK/AkMcDFen5OlS1Vy8qfJqybPSjLUZ?= =?us-ascii?Q?mUgVwHlZzbAzJvfjP+e1//Pw26YYEU5ksrIQ9PS41hV4e5F6tNKHOMltARod?= =?us-ascii?Q?1hrCHUCNxp4dAOvLSuteBjCLzPQvTGtWE4x7uw1OerE13QX1MaX4OgDzN1fQ?= =?us-ascii?Q?W16S0j0RVRDeoaMj0bxFjCbHjmOPWIj3wJSJmfuA84eV2EvfcJx6MMASElZ6?= =?us-ascii?Q?Eukj1vLc6IPanTtiYm3ZJKUetfoYTGGpR99Y6zrZMTBDR3GBwXlOvbLoLjwe?= =?us-ascii?Q?xEXsTHtgqkMY2BLsmzk8fVQKzrc4CbqDFtu1L47FCiSXcKnbeN1X0RaWZUHR?= =?us-ascii?Q?xNekf4B2onxZzeVZ7Pvzw627jAvKrh/JS0KYLMQdOJgM7YObsD+3UQNF8ym8?= =?us-ascii?Q?HCJ3nVgY0HTJQvAoxRENrDE8W/A/4xIgyDe5mXXd3ZHcdYvMyAvkC84yfSCC?= =?us-ascii?Q?71hpJLxkhJvcQIrRNCq2VGla76DGCmlg5pjWldVR?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9cd215b8-679c-4192-2919-08dd94264b99 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:03:55.7051 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zE/9AG5APJjBoMFonJue5t5Vsjai+PayHwgcRTqDcQthq9ZGpFVSjlwUDyv3vvkjj+yq9rEVVZ21Kpm7wvDJ3Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB6159 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search and insert code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/defrag.c | 51 ++++++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/fs/btrfs/defrag.c b/fs/btrfs/defrag.c index 1831618579cb..f334e703c702 100644 --- a/fs/btrfs/defrag.c +++ b/fs/btrfs/defrag.c @@ -60,6 +60,16 @@ static int compare_inode_defrag(const struct inode_defra= g *defrag1, return 0; } =20 +static int inode_defrag_cmp(struct rb_node *new, const struct rb_node *exi= st) +{ + const struct inode_defrag *new_defrag =3D + rb_entry(new, struct inode_defrag, rb_node); + const struct inode_defrag *exist_defrag =3D + rb_entry(exist, struct inode_defrag, rb_node); + + return compare_inode_defrag(new_defrag, exist_defrag); +} + /* * Insert a record for an inode into the defrag tree. The lock must be he= ld * already. @@ -71,37 +81,24 @@ static int btrfs_insert_inode_defrag(struct btrfs_inode= *inode, struct inode_defrag *defrag) { struct btrfs_fs_info *fs_info =3D inode->root->fs_info; - struct inode_defrag *entry; - struct rb_node **p; - struct rb_node *parent =3D NULL; - int ret; + struct rb_node *node; =20 - p =3D &fs_info->defrag_inodes.rb_node; - while (*p) { - parent =3D *p; - entry =3D rb_entry(parent, struct inode_defrag, rb_node); + node =3D rb_find_add(&defrag->rb_node, &fs_info->defrag_inodes, inode_def= rag_cmp); + if (node) { + struct inode_defrag *entry; =20 - ret =3D compare_inode_defrag(defrag, entry); - if (ret < 0) - p =3D &parent->rb_left; - else if (ret > 0) - p =3D &parent->rb_right; - else { - /* - * If we're reinserting an entry for an old defrag run, - * make sure to lower the transid of our existing - * record. - */ - if (defrag->transid < entry->transid) - entry->transid =3D defrag->transid; - entry->extent_thresh =3D min(defrag->extent_thresh, - entry->extent_thresh); - return -EEXIST; - } + entry =3D rb_entry(node, struct inode_defrag, rb_node); + /* + * If we're reinserting an entry for an old defrag run, make + * sure to lower the transid of our existing record. + */ + if (defrag->transid < entry->transid) + entry->transid =3D defrag->transid; + entry->extent_thresh =3D min(defrag->extent_thresh, + entry->extent_thresh); + return -EEXIST; } set_bit(BTRFS_INODE_IN_DEFRAG, &inode->runtime_flags); - rb_link_node(&defrag->rb_node, parent, p); - rb_insert_color(&defrag->rb_node, &fs_info->defrag_inodes); return 0; } =20 --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from TYDPR03CU002.outbound.protection.outlook.com (mail-japaneastazon11013013.outbound.protection.outlook.com [52.101.127.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0ADF11D5ADC; Fri, 16 May 2025 03:04:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.127.13 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364644; cv=fail; b=F+BYmhOIAiC35365u86lhGiAamrgu9e46CYnG9riSDaVcoeZGZJRQDXaVxcslDhu61qw8CNLGASzRlGVHZIBrXORQ6m/p/6kwDi/vfV37PQ1O1R10Gd9CT7BMpYBmTWJWEDpwGTpIPyypze3V0IvHo8jmM8oT2JDopVtYZ9E21s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364644; c=relaxed/simple; bh=YB0Q25RWRV+6jA+WgREGVlWV9EVP+27H5CfSFkMQhd0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=M6kAi0cYEc2AtlJIszi7Fsb4Qd0wsGco3kvI949Ia2FHPF+in0ih6oCvSyDDyyDyRHIQnhFotrrCZxbNh0Yiwcw1ss1+Rs4a0u06FVPRpm+QciSPe+GekV13OeGXptkCLaFUkrhkLrgU5lN5NMGMDfmrp7GfiRW2m+SiJayXRxI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=nC0Y4tuR; arc=fail smtp.client-ip=52.101.127.13 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="nC0Y4tuR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KJ+SjHzrbZJSvcHD7lfCYxgmjosN5q5N597UbXzuljztd/9NqnklHmnxFI3lvasYDFEOQxqd4ed9Sp8MmmztpXBoebo4dA2ALpyob6oSQxFH568P5gO1AI6XiyCXOJFyWrdo20EpMcSdZkEYG6nIU+pMv2WIV6I/6NApwurXiiEHUE9lknextxdXdp0ZPg8g//5kcdSFBx/x66aoMLbe0oXpnG0Xf8qDhGZ8Wh3jojoHpm72MpkFS/b9YBCb6pMzIZU0d6D7AuerLiMMI5nC6QPAlQXG9M0B49YIHkdGe0Pd7KSbb1CxLIecidEAqeYMMN24l5s4zL4wmFGokJosVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=0V46bph9whFZdVKd38XHX85Flw1S6RbQgnXzJziKAE4=; b=FHN8FAehxfB/jL0jww/IzsRkbWSTEYVqB0gW9l0x/DnrsJhBeYve5tsWvryqGsDJq3jS7SAhBiTmGMukJSRyHW/m63OZ1dV+5k3BtsuiSmLlL1vE9NQSCXut9iNWMCdsYxrZJ4yUBDGCaiJ2BxGTal8FOdkqj5BM0QuI1EndbLMBKpilkK29M8clxfr6a5W6gHdGIMnPEnsBfmpfH2LuTetzXIl6L3u6tljIHQVm9T3XYNlj3Wbk5pRGKb7tMk8tbDezWXzP9SY/981G+n8l5NIlv/iCSvvnIdGrS1pOuJxLQmfr9C300qVnGTyheBJbYMH093Lt/po9VSZnl0ie7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0V46bph9whFZdVKd38XHX85Flw1S6RbQgnXzJziKAE4=; b=nC0Y4tuRL/y9R6/ot5mlGqbv23HxUyTvQq5LyXhQMEEeM89Ikz3V4fx14p2+1mMRijGVu8tTmgxbz4dOomgrPfImz/kEpsMGGNizQ/5hZjgxWl6Ek/RVmu5JeUnLxh+THA6PIty5T0JTyiE/IDTGwOlXuXw4HXXfH8y3yciVwjdjZ1sJN9oRkwbAryhoRQyKv4Poz5y4H/+0qn6IJdImIsX8Xcr1WVrzKcZJ9OlqNB3nKJTrmwmUcNzN3eCv8SWdXEFiyOqRdtvPmZxV29B5VQu8nq/mUeXGEj31NIYglMSfzWoBVms27IJBg98eLIPDOqDtkZjWYkaV4vNW23wdSw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB6159.apcprd06.prod.outlook.com (2603:1096:101:f0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Fri, 16 May 2025 03:03:57 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:03:57 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 02/15] btrfs: use rb_find() in __btrfs_lookup_delayed_item() Date: Fri, 16 May 2025 11:03:20 +0800 Message-Id: <20250516030333.3758-3-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB6159:EE_ X-MS-Office365-Filtering-Correlation-Id: fd1165f0-2271-4f66-60c2-08dd94264cb1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?wdAjTeDZTEwtYQw/eG+6frTg8av+X2osloqVwjSkDmXPTB3Fs5A1C7TRHnpJ?= =?us-ascii?Q?E3Z+/0LcB8GRyn4r5DoNQmH2AN15liOVQlbva4WZFuIiYFEFFxPd6Qots3yJ?= =?us-ascii?Q?W/joWh70lyYJEKI3yJiOt6LireL8Xep2gzZPnXYxangOAx5ZZjj6PB0QYjpI?= =?us-ascii?Q?PQiwC79YIiUMt1UYAp5OeTP/FGc0jofpDOUpsoWzKdxoUFhAu7CSGsc3aruu?= =?us-ascii?Q?RlK1/E3zojEj1gKtBGmMYrEGh50Xr5dTZfLZJsZhJAxZJY4vGLEy4unslg/n?= =?us-ascii?Q?00oCUOPgqcGqv49/T+Q+ol6kg7rm2+Zyd89LGIk3D5CVuVFmsKZv4aaJjbsk?= =?us-ascii?Q?SD69BjNs6vf7StWi1k/9EEi1S/TpvkvXnZh0I6zIB+ewRC15PInJufhEkIlz?= =?us-ascii?Q?KkQKDgQBIUGM3cGxsAaE5Gf7vEbSCBjba9zTbiTNpw7BKRkTUpx2LmnFRqua?= =?us-ascii?Q?tkhZje+I6F9cu3egbma5Edfcqor0G5B6IoSAeHznlp3c5tk4USA2zHOIq8tP?= =?us-ascii?Q?aY6WXETFz70xgmyJ5kQFBk6YhoNG8qc83k1MO3JHAHFg3AV6J8maXoOu3ASG?= =?us-ascii?Q?clIGrbgvYLGZHKvVK9hC7UGWG5Ldkhj6lFXDhp7PxrKgdjSrkC2/egcdzyG0?= =?us-ascii?Q?0/CxIHy3XZGFIjEZ7p7jzoAjWsRy4OYos5G4Hn6tcS7rVA9G6Y5lTHKiPKpL?= =?us-ascii?Q?q97CMq7bGdg4Nhwl0BoLLayYzYJvWB96GI0CgOQ6/Y9yNtqmRitoEYO6/DcO?= =?us-ascii?Q?Q+mxWrAqNzjajEdfpn6qC/UInoS05nRH9s+qoTRRm9bHqlvmVR3um0uCli8r?= =?us-ascii?Q?xAh2ZzEPmuQl4XpX/9SMzXLy0Fh3b5xB/NJBolAvS/yKmuZSMg7oGoAZIBFV?= =?us-ascii?Q?606isSIMvozIrVc7HcAI7Vk2IYm/iOKgTLew7NQ08NpCqSU7HwZxmfp/LaLb?= =?us-ascii?Q?phwHtxVb6cZ500umv3dLi32yXgg3k1CwR/Wi80b0KeU10aM8d06lPOWBjqrh?= =?us-ascii?Q?zCQvzheJhxX9PI9NpxaOUD0FUhSK7t8yd76rdb+CGIQU9hLEqw3BuiBosvNZ?= =?us-ascii?Q?S3L3Gy/uRkKGKVFrBDxuREJjalp5vVx9t2FGU3GH99RFL5mL+h7izffjiFYT?= =?us-ascii?Q?SSK2Y8UH6/4147HKaiUeZ2fCiyJRuEeFRHLGLmPKCh+xBCCuc3UKwShtM1yA?= =?us-ascii?Q?DWl0k0RuqdIsIwscjaaVjIOwcJ/2c5TinpuoHjQs/x193epA/gZylKlKftlj?= =?us-ascii?Q?CO+tO2NMqa2bwFJj5ZCW3tkWsw8UlFgq+NYbkLYFM9p5MYCJEB8y3abZLgYf?= =?us-ascii?Q?inf1lFxluOnL5m+B01ZKQZaoeVArD8zhmhV7I984hZI1UP42U9JjYoIZ9AFO?= =?us-ascii?Q?1gnxInv0TUtZK19YkH0giLB6k4FmsvD24i8y31myLzYd0qjvXhw0efCgphlv?= =?us-ascii?Q?DUMFlSweE+jK1cxTULIrcMyOE1lt0QIAU9iV+0J10G+kpLOGdSv90g=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/BkEFMnPTNEFOYrmqzRhSbhIQJt6iNLofOVwMwabGrrS8Vmq70ZEtqG/p43i?= =?us-ascii?Q?XCbM32lNPfzo2CqgDbS2pisP2D4Hi7oJYjC1PbXS/KKsL2WNmuJQ/6Cyx8jd?= =?us-ascii?Q?f8Y4l1GcXyZ+VefwrrZsJA+GxZ9w5syyswH+YlgiRAa23lV3U27rPv/Nhvmo?= =?us-ascii?Q?5DxeWVcjdqKTRM7cFt0T9oqHn97JtNFcA3IRMbTwFnzg33BxAEyVsRzTUEuO?= =?us-ascii?Q?ax4b0QWU1wZjV1ZUZPlWGjT4sKGPOhO5pxgPlJ+Iy+4dEVvE6Pqjpz6u0yY4?= =?us-ascii?Q?leLacZW/N7da7j/UVqQHyK+LsdQtLfV8cPPD+w0TeLkNUstf3mc4ymxFOww5?= =?us-ascii?Q?wKSpTXzeJbRq+hQoUVX/9ninuZnr71DYbvZulPRFCtbx/KdAgxkpmtw+aOML?= =?us-ascii?Q?kDyaGcpkrVaR81bAu1wmavCgsR/yjGMMVtkaBJGGUQAo/yngUkF26soevmbE?= =?us-ascii?Q?V8cvfMKOCuO+5H3hpM8f1VAx3rqWe+axjNFC5SdxyX1HdeWl2pFd+YeQYia7?= =?us-ascii?Q?gVgamuiV6/FXPipjvc8+r7rKEHQyeUp4zHzB/DVDeBhxJL5Z/YJ+7mof8ewe?= =?us-ascii?Q?p2nkUsVp/YtlBIbrbR3lJzHt/ZvT0Ra5h1FtXZkglJAkPJuYv++NYfvZkWuX?= =?us-ascii?Q?qNHZTrZNEaxlaCmZV9ZJQ59Re0NPyqWmZu66vHxS8MNQCNjnYN9NQGmlBWYx?= =?us-ascii?Q?RuepHVlNEgx3i783YlkzEoZYXZM9j0z7QPLDJls0X7A6IvnMiMq0nvQsDmi0?= =?us-ascii?Q?4VVxFkZEfAxQD/d9SNZqUK9+YPXDwS9qaJtWGoH0+ID8FlvkJhjIJLCumcqO?= =?us-ascii?Q?tBLERgdE1IhYHeBb4mvK/ZD3pOHjHJprP3nRf990/dPLfiRCOOqvD8+H2rHz?= =?us-ascii?Q?K0lsXq/z8/0atFJK/5RkXGVS6Zi9Ziu3cLzQbMrW1xL6/6HsUSbX0DXCTz/I?= =?us-ascii?Q?aLB4dX23ezajo2VxolLijE2T6HFe5MeXe2kUx/35w/ogHZJBWp7bZMXka4oI?= =?us-ascii?Q?nfuU2bdugN1EjvainjcugaNOc9pJrxYF0IFSKwNlAEn7w4akvRDPmTqTbOjh?= =?us-ascii?Q?obhV9hrfNFcZfJkHcjOFTnQY+JIrC0k98csXqD9NdC36luwcezrftK5FYOg1?= =?us-ascii?Q?Hpk58hcaqsHbSdsEApZqUy4RcG+riwDqDzPQNGN9v6yvMT2gs6GCCoGP2YDp?= =?us-ascii?Q?WjkrGHtcQfnAv7D+7EdfyQ8O0GDRMFIpd6bd8B+oqqt/KX3dFq8uQ/F0+VtZ?= =?us-ascii?Q?5y4840i3JnArq5s+fHSFdSgOkV0RtL4eUwmx1Mdox4eF2kMP1jK0KoPQCPns?= =?us-ascii?Q?ThQ6URZPbVeqvHGbE4fUIlnAZjVsAEfKI+QHIqboDW0fNiUv+Nt8RqkY16Vm?= =?us-ascii?Q?zC5j6h39rwK3qOe3wDaj9FpHLFCeqohIaLNnWjD5+SuqPrOl/llVY4ADM3Kp?= =?us-ascii?Q?W2ZSiSbbBlm8ROSkbaIVcZwESNOAT5MM2eLw0LQUVUIcwhHQ//v9HOmOLg45?= =?us-ascii?Q?fgVL1Npjuy88oozu3qLkq2Yf1qmeyKq1DMDimkmLGsyHYW06h9BPRFBxKbBN?= =?us-ascii?Q?MfsN0QwmSRK6MiuoO+p69ZAPwZIEQmThNJ8NFJiz?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd1165f0-2271-4f66-60c2-08dd94264cb1 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:03:57.5623 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: x00XthKZU+WPiAELJ/2PUBYqgszy4e51AmEZe+S8OjdznQUeqUSuTYQQeuMVGTAw9nyGSPM1sTSQLV2UDD2e2A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB6159 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/delayed-inode.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c index c7cc24a5dd5e..3f696fce7c6b 100644 --- a/fs/btrfs/delayed-inode.c +++ b/fs/btrfs/delayed-inode.c @@ -334,6 +334,20 @@ static struct btrfs_delayed_item *btrfs_alloc_delayed_= item(u16 data_len, return item; } =20 +static int delayed_item_index_cmp(const void *key, const struct rb_node *n= ode) +{ + const u64 *index =3D key; + const struct btrfs_delayed_item *delayed_item =3D + rb_entry(node, struct btrfs_delayed_item, rb_node); + + if (delayed_item->index < *index) + return 1; + else if (delayed_item->index > *index) + return -1; + + return 0; +} + /* * Look up the delayed item by key. * @@ -347,21 +361,10 @@ static struct btrfs_delayed_item *__btrfs_lookup_dela= yed_item( struct rb_root *root, u64 index) { - struct rb_node *node =3D root->rb_node; - struct btrfs_delayed_item *delayed_item =3D NULL; - - while (node) { - delayed_item =3D rb_entry(node, struct btrfs_delayed_item, - rb_node); - if (delayed_item->index < index) - node =3D node->rb_right; - else if (delayed_item->index > index) - node =3D node->rb_left; - else - return delayed_item; - } + struct rb_node *node; =20 - return NULL; + node =3D rb_find(&index, root, delayed_item_index_cmp); + return rb_entry_safe(node, struct btrfs_delayed_item, rb_node); } =20 static int btrfs_delayed_item_cmp(const struct rb_node *new, @@ -369,14 +372,8 @@ static int btrfs_delayed_item_cmp(const struct rb_node= *new, { const struct btrfs_delayed_item *new_item =3D rb_entry(new, struct btrfs_delayed_item, rb_node); - const struct btrfs_delayed_item *exist_item =3D - rb_entry(exist, struct btrfs_delayed_item, rb_node); =20 - if (new_item->index < exist_item->index) - return -1; - if (new_item->index > exist_item->index) - return 1; - return 0; + return delayed_item_index_cmp(&new_item->index, exist); } =20 static int __btrfs_add_delayed_item(struct btrfs_delayed_node *delayed_nod= e, --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from TYDPR03CU002.outbound.protection.outlook.com (mail-japaneastazon11013013.outbound.protection.outlook.com [52.101.127.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3DD9322DFE3; Fri, 16 May 2025 03:04:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.127.13 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364645; cv=fail; b=LPk77U1Cikur7vDHj4wtsLWq+gYmQS90+oP/NHMBBb96XWE6uC1ikWBeH0YwRAWpQaLi8WNG11tzHb44jFOMYmnTF4KI4b0tigaXharbt6BWpc9vLbXUzE5NtLsO0EyaV0mJu4ykRkVZNeX7y+EgKKIwpx6djs6DnYgvRyZJjr8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364645; c=relaxed/simple; bh=7PZ2MifOEWEKzpo5xuEjpn9bXJHR56Ld97TP7t/T07c=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=G1y6wsfssaAwQNXgXMfilY3JkUlmooxwGSVepE4jjvWY2xFC1xRmWTWrNxM1whYPnb0523eLIHZGMPhBRg4VpNxLj8bzgOnmcstc3bOSdo3FrnZ87SMw4WdmlLWEAeHa8ncgt4RcMXhV1NTNN4yRsQwZcaTGMCPMxr5A/1gfc0E= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=bmbjPlsI; arc=fail smtp.client-ip=52.101.127.13 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="bmbjPlsI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NxMVumiLu2rMkFJzO+xncfp5JmYh5jj7pGR1HgpAiUXtub9um1j7evzxTQN/ciCy9DVcBE/GSthaOdUUvPLUxqfst04eHv6hOwH0xf7mYWLHlL/BFD/RjIh94QGyQSpBjs62GO419uzL4GctFwV1WahHTRtXKyGbUA4IhyauwJmpDp+Bvf2xqI7KXQrw7Qg3N+deUNy0PPhzXKNXAzgCxaTa+BUKLPPcjQFGlVGXFhSjrpR6Mu/m/YVIRK0jjRJcpEy05YHkkI1JjS2VLLjuLC6Agm95/pKWZrCRvb9kFD58HuaRFAXpN+JcMlchj1j3jqQY8188BUS3rQRxxeOUwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=htKuOTBP8GDYqQoVO7eBUybJaaWVk0HFs5mjQqjtoME=; b=c7ZXZwEFkOtLPuZfOLyQhZ35IStdDRXnD96DZHMgoGrXkLeEjp/o5tEzlwshqgoJqLuK2mLP+sZaDPkot2vJ6P8cf39qshIiDaad+lGoK22pekxNcM/tc7L7AiPRHhTH30yh81pVCKJfjvSSe5/Ze3LqvH7kcuHSLVzXOuwTYNOH9+Vpvs/a4ZxFamMHwjlYbrfXul3A3FFhxC8aeHEoUDrwb+tPRuTkz9c3dSjMMX3AHAN3BVXNyohSMx0A2lpN9ZMhaq5e74ED5oOXNTl4JhE7vItPuglILjM9CYnim07awIMl4Z53EoXyCNKX5TNsfvvKZF0ddZ8XGmrFlXzh5Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=htKuOTBP8GDYqQoVO7eBUybJaaWVk0HFs5mjQqjtoME=; b=bmbjPlsIv0O6lKjRSTeTDKGeJua/wJLFEgN2XhMtz9bHJN0Ggyac45Fmd+3eY5vEfc8+RQZcg/cC4xpCUDBNn0gXJ9eF3G51KX8VpPv8E47TSXYLY8La07qe6NjTpEuIz2vPmUt2oP1UjyvsW92AEGR6EGLZNKRivhgV/MCdZVdjC0iySIW0C1B0DZs07aarS9GRgPyViBcuOhmZEj5llaKwdlpvh5D8ZiX4fRC0LwAJGIFj2qcBJztbyL6ppoaHNeEnHRVexppdYZqZJyHb088ZFkWVV69G5TgM9zxn46iYNN8opyL8Hl7hYFjWHwz7e82c2CA+1B0EYB4tDGVqyw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB6159.apcprd06.prod.outlook.com (2603:1096:101:f0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Fri, 16 May 2025 03:03:59 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:03:59 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 03/15] btrfs: use rb_find() in ulist_rbtree_search() Date: Fri, 16 May 2025 11:03:21 +0800 Message-Id: <20250516030333.3758-4-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB6159:EE_ X-MS-Office365-Filtering-Correlation-Id: c1b1fe5b-76be-43a2-efc7-08dd94264dc5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?7n1eRR/jFMaY5qX2GgIDL2d7Pq4WGEPVxBzMZKfHY78Al4sZLtJ/35iw+/1G?= =?us-ascii?Q?ME2NiQX67HccaQYPAFyP9NBsYh1+IO41QJjeoLG4pnDjYUMmgZVXxEABq1R5?= =?us-ascii?Q?vPlSM4F+6ie/40v/DYAk1n5A8wd/iNDkowikuuy4Z5XidxTQDUM9C4p2iyFA?= =?us-ascii?Q?Y/g0DnRrDIarQCvM5JISihw/7X4FwCi/SFosYFTWDa2BHnMWdQqEVn7nSMMB?= =?us-ascii?Q?R3X3yvC02mfRpI6LU+RGfbFj2gPkKvBNuEHJXgZSCDvSBdEt5LSxR/Mp7Vuq?= =?us-ascii?Q?N5so/Xz2oGGHrAusNvUa6W1lIDJtbV23guFhBXjudAVlVXXFPD1f7laVlZxw?= =?us-ascii?Q?9TRML4DnqJhMVd0MzaSxRzD/iI44j0i+2u6r6XRDv9fDSs2CtV8vOUI2Wvsc?= =?us-ascii?Q?aKqjuYttuloi6/Ja3TQznN6R58NjpZI71BNLocx/sw4Eg8kAaKLMg3cUhbm8?= =?us-ascii?Q?KzF7L/CAy4/iME9ALsKfMRyJMiUfG4htWa+0nAya3zkDNhKQGZ8zMBbMd0qT?= =?us-ascii?Q?zpYj/QhHmwQAdaRl+qvwjA+9aZrPrny89m5pfodINt+y6AG+mFDcStLIFOKZ?= =?us-ascii?Q?W7jubQE/vArF2TxQ2uEoao5KjNcqSNWG5CkqTenZAjVnCGLEVlRBuHhoAAd+?= =?us-ascii?Q?k4BmjSahMBgGHbGm1yGWeo/MkpEu4lQlNKwmntM9sFbZVN37Ch01C3tTcrIR?= =?us-ascii?Q?ucCAfHJQi1wD27wjy2LA6N76SuypBFOh0etnaeKLUpF+Kyu9t8MsF7cO8SeE?= =?us-ascii?Q?pFJSgvAVJa+McV3SS7ETGAE2melrrdvlaQxXm9Hg7Tcmvn6WLnxzgObd75ie?= =?us-ascii?Q?ASIpn0v4z8t/Z/NLQyqwjEeG0LOVs4ncaj4K12DbRmJZ5ibl0mo2YZ4ipqz4?= =?us-ascii?Q?RyaPnsvj6DzuXZ17yhCeyw4AWdn9i6YgQtCRyeiwY9KXPE3mBXUN7mygz5R0?= =?us-ascii?Q?pjIh6XM4FB6+DErlT2Po4sPLNsL4mA/J0TXGgqfyKgS+SK5GrTu25BERH6/2?= =?us-ascii?Q?cxLt+XV+0zYY31uqTNnjyB7+KOJELnYDZhtPhiCiNdGSqQoUYYZlxVYtOoAl?= =?us-ascii?Q?VLr27zgRanw90jRwThNKa10KkEGJOer3NYBFefvzdvnAWOrQ38iEDFedIBDq?= =?us-ascii?Q?9RS1/AnXlrVUKRCxuCHkQTSDnye2ISWJjnt2CE8rnbM5CmruTT499WlGhsVo?= =?us-ascii?Q?k/Be1rMJnG/5EaefUye9ogiwjey7mB4i7Vzt1EVuSBSQpdfdLe5CTpRo1bK0?= =?us-ascii?Q?cLQsSBsnsz/p0J66ws8POiZxhs036MR4ntrLegcqGrIdJZN1nwERXqEllLzt?= =?us-ascii?Q?g3gPuBgVgdFde5u8HVHZVYENVI9QHkFERZjE1IYXpaDQKtK1vDxmAPs/GqAf?= =?us-ascii?Q?xheJ4i8J5mPlcCU9LxU8Nsb68NdsqhgELFTH4gHnPQmhwYAdWjBSOabadORl?= =?us-ascii?Q?hFCIFRCtMcN3o1oBXFwo31K+oNXxGro9xDxKjwC5/ub6VoLD/NjNkg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kFfU5ZFRECYT9fMxcM2YkK4PEqaEexD+V4J8swyonXJLTk/xVIQ8RplL4jOj?= =?us-ascii?Q?/6xn6zX1JEKmbMWfyKZ7oTb3v426T/TAo2r9kp17m2sKDge7TezpkhXSY7eY?= =?us-ascii?Q?qxCOdEeWMgMFuoA7L25LvdhTi92ZA/653LFYXym6yhU0rU3B8ad7aT+K6uiv?= =?us-ascii?Q?+q0Vwz5bXEHnrRkPLGZdkRfP2l7rSiEy65YU/zGL2e7rWk5tJjHhwM9akB18?= =?us-ascii?Q?K02HumMoCtb1/iJJb/y63ZEkT4bpnQEizid1uRfdCmA48YFi6IGX9rCByK4g?= =?us-ascii?Q?twMS8vDkA6V63an8wGJpsHvtJAga5ZRQQmAHWh+j8MZU3Eo/0A22h7wcC8gl?= =?us-ascii?Q?1Sstj64WSNeN1qywL+dBiWNVX6qh8LPGFv5j4JLi8x40oqxUNtn3c62wxMju?= =?us-ascii?Q?Ol4P4IaOMF1Sl+t188w7dpjStXw04d4k9JI18d2qTQAZ7iz9SR5ompXxQ9nF?= =?us-ascii?Q?qbW93I2QOoN1fXYq6SB7DEKAlZzDhQ06aSw2xU4Tyj6Yu+tqyKSwWnoqTRbG?= =?us-ascii?Q?DmynucGj2VdfAb1rmTZBUIZBmOKI3a6Y104RG8wC623lzZDbyo/BkIVCRGCd?= =?us-ascii?Q?VvW4xRn5HrVzES18HJ3Wk9DJMk3dWzVNOsuOFFDwhtUasNSFYi9SyTfs72GQ?= =?us-ascii?Q?amyzO4pb35kmmcPrm1rmBWlJpU9F6Iekh1IN+kmnIA9Kn0It0z/D668boTFq?= =?us-ascii?Q?nivAkiO0+OTRSNMb2AVUNDDr2fJEKZa0Ad9BJLPSuL97ZGF0sAUDzHhAfhg1?= =?us-ascii?Q?+wdBUS6WMWCVsADO8tRofBHBoeWZDF+oYOh1bUIW3BnbgqN4/ZHkThie2hoc?= =?us-ascii?Q?3VGRg3grW6MNXKo3Y1qttnu55ezmbM/c82cYzGs0jPWNkEMv1DsyM8FOHsFQ?= =?us-ascii?Q?5Vcb5LOvl4+ap6E6EvZflrA/Cvx3BJTpXNoUS7baaGpT4t80zjkaepvYdguB?= =?us-ascii?Q?4GGQEX6eASzUBJ/UmrIo1OItxJbNWC0on8N8qE687Ggefm84BjUdtGiQXQzK?= =?us-ascii?Q?ekHb5G9fVQDr5CQDYxRdkhGDje0yu1WShfd05vsriRP8hsl28XdmYPP1l1yI?= =?us-ascii?Q?FAXMJzSmVC0DTsJ23beFafvlj4wDWCjY1XKnfS6jrzzVi16IKeqGtZUTkAnW?= =?us-ascii?Q?4whHaG/XS5cpu3kP2ZfqUfws1LmGuS9UXspqIxIbAwbOPw+MMtpmY10GEA1r?= =?us-ascii?Q?CQ8YtiaOBwH6Tu84OZ/3q+L0K6q2KOW7iAYfvDM3X19o4fDZB+PnvOy1yzCh?= =?us-ascii?Q?bfwmPQuEwtw3HlWtn0a1vthcqydOa/ao0ktosrScppV/JfC/nzoI1nPeDlTw?= =?us-ascii?Q?r5cUtJSpNBKpH+XMSfjDrCtJ2a2aMi6C8rw01ITHPRLA6pD8vfRyDoq/BgBG?= =?us-ascii?Q?WXLqWzWkKbjnLnln0l1tV0WJRwWZ0aCrBKrX84Vje3AZV6Bdxc1gxpbk8ssx?= =?us-ascii?Q?bbNLHTr8iunZm0iFlx+z4u9rfUrexil1kBQOeTkpW0eJDFLzbHz54Ey4af7L?= =?us-ascii?Q?3GglgkNheAk7P3JMYr9vkyL2SilAlxi1df5gLwPJEe02pN84sxYjNQEplSi0?= =?us-ascii?Q?eFFLak58Dr3AwsmyVgC5zFrD5n02ONP9Mk/LSKsr?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: c1b1fe5b-76be-43a2-efc7-08dd94264dc5 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:03:59.3101 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /NEaGMlWehNAq70iS7GbSIJPGuhpATnyP9ZDEzK/7NMgEzK/e+wP+1pFqXTEY36KUILixNJuley4BOZtTm/MVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB6159 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/ulist.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/fs/btrfs/ulist.c b/fs/btrfs/ulist.c index fc59b57257d6..e1a4e8643685 100644 --- a/fs/btrfs/ulist.c +++ b/fs/btrfs/ulist.c @@ -129,21 +129,25 @@ void ulist_free(struct ulist *ulist) kfree(ulist); } =20 +static int ulist_node_val_key_cmp(const void *key, const struct rb_node *n= ode) +{ + const u64 *val =3D key; + const struct ulist_node *u =3D rb_entry(node, struct ulist_node, rb_node); + + if (u->val < *val) + return 1; + else if (u->val > *val) + return -1; + + return 0; +} + static struct ulist_node *ulist_rbtree_search(struct ulist *ulist, u64 val) { - struct rb_node *n =3D ulist->root.rb_node; - struct ulist_node *u =3D NULL; - - while (n) { - u =3D rb_entry(n, struct ulist_node, rb_node); - if (u->val < val) - n =3D n->rb_right; - else if (u->val > val) - n =3D n->rb_left; - else - return u; - } - return NULL; + struct rb_node *node; + + node =3D rb_find(&val, &ulist->root, ulist_node_val_key_cmp); + return rb_entry_safe(node, struct ulist_node, rb_node); } =20 static void ulist_rbtree_erase(struct ulist *ulist, struct ulist_node *nod= e) --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11012054.outbound.protection.outlook.com [40.107.75.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4ECCA2356C7; Fri, 16 May 2025 03:04:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.75.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364646; cv=fail; b=e1YgbPUndgYdIPKOJ0vPQzCLjTvWQk8qr5Y41X7HfBJKQK1AwOMJPJJl7sWtJOyRq8MRijyzT96elB+Ga2gzZ0QuAdKozWjPy9Z3LymrPVboPBWyRFA3IHHvvNSEqYclczZmyPlvtJEmUT23Yk+RO02nHV48+9jr+e7xm16Lbwo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364646; c=relaxed/simple; bh=8Ov6sgGyhtM+lC9FPsbB3l+0dKWBZsLDaBY5k8id8yg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=EaKRpmNZOvJnreCxEooHWdo6z9CwBvzRtD+k3+R0RgbeXJ58QC3limfD02S6rkVo6EDQS0AhqqcLzZ0M9AQO/pBOhtgN124j5zIZitGa05M1L/Pw1Yxs8reGtVWuktMUCi/Le4vg+jhxQJ+/m+bYP9ORw8uBTZ0rFGgV5vrlwdk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=Y5xehcm6; arc=fail smtp.client-ip=40.107.75.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="Y5xehcm6" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=n0ihtrC3dVcXjEBSeHU5qjbsX9NGVTzyfdv9DF7AhvNrRMxwkBeDKaW/IlaiLF2SqDDUTBT+D/zQMDWRlmRFaXRh2xArkqSGuBAB2SNVfPyix1hjw6gIaCjTPC7JLFZZll4mt3sjJC1eU8VRRU95Fkb1cgXyBwFADOGJyuTZBVLQ4zj0CTBYbjTEWDZaRtjp0OsPqx9WllZrw74axgq7E8JSPFeDl67YrB9CyLC9s7YesJZfFDFx2tQKZ8UjWu4MeXVM3CuhSnQn8pThSP61Pwp+QpMVUMlvpkZIEyZL8EqlGZ1cmSlStmoQYreFjpN68XDLW7u4QLZsoLjhg5GrLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=dUedylmjIvL4jTgkVz8ym1zL9IdhzLKRMjPv1H3/eCU=; b=ZnlJsEZhidQqAaX0bpWCFlmTvaWe5etFg4Tqkez2CYC4Do25O4Ea+ClTEJQnaA4obNv7Yxw268GkP7gWDxcXfHkJ5d7IhsVl94tpwLRV3KNWjW+xcGetuXYx00guigSBLOQSuWibIf519EM/LUXLy65O70eeZaDGy4+Ah4Z5QuiA+YJN23h4zcCus1c0jbRzaSKwL8ck3lFQBoXQgX/dFekdL3+DS+FTMDRJKFyahMdSUOAZGh3VkBu6Tn7wAY1edzDFSvJI+0qakdVNwhimVyzdmjEN1LZxryaeX5LGfiKJI9moj2d0qVwYz4/FPNxlyZ+eyYlT6DVf06aYTO2fNg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dUedylmjIvL4jTgkVz8ym1zL9IdhzLKRMjPv1H3/eCU=; b=Y5xehcm6Fe4VVYylWuUvajEE+kkub2cTH7qTtYagNeJgX1DGhIDbt9vN75drq99VDu8Tz0xrzsODveTx3NSR3U6kh4SiIWX+1Oqw9JwdMXl33zV8OZ4U9G9YSTqUcIH5g230WJznbAz0vxOY3+/aFCPAoDFhWoD9RlFrdo39Tl0MDXmrOWoLTyMxnIcVwFDfotgu3rZZ8KHHdhs5DtNP52idTWd1usFJqrkPr1fGMJcXoOyGF55YJxjdqUF2ihxHFE79HdGOw75RndCmwDFAQKOC1kpPqt4WaUbMourtT5u+6tGF27X36Q/UYg8l/A5kBRWjpdkWyBag4OL5NTjfdg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB5200.apcprd06.prod.outlook.com (2603:1096:101:74::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.32; Fri, 16 May 2025 03:04:01 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:04:01 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 04/15] btrfs: use rb_find_add() in ulist_rbtree_insert() Date: Fri, 16 May 2025 11:03:22 +0800 Message-Id: <20250516030333.3758-5-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB5200:EE_ X-MS-Office365-Filtering-Correlation-Id: 683dbe8c-e7dd-4326-79d0-08dd94264ed6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?yCWSmySkzwYCiKQbDuR4QcNlwpHlIS8wZyh+SF7vpXYGgjApspczPldLlbsI?= =?us-ascii?Q?oWe3xA9GDTRqtsunwSFZrvanXFkPBQyVsnJ/yAyYp8MYq+mvKdJ0BAB6k/Bs?= =?us-ascii?Q?NN3VBzfhe5ttawcWy74ytW+fMrzvg+M5a8stsgLRXpzze7UyTa2+a2BAJiPY?= =?us-ascii?Q?nhtQljaqAP6PF0v9EPps/NE0F973INlEH9HnkMTzjkPD4UUK9RoaDDGDwLQl?= =?us-ascii?Q?gud+wMlYn3UYGwaiPUiDwS17LHigdEMRs1OTFIgi1Dy3BRZ8/XbNOS4SQBXl?= =?us-ascii?Q?YIPp6SC1QL//KFrl/aW3BpelLPMcJeqTlV8Jf0UKxgJw8+mjLeKCH0sHxzHD?= =?us-ascii?Q?KW4AU9DKwvckMC9Aq6/2oKRGWv1o18CadmoJRxYrk1d8eMcKR3lpgCYJi/uK?= =?us-ascii?Q?tryZI2VChRymDe6y/fG613f3twgvVY/+mo5VRIelpqdt0lRzZJV5bdAMI+1S?= =?us-ascii?Q?7SVj3nxtKUM+1JnGVm4eJjLcUhhsl62vXHH8JBGXj/kBC12ej18Sl5sRhCPh?= =?us-ascii?Q?IJTnTN/9dCOGVlmkirKLBA2qCFfULPpC1v+ScElTqYYOVAwU17HxXorVTqQ1?= =?us-ascii?Q?RpVpJ8sCviCFGq5YK9p6g0OZSTi0jHTICfguRxf+AG4g7P+OFQZu51lKB6lN?= =?us-ascii?Q?OXezPOaiUiv4AExLXmpFfBbf8zgF/MPjqZrOYntEa8rgIHSeYFPrRuwrOmDh?= =?us-ascii?Q?Ufpt4Rx0cI/W8O0oXn2jrO47kTZfnCLfLixxyF3mA/6mY7k/vKAuA7FcD6XO?= =?us-ascii?Q?jClHpcA4Ofm4X77XE16R5Hd6hHTqo47o4VpnOMxWh9y+QPb+3W2y7NUD+x+X?= =?us-ascii?Q?y1wgqg3qAHbI4dbZzGHQ1GJndq0MhsoJx60iitmHVs3rrs/sXpAOAq97idsl?= =?us-ascii?Q?xsd1NznuYXZ39EaF/MRmJdhRUCY/XAJObpac47Hs6zGn+VmVGtCJb0W7G23n?= =?us-ascii?Q?D7eFkholsTEAqI5B/me1I72Kv7nNrcbbPsuKUw6Ti38QkUswiIICN9pu8H7g?= =?us-ascii?Q?FF2Giy9X4rDfZ5gar69RVZNY/QmJjxOLSfDnrOXTw+N7sg7m10UvrqWAwAb9?= =?us-ascii?Q?7iVKF29y0C3WFac6Rmt5mInH9fXuPGpMfw5V5r//FKPDUrlG4N32itvY8bPy?= =?us-ascii?Q?SzimevWF3u4mOlkqxKD4PYYjYftw0fdYKfQRAIxkWTKrxSkVUhavw5hJzj1y?= =?us-ascii?Q?0QJfYG/c/557PHT+jRYYiHbNQ7cPRMY8LLRmt375UQKhvb9hDpUQRpNES/Nu?= =?us-ascii?Q?VgGo9ziyC0jc65jb4epsPxAAzdTXEuHnI5y4CgZeTyS1D9r/A2tVB5ZqEXCi?= =?us-ascii?Q?/+mLU5Fg7NDiA6lnAcsnrCSpNU9k/hIkNmcekPzM4kvD3vLz1Zm63w3q2V8F?= =?us-ascii?Q?oG7CEmMbE+/inYWBo4fmPhc7ECch3EwC8GCE3mAXobEHXBu6YSebDDjcfB9C?= =?us-ascii?Q?sJJ+cJk2uIQVSfavWlUPV+5E8hq/27FXi4jLJdVCsOMi0Lr9wnzQog=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?s5Q5T95M4Y1guGbAoY45KqMob1qZQPY6EvuqJXcdgpbfaRF3Nvf/BhGiSYTe?= =?us-ascii?Q?LqSJ3UIy5EoEyDgRMpJ/VZCuC4KoI8IXc2PO/B0gWys3q1zI/tm079Mrhme9?= =?us-ascii?Q?slHfgOYPXA/bY9qum5hZ40Xx0xWSCGJgaDWt70sDHGEM0k5ml5w1qXQhYskq?= =?us-ascii?Q?4zs4kqjE2RZGh17FFziGUKmfBbkueTgVcwMS2fFk/jVl1Rk6/EeO+QjcXktD?= =?us-ascii?Q?Rxyco7ZU79OFA/jiN7iObVs2hKUQLeKHpQ/TB7yL1mkQVZU+HW8+vGG4Iz37?= =?us-ascii?Q?KU15Wst/uXh3pbZg3KvBr6jOn7qSpNGq3IbvqTVIRz3w0XzD/czYHjax/S4a?= =?us-ascii?Q?KVtyFnGZDdOqVZqJzH0GiaKR05HPHCwRdST2peKq09ZiN7KYqTauETW5h4xO?= =?us-ascii?Q?X7oSfxxir6Xxt1jHC5ZHZyydbJCmQHIE7akzDWX1ZjFEF42zNHaSuhDEVdUF?= =?us-ascii?Q?jP4qSPHUnnA4epWThySQbPur4NH5XA4mTc+Jj/eyVBnkOSs9m5ArKBZGC8CI?= =?us-ascii?Q?P+g/y7K15SudxAWqNpp+Rspne8p24xrmPfXoKuqUNaYo+AUJAV8lh0BOWKfh?= =?us-ascii?Q?X2zZAYZ/cWOLdHUMkBJbo1iIYEJImAKbu0kgFywL++Ae19XZytUMrvamFmXw?= =?us-ascii?Q?c75WVk2zVEBF51eIS1kpxcsYcGs+exv2/x0O3M48Lz/gw2ZdWo9lUqD1eurZ?= =?us-ascii?Q?hhhTViHQHJz2A7B0dzIpUobDISE4Y+FSfmP7p+uip4tdTb3uPe4bTgDeGUr6?= =?us-ascii?Q?jm83gZ7KsK8yJsDzUwxYcvGFibOBG8XYeFn/+HkBB+Ehu5qTHBHs75CporoJ?= =?us-ascii?Q?vzOpjGv6JmhqfeOwnkjJ/kNTSQnKiP61hg+5U2wPfL98+4S3mFgMZSgqL6O9?= =?us-ascii?Q?yUqb7Pdzlmf5tSdDyxP5sCVwGSuFPvOa3vbseXmiGEQRHpsIMiUpuY7L5e0S?= =?us-ascii?Q?ZrwIrj9osXmAGt6o9BZ3qoeVH81ux6wxYkmsgV2R17gJnQIQkAN6H6+Thggm?= =?us-ascii?Q?rIeGg/vMWyH9FKkhT45wQ48rR6ZNl/kSTff1AWIIghjp2JPZlLaNSGeZ7jGQ?= =?us-ascii?Q?xabe0FzNXiwsiV0budo+FG838r0wt5gVoxU8UoQxE8NntT0licntvhzc9asg?= =?us-ascii?Q?pJbyf1Sdb4K+JL54kIRw8Siw9seZ+9YD/sd7uYiUlo4TQA/YSfobWI61KWpK?= =?us-ascii?Q?ymClwhNeWgCdY4vjsYXpn6QBbNsJWLf2yelZTX6CTvPckVTQVT9nOx1bXg8S?= =?us-ascii?Q?yUR9Y1cafX7qO2YOyOf78SJ82mcohi2QurfPeYwj9ydJveWeTOXHM19Nwcx4?= =?us-ascii?Q?x+kPXIukhk9CrD3C3s+Jl8UwaCd8OX1Any6+Y/mxauAUEoEUFEkW59uoTU3/?= =?us-ascii?Q?IfGv7MzPTNC2Szc34FujC0Xx/iyILglcl793++HuF8/lpkL3NMI5ghs8HSna?= =?us-ascii?Q?/wYfWkBP5x/iwYLsKHjTIw3SFttXbaDSr27F/24x3EgBZGill4dDQfu4OEnP?= =?us-ascii?Q?MCIDHS9+eOkTGfLy8pXkmzciOPvNwaL7w0RuyJh3VkYVJLcMM0l4tHax0wvd?= =?us-ascii?Q?QdEDiIT9QG7+LlaewQvNHJrqH1gIa7RMSldvXd9f?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 683dbe8c-e7dd-4326-79d0-08dd94264ed6 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:04:01.0721 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1Yt8MuRbokk+06zxP9ohNlHg8mCT/fB/VNJY399Z74zlkZusUnu0+VrK/2kLNzA4NY1ELsPUW4XmxHL/QqSDng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB5200 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search and insert code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/ulist.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/fs/btrfs/ulist.c b/fs/btrfs/ulist.c index e1a4e8643685..f5b156d89189 100644 --- a/fs/btrfs/ulist.c +++ b/fs/btrfs/ulist.c @@ -159,25 +159,21 @@ static void ulist_rbtree_erase(struct ulist *ulist, s= truct ulist_node *node) ulist->nnodes--; } =20 +static int ulist_node_val_cmp(struct rb_node *new, const struct rb_node *e= xist) +{ + const struct ulist_node *u =3D rb_entry(new, struct ulist_node, rb_node); + + return ulist_node_val_key_cmp(&u->val, exist); +} + + static int ulist_rbtree_insert(struct ulist *ulist, struct ulist_node *ins) { - struct rb_node **p =3D &ulist->root.rb_node; - struct rb_node *parent =3D NULL; - struct ulist_node *cur =3D NULL; - - while (*p) { - parent =3D *p; - cur =3D rb_entry(parent, struct ulist_node, rb_node); - - if (cur->val < ins->val) - p =3D &(*p)->rb_right; - else if (cur->val > ins->val) - p =3D &(*p)->rb_left; - else - return -EEXIST; - } - rb_link_node(&ins->rb_node, parent, p); - rb_insert_color(&ins->rb_node, &ulist->root); + struct rb_node *node; + + node =3D rb_find_add(&ins->rb_node, &ulist->root, ulist_node_val_cmp); + if (node) + return -EEXIST; return 0; } =20 --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from TYDPR03CU002.outbound.protection.outlook.com (mail-japaneastazon11013013.outbound.protection.outlook.com [52.101.127.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 21FF622F747; Fri, 16 May 2025 03:04:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.127.13 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364647; cv=fail; b=C8BdSmY8f6ZXGnnfMBz1WoUmh8PYUksA5rRWvSVlVFsAeLDVT4jhNOxQ6xu0jR+dkpCiOxuGf9jODycU3QlazT4kSxV+9wIzm7UIKhCUaijzmfOjLhG8rcMofosdC6ZbcFemVUHSxjTASm5aUdXtt4IKxGozg4r+x3uZEqoJtb0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364647; c=relaxed/simple; bh=/veSfyRs0djxI2qAhtC56Y5c/ecYHUCRA4vnLiAD7PQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=s2me9oxoOrsvti10uyjFA+SkKJPwBEfRpBimg+1WVJdmmKJvKFy5/f9+f6QDkajnlA0KbZ3EE9cy1w1AQCezk5VzkD5x6g34Gswz4EXiWNH0y/d76+IIdAaXf9J/wG2LSG0s0l5XunjGwfHqCYb6H628jJb1XqoOuWE2Txn9koQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=HDMwj6+Q; arc=fail smtp.client-ip=52.101.127.13 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="HDMwj6+Q" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fYZoCeS6G3DY5b+5Gp6oegNa17dX9SYMCwPB+6Shw+ccvvvefUOqzGhjXqw01PnVKRHrsK4S/tE8jNuwNqIx2GBRsgwTv5gQQSpDGIgRBFERDWaD/AurQ4pW86R1qSG3RuVOPLUDs2sgXds3WA/6zjYW5AWxwzbs15wqJLpxB9mx/kc5dGkBUIVTv0FFzNr+r3Fj/FHhw32KImtqF8/DcShuKvgzPTlTaq9yL8H0ZVU2wXkLoJXxgnfdBX7dZO50ICrirmOwisgHp1aIhYo9xK2SwRXyTMbFm9aloEJafRZ18l8X6UxkEaTa0iIifMt3UxXSerzoilJgIqiQEqcqFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=l+r1EWZrxurvB1X9VtgDQDSWkZjpA1ILkvmM8pLlz4o=; b=ukFx/gqz8Wa1ymhsRcvjjExewx2fXBHfIlheboYT0SrQWvd9oHu3EfTvUhdNUFVSpNP10HWwA0r/irfrE99mdQQdyifV+9dVcJGkCL+e1jHEt1hu1wpk6Je0R5TIPz8EjN4i2NNXNM3/jGBgP80xDv1vroYC9WALfwvVZEXElSB9O5HCqgmzOPVw7/E6fMFEGQEoppCZGjvzV/vv/mOJZh8iGJlvTGDoyEp9M1FbP+gqUfZcXZ1BtYz8yg2XCMI/HgXOblWSgRsCb+uf6gcLDn53h0lAqNrDeATT0TiBlY28Lz1l2hP1XnIb9CL4v3gMztZ8ZXHbmNGSpBQ/rWKW1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=l+r1EWZrxurvB1X9VtgDQDSWkZjpA1ILkvmM8pLlz4o=; b=HDMwj6+QulE08kOpu+pXUUVWjaPke1WRqwTen9NBGiVHmJLQ+DieF2Zplz2rQGioPDC1VBlXdg8uG+fSZNa9hw7LG7kowCZt74ZMHF0WRNip1YkaLFQkMIjatMr3HQLfgGBhYlBhtRnkHsuxbLR9bCua/JxcY9B/dQ4MO4bAshfOPLeHgudS9r2cqT09xV7nCa0sosN9SLmgImdhqLKaLGXEgI7KwDVokm1gJzFjWkCNi2UBUrAXaQA3DSN6Ykf2C+XXZCBA1DPx+zXFLHcXm/R6yDFKNwS5PqUwEeXvF3eX5UY9g3XU2352xf2DkBaIys36a4dCxbREL1nG+qWeWg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB6159.apcprd06.prod.outlook.com (2603:1096:101:f0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Fri, 16 May 2025 03:04:02 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:04:02 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 05/15] btrfs: use rb_find() in lookup_block_entry() Date: Fri, 16 May 2025 11:03:23 +0800 Message-Id: <20250516030333.3758-6-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB6159:EE_ X-MS-Office365-Filtering-Correlation-Id: 89ca4871-3821-47c7-e72b-08dd94264fdf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?iGPO1p2wq5ca2i2YnqDNZ2WkZEELjP9UBQSxnccr00Mxz5WFpdZxYe7sXxWO?= =?us-ascii?Q?lwV3dMa+8YtWS5i6fmvuHQamn2LBKm5ImqH4JaokWaBHf7hv0MT7pS/XebQ3?= =?us-ascii?Q?DIFRWlbOb6nqofF/EGmhzG5YSvRAGs5GmtQDbtfoQu8dLyOX6D3aOmY+0Q18?= =?us-ascii?Q?RiZoxqgbqAocvKXgG8Zc77SPYOAFmTOyunh1dXKED1Nv1EhA3etlaoGVk8ra?= =?us-ascii?Q?N9LvU70VxbxFyvNMibRKpITCAD0tj0aV1ruJXso7+veLSoFbn6GB3r4jjTYn?= =?us-ascii?Q?co3izbVzDuCVcDGNn7FaJfkNGnflxA/niD33kx0LfOjrra54qqhv3tLXR5vy?= =?us-ascii?Q?JaRF7tyU5J9TwZ965Wec2glFK1mdJvVHlJnAhavLZYGKLVwyD5kMVp5lYlCP?= =?us-ascii?Q?25mQ1uEyGpXAE5kufxZ8QSfP8vqBnMBjrLFTGKLHjZOPHX+21i7d96gVN8xM?= =?us-ascii?Q?toJsE6Ez9ve/54qH3Tgbrm+OVxLE2okXmHkC3k3ZL59snHCWTmDm1jdeFOwv?= =?us-ascii?Q?OawejAOmtKvz4MFm1VQHu8a8tkPVIY1e6rlZyuBm1MuM/IkpAKmtL59tWhar?= =?us-ascii?Q?VT9Mq7tspW6rxPj4mFvOh+0eXeQFibbIcRmpEBzhGHrr1S2r/INAyQs+xu6j?= =?us-ascii?Q?cdtKSy9FvI2ontWmxyTTClg3BXmzRv5q1Ht+eUEIkiBee2TkrtjQSMzZb3HB?= =?us-ascii?Q?SFWa+9+WgGmLmAwc0hS0OypZW21p++x9byEUKVbwHTz7cB3GnwDYVOTs6YhD?= =?us-ascii?Q?s04UFIszJR2Ni/Z+6OO/29hMqSilKf8XAtiT5KX63Ls5EiLX9BzgHYCsScan?= =?us-ascii?Q?pwLkScY9rUdbIF2EuCCP/HdyphVdr7EiQQeJs4Ow/YA/Vn2V9bx1mSnSB2jX?= =?us-ascii?Q?N6hgY/9PkyV6Er8m+vfRaaYUeC7qROhkA3UskETJcNlSA3B2wW3SPHHvh7iA?= =?us-ascii?Q?zMniP0MEzYbZKp7yffCj8FRAW0aM1CmGgL1yxIfCbBnTE0Yv/qNAvwnzDGwK?= =?us-ascii?Q?L3mwelA4h2Etoz2mZfs+Wd6LC1C7QDb3eX4h+tXEDKzvG43y/6NmMfbLe9M7?= =?us-ascii?Q?WlxKQZM9FCpos5RI4yx3Ozd6AOYkZjBTsZIfTLR+YGCCx0+QoKCW4B+1DtpA?= =?us-ascii?Q?1EY93hRNQL/YhvFpR29zHFP4BuTEgOaZmLamxIzglepBhkXhNRuOV+IHpTd/?= =?us-ascii?Q?KKFrpI4OHRE4RvoJVw9gqu9duWE4/Rfaq7nVPLeL1eGQH5UETnGvCSoX0phl?= =?us-ascii?Q?jkIPh6dmmfktSsMXsxDjeoPR9NK0EBdXQgpkha0GZ38YQvogoz1IYU91lTGK?= =?us-ascii?Q?lavM9g4vKwTfesdzgIH2EhNds+cvQjsVuQTvr2v5+PwnTmTURX1zFLBdKuEf?= =?us-ascii?Q?NuiolGYC2kT/g/e3Evshgt2jvSQkMn5NnNdfkTz/ShIMTm1f3pW0Z5/L+7Du?= =?us-ascii?Q?kc6mjchz1lUp1QT3BLEPGF5v0FAGPCsjYgbW2LbCMwygoTL1JzEfnA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mG+yMU3JOp0IU0IJpcrgAZiZhQxfiaTEkkjTKr9c62nfwfk8mlsw3A2Ti1VD?= =?us-ascii?Q?Ds3YuqUYuUG44zaXnQawhO8RwgBqKVGzO37AaPq6S/Hsz20Wvo2KHY3Kkh97?= =?us-ascii?Q?HWS4aYbiY5QK/LejfypZXUsjoXT1pLWLeWA1y4hfAbdJQ1GXjAYtMmjLG/WD?= =?us-ascii?Q?uvfflu+JcRh4Yu62BvPsxirgvoD/EqoY0ijzEfQxL9PF68CjnA0XDGgAmdDK?= =?us-ascii?Q?DWQW8mMaWmfewCiIAbpdHH5HUqsImNecRFQGrm+JMJbI4Rt5FvX3ubrsek0S?= =?us-ascii?Q?FeTO2nYgDgm07j5VdfYh3Gh1UiSYEDrRWvyMwzn/G9vWmrnwnENqvM0bwbsX?= =?us-ascii?Q?p5OasVjDcEmsNV8zyzl392eLjmhH3Adccy3xtK+sKWQmqOVtdWHhmCyvMJV3?= =?us-ascii?Q?O0zfEqD0OXcm8h0nPFctUw33yfev/rTHExMOYP7h2FsFjZ/y+nxU8baAfwVX?= =?us-ascii?Q?UTxbae0KD55t918mbKljUm2rG6/aaduCiySrGZromi9T3nZib6/UO/ScZsjm?= =?us-ascii?Q?0W/4dPbKuYmL0Z3xWq45WMjjO3otA+vMioLOJsqhVT2YJRXgJFKd3bNom5iw?= =?us-ascii?Q?NUvqa4pMQKXbH30Z3OHBQyoNfPQ9PJWgM9ZYaMdDNLSH6/tSj5IoYrTVUtKd?= =?us-ascii?Q?gcGATEfcct/XjC37zHLR/OQ+9Gq1gij9XczPtj+wj1yYKyc77V2lNjw7F3Es?= =?us-ascii?Q?6CE2FpklTI4vx2L9zRIv7p+M5tKlKmrUVM1mZYgtqfqgVjyyhGyj8JZiN+B3?= =?us-ascii?Q?upR29UB3tySqW3kbbeRhyLu5FTfckIiaqGDO9MQ1ckqT4h8SKB1/sRzwTQAX?= =?us-ascii?Q?qBtydxTEBx7K+WSrvfKZYymJ0dQr+2ogV5J81lYwqtvjWhsKeKzwUn6t5UZC?= =?us-ascii?Q?XHHKgxG3qWf8m+/KDEuqBDzWAScNm/A4L5QEX3cmPVCc1BOoeV1S8J4ynHrH?= =?us-ascii?Q?8hjhtGtwPzTFj4u0h43e9cQme+WAsypNe8mA/vS0Xm5IVBeVTQzvsD8oTK5y?= =?us-ascii?Q?RbhcUTvPxb7Q6GKAq5VLaz0J/NJTsZnWYDLH9cyne80rKkEg6DMKB4wfgcua?= =?us-ascii?Q?O8pQR+2X7rKjSNts71gBBP9qdHDT9YVUHeGi3tPONwW+23GKgHNOGcRCKMr4?= =?us-ascii?Q?6LwVYtyIGmoT9EDSQtUKsnDMZRD5zyBcwqauAuDkveQPlaPXHoWj5nWx58lg?= =?us-ascii?Q?M/jyT+3Kev14lR/3hmHN6uSgrX0tmQKBApaJKGVxR+AhWhUAFtlfUriPkBje?= =?us-ascii?Q?g9kW+gd239bUBBSJlKPTEcGa6s+2nGDGAsq7b74i/vsxaiK05lGldi/c8oz5?= =?us-ascii?Q?D1p19RROL35FlOmXqfXj+OFnKQGofI9CHLKwQb03Wy2wWrbsSoIFeXxunMir?= =?us-ascii?Q?jQV9DHj7ji+LGVO3G2OHCc/+0ueA5OycvEfM3ryhP7KljWN/aMOyzQdUZuxs?= =?us-ascii?Q?4sJAhOAuQhNWdkt0c9ufjmOVwWGflwm7uWOw6xlSJCBiZx2ngoP0dpGSmuvt?= =?us-ascii?Q?eJceN5h8rwn4neFWxPngt2fcSsGl/p/Y5dpuYfBq39/ku/U7QNxXYm/ln+Yl?= =?us-ascii?Q?+8yatwpJlhiml/Xcq4AvYieoMwa9Cg0x9ji6z6t6?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 89ca4871-3821-47c7-e72b-08dd94264fdf X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:04:02.8232 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WuisOro8jCx8WV1Ek25Cg1yQXa8cbOm3YVQNonQiwAx8hO0T0aKcD1wxvYikTe2oO7HEs+sHsHEpBvxohbkI9w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB6159 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/ref-verify.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/fs/btrfs/ref-verify.c b/fs/btrfs/ref-verify.c index 2928abf7eb82..38c1d3b442d0 100644 --- a/fs/btrfs/ref-verify.c +++ b/fs/btrfs/ref-verify.c @@ -75,6 +75,20 @@ struct block_entry { struct list_head actions; }; =20 +static int block_entry_bytenr_key_cmp(const void *key, const struct rb_nod= e *node) +{ + const u64 *bytenr =3D key; + const struct block_entry *entry =3D + rb_entry(node, struct block_entry, node); + + if (entry->bytenr < *bytenr) + return 1; + else if (entry->bytenr > *bytenr) + return -1; + + return 0; +} + static struct block_entry *insert_block_entry(struct rb_root *root, struct block_entry *be) { @@ -100,20 +114,10 @@ static struct block_entry *insert_block_entry(struct = rb_root *root, =20 static struct block_entry *lookup_block_entry(struct rb_root *root, u64 by= tenr) { - struct rb_node *n; - struct block_entry *entry =3D NULL; + struct rb_node *node; =20 - n =3D root->rb_node; - while (n) { - entry =3D rb_entry(n, struct block_entry, node); - if (entry->bytenr < bytenr) - n =3D n->rb_right; - else if (entry->bytenr > bytenr) - n =3D n->rb_left; - else - return entry; - } - return NULL; + node =3D rb_find(&bytenr, root, block_entry_bytenr_key_cmp); + return rb_entry_safe(node, struct block_entry, node); } =20 static struct root_entry *insert_root_entry(struct rb_root *root, --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from TYDPR03CU002.outbound.protection.outlook.com (mail-japaneastazon11013013.outbound.protection.outlook.com [52.101.127.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E4A70257AC7; Fri, 16 May 2025 03:04:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.127.13 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364649; cv=fail; b=b07EhwFMKNnxMjNeqjXnx4dUCLt8Ec/G7smX15DFKqTz3v7ECJSZEbZWXURDm/tsOFu0T3FYgYdZQ8bP7/9Jjfr2yCdGcoKOLteoGGVAvPn0RKEItPH3bbq+rogQa9nKu0+/hCM+cS9TdLQZJwHSHGearb/ONsm9Uf238xzt3Ok= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364649; c=relaxed/simple; bh=RCacHStNbGND8rQkSSV57cz1NTfLh81EovjpypvqP2M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=tSp0WLiw+rny4FrvVobuLiTVj8UHnSrCEnOLWrXcuGCXQyyltKfCuAxXJZg5kWxptTNF3TRJyGrmlOlJDehJBKkzVCG3Wk8O/zd3fbEOSxXMNxD9p7kxfOyaAy1F7uzuggS0vv+uj+WukpDPKUKSbBUsdC+94bjWr5tzfdaUeWE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=Xgb8OGWU; arc=fail smtp.client-ip=52.101.127.13 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="Xgb8OGWU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t0bQPGvJPC1aJaYMod7fuZIKIYSb9vkfbwWDn+tLBO5h0lC2Fm8gEQBYdsS7t37vS4yOzZlkv4cLu3btUIQsQY61eFD/bMZixneItRjA+XUCq4MAftVnEXhF4CtOtdj5w3v76bplhtqeaPCrgYyr19EoqoTPIGxNd6HSn/JBGZDiwRarJMsSNVOfCDeBmNg2CGhq74lrYQYHLwEwua4tKIkOoikrML6PKHgerprBKvNgryW/c5tKKy6+nM83O2s+I0c/CWhZHTyTI0KAHBAvhfvKuGJCNKfmEW4Y0CKCKwSI8tKyDUpU/ujyNvn7dpyFEp+1mmg3bd4Z/yjD6aBWrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=ydF4Pf+Gnu3IrrpGZE/peTAdEl7gAVQKVQ1T4llvfWY=; b=RnqCnMRnv9K5P+3L/XFlQX7ti+9EwpwNU+s9OalKZdTz8Kmx0xlzoDcPs7ixll5wNsMV3G/EmQdL3+MMvqll7UAR8nqWFi2esnv/jtJaASgusSiOmBZnOEgjLQOoqxlIFrqolrjhaWPu1odgqctQrmh1tGuR6Qr1Tch7W0Bf1cfvBWR1hBisYshNrc0HNic++Ti2xfaxCGet9BSLnLJ8F5n0UQI3+O0+ZMsJQUBoLYTYfVjZHS9c1opBTNrrjurHppQItBQ/jMHlLQ0WHejHTVEMjVznBVlVHCMQnQZyAEJJpmsW7zDWcJdZTX7EJMuICxvJdKDvtWiklQSHyGhRhA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ydF4Pf+Gnu3IrrpGZE/peTAdEl7gAVQKVQ1T4llvfWY=; b=Xgb8OGWUNjXDJuUj16uz3o+i8iUEWtBTwwMrlMD0hMEGZcq6mRvS1FD+ZQM1AHnYdCJR0uBfz+xOgFZyJ0xNaj8kgM+5rB1mBUrtgoOwuAprRmIRWP+BYmQ9OwyJOLPnKAiQWAjwg1YybuMKLvnwlxuvjvuNct2eevIidANQxiGaXCYDzDEJ8goSiEhpVmGaJjyffVEMHLGkx16wxBR+1v4lTbTe6yVVXGFiYRHTOi2izI5rE/87VXrNNFurqhdgyCykO/8bQUmXEsMvKhoBC5d6YYU0ZSBt/4RuxGJtXzAlTmqY1oyxjIeVyiiUxjCJtZ50Ei1u6FfaNkjmPvB2tg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB6159.apcprd06.prod.outlook.com (2603:1096:101:f0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Fri, 16 May 2025 03:04:04 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:04:04 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 06/15] btrfs: use rb_find_add() in insert_block_entry() Date: Fri, 16 May 2025 11:03:24 +0800 Message-Id: <20250516030333.3758-7-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB6159:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ad6fdf3-ec82-4754-5350-08dd942650e4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?+oTisufCs0BMXG5s9haJM1px2OJCQdRbHUBQ0ln3uojMqAyMUklmkqJyiQu2?= =?us-ascii?Q?aCCQZIGDWEe8qsx9uEoOLjJC0713o+1Ag9NqompcHXVN1KiS7s0iHL3epPsz?= =?us-ascii?Q?/dKhWldl/z5TMom7OmQ3/OllS0gTpN6rtWJSEEkWyunXCHtwIknLvFoIFkJW?= =?us-ascii?Q?m9rC1684zil2kG6KKo58fWtRdbX0Ld4av/m74VNtVyCR1bchrRM/t1RocXM0?= =?us-ascii?Q?9lVDcoF9oeDwmRyrfmU5qszZ5HmTnLbgtqHxl+X6LD1A67YPHa4U7j7gvGhy?= =?us-ascii?Q?FDJsXc5F7l1gh05okrVVgw6bAWf+7uBkitdIhu9J/Ixy5UbFtW0FCtbtENwV?= =?us-ascii?Q?aw93KTYqhnk6ZfQaXtAltKOCCucSXcA7kAKsTOm6GuRcBY66liv81CKyoU/M?= =?us-ascii?Q?PpvbHi0PG+a0iEpgXzwNIoacaoec06WjgtfRTKe45ob+WVmmIllev9H64p0Z?= =?us-ascii?Q?M27a/6/333ff/L0Z9IuIw6P7ckoYEPXEZNM+e79GzARTiptsiNrVJx+TAFXV?= =?us-ascii?Q?py3pqwg68H48DjZhT0abVzJVilyZXdSCj1gcFvwvPlhtwt0q6P/OYOhhfHw+?= =?us-ascii?Q?f98i0zDFoFAnMlBXhWKtL/3c5vjwevEsnhEFR1ByAunSoysewC71j7P3/Cc6?= =?us-ascii?Q?uqYjJfmzKGTyDGF6XzdvrdnyOw6RsI4bNv0IeQ07WW+4EC6/Lqol0LJWDzMb?= =?us-ascii?Q?uzNkRcn6JdJjXg/mu6bMUKm5N9Lrs3Yqycj5bvn/SCSYOaBza/nMXk41GKNX?= =?us-ascii?Q?aHfFL9yFrYZfpfBOBjmTuW2XJAMRTBWclfJih7m4c+NWfgd7+9xVHeGGKibU?= =?us-ascii?Q?eBOxhMP2a0MF8u+4e4Oa8mibvdnOoHRxKfNknSCly84XjQj8UPU2tnxvLaXv?= =?us-ascii?Q?WmHfBmVky7wGXFWwrpHbVALaEGgO1AeRV134eX6nNdyrwjaJLMfR0L4GREIm?= =?us-ascii?Q?LlswsK3jgRqIhrsFX4rDGztKC9mLmGp55fGCoK+UNxJplobyOo6BlZLy8x2t?= =?us-ascii?Q?AJ8AnSgK137KWTAnTjYRkIxQ6kOmNbWDJy7vQXyhu2HZ3+KR4N4+TnzRA8Sf?= =?us-ascii?Q?VzxLA3K3WyKfPMtPsZ+iUPBQVgayMvJjD7S3mNabqB4f2jAfqNJFCgwCvbPz?= =?us-ascii?Q?1XqwfU2142/fIxdmq7uVA4+0XikHY81Kr2FJd99C43Ty0dTlSVWZdaqlAn71?= =?us-ascii?Q?0QMRfqnZFzhV8pNRGslgcB3qb2QaqvfiTXSXr2uMsp8NTgn6fwzGStcYfI2V?= =?us-ascii?Q?PxXC16YG1vHQRb8yNG4zY/aC7xUvQsU8UAkZhCKyol6KDnPs0F4wsrI1u4pD?= =?us-ascii?Q?fy7ElGWIdITZ1+a565WKVlssABw3JgLub9ZLDALWLhbugIzPWxRcAFoO87BQ?= =?us-ascii?Q?MtBpGtDtQUGx8Vo3xev2+DT16KNrpvpcDsEugU2CmOzMg1ZN9bEFphWOSJ5M?= =?us-ascii?Q?n2jCQJBJ9Fx2Bx5x33sk/RqaMEM17pAl/WMzzjVCLjlyPZ0sbbTtaA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sZbu/WNmgQadcO2aLaSFNgA8H58VgwnvIfMV/Gvin/zCnJL1KVVKY1+yyYlt?= =?us-ascii?Q?7PtAlTGYtb4UqBE9oar2FufgMT7SrBlDnvvsTwmOSGSrxy6P6wQw0xlTafO2?= =?us-ascii?Q?HzfQupLN5dzVn2tshymsHx8VFCdp+Ry8pHvfA0mb6fKaBhZvedhciRHZBMpS?= =?us-ascii?Q?flSSe+BPLdZe+2Ii3xdcX8sCEmupa7l8Vcw/dH1rUwK3KBm9FLDtgCDwVsT4?= =?us-ascii?Q?QDF5wT/WxJYtwARfEUPm89CEoht0UXljGJpm1v3lBiLRRwwd1hi79dQfoZjj?= =?us-ascii?Q?NJoFindCSsMLhY7iMrlN20xEptaYR/M9UXwDrDyOpUZzcL+PGIKL5FEipOkA?= =?us-ascii?Q?QEAXlGB1a2aG0N6mlpi6nVeReWcsrhxCnsrg1lcMsVUPZvaGwCayjsX85tmk?= =?us-ascii?Q?meu9MI8Vrw99/nIbLuWD4D1JWzqZyivZ9Ma3u5FJSQ6eV3AYPHLzwQwSaqz/?= =?us-ascii?Q?BqadTL6mUObe0ZOEh1wkD0loiqZDaHxyH/1rbNqYbHNMTxF35b1iEtbxXoiO?= =?us-ascii?Q?nFE6inTt49yD6vIZI2Spqv4MgUIOJKyA3Ow80eBr7d6tjwmRp3IOHz/vK4ZJ?= =?us-ascii?Q?2wXPm7X74ZRD0eKG46osUeiKihQVs7f2p7utQX19QL0Vxw7ZhznZ70oG4ky0?= =?us-ascii?Q?ZV/KrObf6+ju0OnuUOJklnujEMYt13L2kBxrjxsKoAN6Gru03rvLV1Y7Uv7f?= =?us-ascii?Q?vdnmKXliLATiHEuvA00eN5DDsjZ85IHFEMRkRcoIqR9sQL5LIlZ+w/P22nmw?= =?us-ascii?Q?4za0bJ40dpDaBd8PoeAUyOkCXFpkQW3zFi2uaC/xG3uTkUfwGfXm9zGBbj12?= =?us-ascii?Q?0OXYlk7DMATkQ7Z9z+A+YQjRRgug/RmjT8SG/PJVpY8o26wl1jTJ7xH/Cbyd?= =?us-ascii?Q?5pejDO9pbin06kHIiVACBdYNhUmlnqOOvuYUMK72RhDlKj/a4N5qhRx5b+p/?= =?us-ascii?Q?wbOVc46Wo8+k/yx6mqBmFj/895wWolWDnrsAPlzNbk+Xlu5W9nFYKvFJPEU4?= =?us-ascii?Q?MpDmZVeCIgIv4h6+LLLFYo921Ij9adnaeuedTHEvzrWUmIvPrObRZepqOXRw?= =?us-ascii?Q?GwYWqekaNtRHTmuYS+0O9FiBSGLhB9fNrFCI8pJV59ScCgP5tl/dNscmXKPG?= =?us-ascii?Q?TmJIWedBMzfyqd7yC9bnL+MHe5832NmkcGnaTE6DemIKXFCL2FBydD72ehwx?= =?us-ascii?Q?oKZQgbQITiuYjwrKis0kyVYbC9hxKZ1aOyqPNUZpIVp2wWRZb8Bj2JxAurMZ?= =?us-ascii?Q?gkBErWlT6ubQYwRIQWU+VnpuzRs7UXETHf8snF53KYN2aptWwqBaL4fQ+m1i?= =?us-ascii?Q?z7THIFVqDVcbfztp+NBVNCZNfXwmGi0x3h3Q32siTwwTn/K45O6zSMPyWfEE?= =?us-ascii?Q?DhRlJkQhrOT/D6UkQE52iqUy3cf19lTtYTn4rHAmgzQhMS91pi+7s0ODxeAz?= =?us-ascii?Q?DNTODQ76qad+7UP2oRGUefj5gFzZp5oXC5pOceys8tYfAujqVUG+to3w+xIE?= =?us-ascii?Q?WondLb6M/ecR163Ps9fn6nuEJ8+uTuViGqq7ww/JQ94RSo79kyK+neMscsSA?= =?us-ascii?Q?sPZt71NrqKuj535Kf2s36m8zCMusdSDxaUCLxtcJ?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ad6fdf3-ec82-4754-5350-08dd942650e4 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:04:04.5272 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UoVIZuxAszzDbaQodbgvlB/nMBKd2crxQajlsgdFTw4xw0dAwkDJ5f4L6PqNaA/nsOMluwDebsT6NtbXT0EWNQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB6159 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search and insert code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/ref-verify.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/fs/btrfs/ref-verify.c b/fs/btrfs/ref-verify.c index 38c1d3b442d0..49bb58ce1083 100644 --- a/fs/btrfs/ref-verify.c +++ b/fs/btrfs/ref-verify.c @@ -89,27 +89,21 @@ static int block_entry_bytenr_key_cmp(const void *key, = const struct rb_node *nod return 0; } =20 +static int block_entry_bytenr_cmp(struct rb_node *new, const struct rb_nod= e *exist) +{ + const struct block_entry *new_entry =3D + rb_entry(new, struct block_entry, node); + + return block_entry_bytenr_key_cmp(&new_entry->bytenr, exist); +} + static struct block_entry *insert_block_entry(struct rb_root *root, struct block_entry *be) { - struct rb_node **p =3D &root->rb_node; - struct rb_node *parent_node =3D NULL; - struct block_entry *entry; - - while (*p) { - parent_node =3D *p; - entry =3D rb_entry(parent_node, struct block_entry, node); - if (entry->bytenr > be->bytenr) - p =3D &(*p)->rb_left; - else if (entry->bytenr < be->bytenr) - p =3D &(*p)->rb_right; - else - return entry; - } + struct rb_node *node; =20 - rb_link_node(&be->node, parent_node, p); - rb_insert_color(&be->node, root); - return NULL; + node =3D rb_find_add(&be->node, root, block_entry_bytenr_cmp); + return rb_entry_safe(node, struct block_entry, node); } =20 static struct block_entry *lookup_block_entry(struct rb_root *root, u64 by= tenr) --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11012023.outbound.protection.outlook.com [40.107.75.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3C52522F75A; Fri, 16 May 2025 03:04:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.75.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364650; cv=fail; b=FkABvy1mgwpCJkSocPRtX/KdRwumGZ9/cRB5K1KwjfB0s5vLfuIi8nblsfQw8g67zErCa2lWdcDqIO+VnDEMq6vQ8MNVEXS21IUawhLP0ULGdZr6zcSPcbPcuzRlGpgr8offu8pOsEKMoFCt1RM6VA77FDLd9v90BlMoj2diAXY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364650; c=relaxed/simple; bh=FoJ+IM6JkgXuS6E1bMIbr6p4+MvBVrLiXT2Qt/tGVZ8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=rXMWGQRLrtVEZiFB8m0pcOG4DSqza73620MURL9KeYjPqiqVrI7OV11Yc03dgvPCTgpd8q+K62PR+raG733UF9G6n3a+XN32p/DvyUK1Y12P7TrNwsLWQNlCefEoffWgXlOSWUGfdXACO5nz9uLZhy+jVuXmvjMI8+Xo3wC9Gnc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=Dd6ONohm; arc=fail smtp.client-ip=40.107.75.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="Dd6ONohm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OKFReyyotlbS8M+i4NPl2sURTmXYAp0bkMEF3XHXPItVacL9jjHrdxC4Bm0JapJyHTL/m4eg2ry2CjbkQQlwYteESc8Ija+qQZEhI207n9xQ6sfFt9YNi+teo1HZq5t+F/61Kke9lQIlWRLiAaUQRz724k9+VeWlF/rU6JZ5z7LBCzMsEqdEDVpZi9eU2A6FsG231Oa8tIiZWMIIE17q4z9a4PEgn45FNzu6Yih11osxMfB9TJUYYxCiXNh8du3xtiV29lIHD5AbDbtCA3GoOmAGZli8MKHzB/RW/+Dk6r3XxoPFKBY+Hs0NxN+/D9lDIXAEdfxZSTAzRN+19Vh1Wg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=lj6/eXJ52H97KEb8YrMjnEXOYnzlj9Me45U35Y8Vj7s=; b=p4zUQSRwzujM/BeBzraqQtd2L66SlNMj02rfpAC/0V2SvkKf1vpmUFY4IGZ6FxjqlqnKLkZ9wqAUPnCJgc+jPW6gGIYLntRyCjke1/pi5ZXe4Ka0sJOxyZPCLYsK4eyfixdGksk7GAy7jxGeWubv4IOnKV+WxKOqpBKF92z83NZTdcQ9Htvuh7tQ38ADV4hg8V5XZdl4Ozcl707klhcVGEUp9944pwbzPEbVKvJrt8yWlVF63DgkxwNWMuyYwI4gqHqXvumY6Ba7LsN+AMZkIQZWMJh8ygnJE8W85HXcIHBikKlOkjgIMPPXJsUKnCpYZf4/kKTRu0v0Kmg5Zvj1Hw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lj6/eXJ52H97KEb8YrMjnEXOYnzlj9Me45U35Y8Vj7s=; b=Dd6ONohmV5+X6J9mq9XyHPkdmtptFfyph1tJbTHg62bS3/6pdAkkX5PSpItNjzzTNxxLclfaJtQrwbAotCC9DZFNyS+obZtI//JyphWWIoHCc/K+qckQImTED7a26dI/16xj7aBwT80zj9pI/mMTSX2F/WceS5qKM2kC97j7xJDB/FIFdbfetVIAiwjksGsdlEjdD85103qmynV4Xs/SmTvsjs9X8PUwdeN4RBJ1MuLOtxItedrNaAz9YahoV4UQ8yvUimIcfOGvioUraJPckjX4RphiK2VTP512eKmpz1ie45b+u5fqBxFxb9v75bJvxbuVC1CV7G+GMcevjQBPGg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB5200.apcprd06.prod.outlook.com (2603:1096:101:74::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.32; Fri, 16 May 2025 03:04:06 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:04:06 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 07/15] btrfs: use rb_find() in lookup_root_entry() Date: Fri, 16 May 2025 11:03:25 +0800 Message-Id: <20250516030333.3758-8-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB5200:EE_ X-MS-Office365-Filtering-Correlation-Id: 10d9502e-7d1f-4cc2-7d5b-08dd942651e7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?hjzZKfhwfl1JzQAMOHIXsM/Uo/pI1u/2w6zEo9X29vbDQNcj0/TTj35pfxZK?= =?us-ascii?Q?S7R9gp5xvlOVA3FVhvN9hNIp4/DQY62Qo40fe2NxXaUsvUNFEHEgeWh7C/B+?= =?us-ascii?Q?YJheSGBYbzaKi2AxvHL8sGrLlt/ILSQZIF2HqLAyzA2uBs1sf43VVMt78Uk/?= =?us-ascii?Q?LToUs7wR1N+/TF0xB+SXvz/04rh9vqA6ZCckD76uYU54N+lJpnH1gT9t2mm8?= =?us-ascii?Q?0lQ+mEyoKs8s27dU7ZNXT5ocEtwQB4njPWpEKtHgUj/sUlmBpC1aKH4Q3TM4?= =?us-ascii?Q?F45v1MaYZs6CDBl0pudmPQEVnLXm0tx0L9zYGKasqQ3BUFFhU+jFcGg8MxO9?= =?us-ascii?Q?V9x8PL+3HBkp+tw1+BLqS3L38BSCxx4Wg2GAm3i6gyQfnzaWz0TzYkgqASj/?= =?us-ascii?Q?oinjuCLAmE3v1ucqWUujUrpXEdRu36hERkXqRdadChV66RY7Hn0FkSrU84A/?= =?us-ascii?Q?N8i/PSuacsHQtqcREgtHpJMvdJadTuPvWljuZrYN8dNgdsStOQBI5XRkVESA?= =?us-ascii?Q?pWpjUfoSm3wCPnCQswNH9jDNXxDhv29MhEuWeyZ1EkuvOX23v5qhhvATjgT7?= =?us-ascii?Q?de8tPaBJQvUoiFGpFOOsas5uMS0BXnC68FhhfxuSSKn6HB1hk59YF2hi5Cjz?= =?us-ascii?Q?yfkpy5RLiadNv4TsaVVZgku13ctqqWB3tN9AT4gBOx9uRN1y2UUE+dPDBG3W?= =?us-ascii?Q?IV07TUcAH7D5Lwx2p2YnserorIryKxutlWU20ATJTneF3ChOHw+nfTpg0siX?= =?us-ascii?Q?VD869pmneGUaSJV9G6GEARPOo/FC8czbF0sEjgLjblJc1wPZ5q30Y6w6y3c8?= =?us-ascii?Q?Ij0VtQssjAxmKcYlDlrXlZ6Erjrw7mKwp43ypoE1DXWc3fbTtbXFVKHNjPVf?= =?us-ascii?Q?c6hRwhAuJl5I6r8e3mIQjUFE0pE1ffMmioAd3TazoQwIEfyuL1nWcNf87qGs?= =?us-ascii?Q?JvEVG4sulLL+p69/xR9IdmExQpGQ9QjnD6b8EDINrWkpmyD8cvp5Wr62Sc5H?= =?us-ascii?Q?t6O5jtC6yADV4urmyT7BWAWDLTKZdgIOxKOH64ZIDSVAHmOJOFwPrIi9kJGp?= =?us-ascii?Q?pe+2dBnIg/KzkNmooEHLuebtV05EZ850qPBEs7ilBGGDQGNg5maVoaQsb49o?= =?us-ascii?Q?V9TTIsZCc+i6WLIbFIu0T8Kx+xvuAipvfnUMontFUxqoQCkhEMf9CvUWPlVf?= =?us-ascii?Q?fcUAhL8sl6npUc1EK3GBjD4CdvNHZNpM6PsbSW4rDBXowQF8Sl3CFKcaqi5Z?= =?us-ascii?Q?GvvRX5hPXraaDWWzspGu8XxnWCQCQsg7+rPjgoYW4WfpResDfuLtMOV/D7QC?= =?us-ascii?Q?fo7KS9xJUFXw4cM3rjud+l8qH11hxHS6vikTWNIlZF3rBaOPAxwjrTPdnqkh?= =?us-ascii?Q?cZvasEtWeh1JHjMDi8vITmSkBD76YlHojRPkeYsXlScaUzhJgFdBDSa+6jLK?= =?us-ascii?Q?ot2+WkA3pOcj9wnERMMUvXlYCTA3g8Qav1FAoqqfxWF3bdo6d4lhiw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GIeZ3IfLr+2nfkKfFfTcrUWTzQK5ZxV4aqW5dBPSzevn4iA7Ar57++UOl4N1?= =?us-ascii?Q?nigzCP95g+Kx1rioU+0u0y2QJ6iUXP3OBZ6cLucQocjn23RXC1eEolJFeUy3?= =?us-ascii?Q?FQGoDtUYbp39BBXv1fJ9dyx/9AHlQgSymsXRSivDwK1xsxca0j+muOuDXkDt?= =?us-ascii?Q?6fqWqMYL69uN37p8fpuwr0jPkNPoU6O1N+DVdDYNWaUovvsxcz9h97g74g6Z?= =?us-ascii?Q?W8obmc1eFIg5k5mPoY+28yDTS25+wzFFg05XDziinrma7xIA61cbZwCL5h66?= =?us-ascii?Q?nrK/bn7vkpEFRztf5xrd3eb27elm9gOF4CsAbH+UggLBNh+9W8XJ9kM0Vxoa?= =?us-ascii?Q?TAQSgrjRFoZEwRN+35BRAAeNJjtJ/SQvfZ/MUWfiubZve3Z+opCI/y0E/tHs?= =?us-ascii?Q?qtmgm6IL65Dyg50VJ9npAq6DoH13CRerW/pnwZ6BCuuceaiLsyxmY7oXhL4f?= =?us-ascii?Q?rC5eEuIn2FSPHjbnohOGAL5UIVZrplxBkVFdVmRKqYqOptkg5Tudax/6WdTX?= =?us-ascii?Q?hTM0u16MFj96h88szjng0qOUTKkeCB8uPOWmOujK3r9bOLfzYEkBsfsDhNf3?= =?us-ascii?Q?HnXV28odeWh9PcU/iPUAIWq1NgZTPrnYr2eMHvr8BHB8FdEQMbdAdQt/Y3rK?= =?us-ascii?Q?E5as7zqRBlX3e4PYyKkTeTWRD9Sg4sXU4D3mYa6fEeEaAk4L0QZTK7Vt7AdS?= =?us-ascii?Q?c23Kpk+uyQ8Mkhn+4iarJj5bt/Inl+8FZDXvJR2/KyyP+U2Uu3epXHGvHEYY?= =?us-ascii?Q?O4ZhTwxMrBafwYSjONKPY1zBWg73cIT5O7eVJiUzUwhDg9CP7MIy24+3upGo?= =?us-ascii?Q?tGDCJ7YuufyOGhGLly0zjCEiikcpv4QmXd9p053kDoBbeuH2tGMugrbd0llF?= =?us-ascii?Q?88K2JDaNsxw7/RfxOQtt6pAgp5sB1/w2OJkKcfapw6UVE5qWK74h2s0M7/5T?= =?us-ascii?Q?hQpVSCXFkEuQUgUFf1/gkbbrl07HqKs6+HED9eknxnRbE+o7tzv0lRbENtGA?= =?us-ascii?Q?UgfK0zRtXfeaS40POFW9qgD/Fit0m6F1M7ZFpOAo1AFAApfBsEvtEEMmYKRT?= =?us-ascii?Q?UImtpMG+JZV0MyaonIzw9m5v5t12sqQf8O15rdmEjSH4F/RdITJ7+n2J3LJg?= =?us-ascii?Q?9iAk9AqE69fnXpT9sjagDxpZGqdbsImiv1IaBuwERVRdl95JgsDUlytQwH2L?= =?us-ascii?Q?Z9d/x6Gt19q7RFV3+0xNx+vkNRxBx7RYmv5SpXi/uY8V+E6mISJxuLsyYQLE?= =?us-ascii?Q?ko++RkaXvAEevHS0kJvsuUF9s9iO3NKutqEHMesyLZT1ttVJabiLevxEG264?= =?us-ascii?Q?0ZRaBVg9AFqnI/KJht/uqyJuavTzGLz6ZiGXqe0HMVUMtcIarkohy2AJK36O?= =?us-ascii?Q?916JjknPTRgUvEKnVfR5+935NNQFBObvKwh9/5MozAzY2hpXsHLhxzCfdFJk?= =?us-ascii?Q?VqHzZv0xwGS9RL70+gT+zSd7ri2UZtyTv/7mk1MRrVf4PcevRtAiqYMq1D7m?= =?us-ascii?Q?m9DH9SBbivfJNAdBbVmYhDsF8p3+Ly3qsjs2fAfnC69lna9hTfoQzIsPxaOj?= =?us-ascii?Q?Ny48rX7kypHTQIpjuCNsNNF0puON9YKPJMLvuFyr?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 10d9502e-7d1f-4cc2-7d5b-08dd942651e7 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:04:06.2169 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nYCax6Xy/ozbjHfFPW/pSbuaKQYVKzDFNet3j4Y/9YnFY3Wu9Yh3UJDUIDwpiAWIEv2SJiVUEPPuOEsCiw1LLQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB5200 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/ref-verify.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/fs/btrfs/ref-verify.c b/fs/btrfs/ref-verify.c index 49bb58ce1083..62536882e9d4 100644 --- a/fs/btrfs/ref-verify.c +++ b/fs/btrfs/ref-verify.c @@ -114,6 +114,20 @@ static struct block_entry *lookup_block_entry(struct r= b_root *root, u64 bytenr) return rb_entry_safe(node, struct block_entry, node); } =20 +static int root_entry_root_objectid_key_cmp(const void *key, const struct = rb_node *node) +{ + const u64 *objectid =3D key; + const struct root_entry *entry =3D + rb_entry(node, struct root_entry, node); + + if (entry->root_objectid < *objectid) + return 1; + else if (entry->root_objectid > *objectid) + return -1; + + return 0; +} + static struct root_entry *insert_root_entry(struct rb_root *root, struct root_entry *re) { @@ -187,20 +201,10 @@ static struct ref_entry *insert_ref_entry(struct rb_r= oot *root, =20 static struct root_entry *lookup_root_entry(struct rb_root *root, u64 obje= ctid) { - struct rb_node *n; - struct root_entry *entry =3D NULL; + struct rb_node *node; =20 - n =3D root->rb_node; - while (n) { - entry =3D rb_entry(n, struct root_entry, node); - if (entry->root_objectid < objectid) - n =3D n->rb_right; - else if (entry->root_objectid > objectid) - n =3D n->rb_left; - else - return entry; - } - return NULL; + node =3D rb_find(&objectid, root, root_entry_root_objectid_key_cmp); + return rb_entry_safe(node, struct root_entry, node); } =20 #ifdef CONFIG_STACKTRACE --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11012023.outbound.protection.outlook.com [40.107.75.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AB7DA25D8F7; Fri, 16 May 2025 03:04:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.75.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364653; cv=fail; b=P4v8B3OePwNKoRFXDM54MVM00UvP/KPTUL9xwWwT2xr9lEEOajrhvex3yXY7xLGGsT/kW+/PNYr0D2vT+hkP0GKFANuDcm9cgDvC+yw4L5B8FXn9y4eIGn2kz+5vxOhUbG2z+ONlGPp8kYEpSm7JRFfZNhAdypwkDWiit3U18AY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364653; c=relaxed/simple; bh=Hkbe+4zFnOxJhgxveAgMtpm/tPwq/9Hree+1rHax8Bg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=hoIVnDc0LPUVhGs4TRYJK7NA2oClKDwa7pwEv8168ceTCChiDsVmNYeHqapCNk8pvCh2Z4XqeO+uk8n+GdkCUvDq8ZOA5vxEJ2AylP38yXV9co4DsQW3IDd6eqcFMoL5geOU9jmyDRhuZ4Y3TOl0v9gdQDqdSkEA+uzWLf4/zBE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=lNqh/YUz; arc=fail smtp.client-ip=40.107.75.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="lNqh/YUz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ED0qMKAHqJibJ8zz8oc7b+VENptKcERNXTbtw+lrVj9zflRZ6B0a9YQOp0duLaGzug+1UikBNk2eu09EGyZNyI7Pma3wR6icbic/ewqpCVYwYltBp8eVBm21Yyp8fHjoHJ3kVBYkWn01SAl/t696msGLFWLjBX288AwmU4P7BaMNUGby2yXtdsPdT8dNefHNnPiYa8Z8kQqq7qOswxxdetxjQYVF7LpSc5kD8FVkB3WLv9mRCx5hwpm6AprGYYpveJBrmlTb+TtECN7kMAeBLOubRMn4MepgxIlYPKGbnSEfWIsFUoeIl6w/PfBzigugiyZMkE8BE+KdWXCMrNBwYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=I8YcolHPNCnVWdvLYpdHNwqzZHjSu/zTKWyrbNavZyQ=; b=FDrg7jkbOfVJglh2dZM2aJazn+WJHRHRkRcQmVcztJibxVJlM8DOQOQdYg7bDZSyI0utFB0cccs8OYaujHmgDbLuCx2avwgnt1wLBGbL6ktwfBiV7BllwjmzbzKKbj8YTLvTwOu0rlcshUvyBH7PoZQvpa1BdBn/u/9AZxhmbX3aiYgH0hSEGD/e4oGEWJBCbT86rWHMqBBlZorPjre6Unnkt4yCPnOao4meF4TxdC1PtjQu4cifc9m0UYfKH3uiqXlZ/9U1eBO0wUhgtT/O3qcTm14mlq5EVpcoXfA4VxEUqBc647sQsitO+SHs/ZIxGx8cft0uzuFKHHgy3RWS7A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I8YcolHPNCnVWdvLYpdHNwqzZHjSu/zTKWyrbNavZyQ=; b=lNqh/YUzgsdkGMGomW+caFaIxXdW2z+uzLR8NfHute7UOk1OVVj1HxlEijvasZfHoBEY9COTH/2ivhK3QaW89GI8ldL+/2TotWpIK285kKw/8KBWB5+d134i5KkY7KuxCZL4eHifroFxWhiotekYYj23D2cLM1LtAFKZ7VSWcMw3L+XH1k/cIOZfeqw2i8mCiaHLyAewAIJej48JDYI+QrEOIjNIEFWe/2cxhV3Tp9zkCrSKSw+eNgjBTSQMRc2Od9jUoEAx38JEbIpCX12aBI8mFsKK7EWww84VV2wMog50iRVi01l7vUOAyOmM7Hxet06v+gKknzJ7CVrZRnuoyA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB5200.apcprd06.prod.outlook.com (2603:1096:101:74::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.32; Fri, 16 May 2025 03:04:08 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:04:08 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 08/15] btrfs: use rb_find_add() in insert_root_entry() Date: Fri, 16 May 2025 11:03:26 +0800 Message-Id: <20250516030333.3758-9-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB5200:EE_ X-MS-Office365-Filtering-Correlation-Id: 949e4089-8c5a-4aed-d46e-08dd942652ec X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6JXZDKEbAgUlrzhOnVBPMdMHXEKx0Des4XsCJ6TNBzX3DT3aONBZ86AFf0+P?= =?us-ascii?Q?KH5mGIl5k+Wafvfa7z0Mtu4oWsEDv+VNUbsFU7PT9XwOlfKCYlrKdbfdDuSC?= =?us-ascii?Q?kaj9K3dRGknhaXrhZQGJxHZtMLKvmiaANhRw/4jEwpLIqhjw5xr9MmCPxfDR?= =?us-ascii?Q?SW7FhtLxcowzX3fsfFTqWaxBRkdGYDA7Uhh2Kn3SZukkJCRJU9JEf/IOM/KD?= =?us-ascii?Q?TKb+n0zDWP7RPBz6R2cFC3OMARevZyacS7WNe0z7CGZb9X4Q0hxMHOrV01pc?= =?us-ascii?Q?jh2RMmtnK09IsG6WIHmuz3knf5XWTo2MwsEaaX4tgJQn7AFagDjCwCRQ4zlw?= =?us-ascii?Q?FY/msxLvM0+EEgfjTPqKd99R97+k2RPYWS24hOMen60JS/l4/nZ5PBvqPb+l?= =?us-ascii?Q?VDpBHWAgUSxqvpEsj9CiN2V/Paj4AVAb+uMCKtsrei4GnmYYXY9V2IJfToYu?= =?us-ascii?Q?y/fswiuKR2BZMAx8KC+DQH08y6HGBY+i6Th8Jd0erTLQdWbfuIqr3H4nbpJ0?= =?us-ascii?Q?psgxV+Zt88YHBP3H1nPylI0NQFec+rGyBddFDWcB7N/KJU5YOf8Ssb0dxfeR?= =?us-ascii?Q?rfJTi29ckGQ/e6oYHHXz7aCGe0iiuXR5W4igrSBrJCpMXAMyP9Br6OZ/Bj/h?= =?us-ascii?Q?xrLbJLxqu9knI19sWWLGM1S8tDJGzGJmmmHjXA+t1UhnB14HSBkKzizpv5Lw?= =?us-ascii?Q?LoglvfAauWZ15g5g6MEqKfqfAIQ0CTDbwwDwsy+CLPaulJfy2FEOAPf3a1pr?= =?us-ascii?Q?o9hsTiqFasqJ1EXYWSJ3F7gJl0OrTMg2xl7NPr+NDnCHP8Be+c8g3yshJI+T?= =?us-ascii?Q?QqnQybWtnp8j3moX6EXaw4O4W+d7nmAwv00bweog4NhsWnUPduvxh6n/wWJ2?= =?us-ascii?Q?KkXm+zW0BFUiUHwnUS7BX6SV5J0r8v4FoFqaUk/aFyfo1521nnfBFD4lMOO9?= =?us-ascii?Q?vQcz5pzSDE5l3pDHuIw602KN9BaUo/kHWtPR8siWW6+m5F0GLFZhTo9tSy+G?= =?us-ascii?Q?Ew98ZB65cZgmVc5STeVDdCfvXcqxhFr+mibOea1HuC9ctrGvXYrAEbipDI8P?= =?us-ascii?Q?UT+wUv8nntqmS6LxR+AyqWc8JlkuB9oXlVhNMWfNMjr3NPQwnn/yQ0fPxKVj?= =?us-ascii?Q?ESY40xXs7fzDkpVaezC6HBl4Xd4H306qjYptjANYbewWpkuyzlVVCb6HFSJw?= =?us-ascii?Q?qTfUq8vokEnReaLx+QHpXQ2tRLvuCyHhKfCDGKuRPzw91OcvK/RhZWkO1rID?= =?us-ascii?Q?oywN2NQUw8o9/bC/2tw+2qq9OzzvI1OuCKa26bV+35rSpYbjEBO3aadxcL/f?= =?us-ascii?Q?y4Cv2tEZU8Mm2CMVQ8xdpRX94JV48leoY+z6wiGoN7QRDpENhQ+YHbwH4o92?= =?us-ascii?Q?NOaDDfDbpcZYevok/h8bJZIlVmSMWxLu/cwKaLDI9LE4wXb7igyUJmTKTyhT?= =?us-ascii?Q?m0XBT3LQNvKDY1My4s5Spxysm9IrbbBFQ7716jYRtxz2hAqzt12wXA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?eaDlNRLV2VP1GGf3oEq3+u0gYVN7w/L1xRvSTUEy7TvvIXAgMCqq5875TIzQ?= =?us-ascii?Q?hGE2iKrX32JYUTwfxnA7RstOTNr0lVlMHwnZKhfswUV6N4rDx7M0dTbfyDm6?= =?us-ascii?Q?Uk85Z4YzgnFcSU2/9fgIrx7lPjwGtk+7c1vKMOxFM+ZYqnDzY1wgmSFXCgb7?= =?us-ascii?Q?TBAew0ks8OEeaXhE2eP+FXJ9FnwMVgigkZTkjryMChcVflhikuOCqvRcOIbI?= =?us-ascii?Q?DTO0x1oKSEp4zz0Q9uMAZpBCr7ga0U6SIUEMf4v7G6frDJQZTYjXRhYZLQWj?= =?us-ascii?Q?hhVruFRf6Q59OnzoA1qPRgUP1NIlWqEwvdmjptP74P6zAtcaaxZlWK3Yjzoa?= =?us-ascii?Q?Nag0ZdFVeAHFbJFm0NTrFH5syP0Id4UnZUKE3tczAhsbM0h47ix+SUtebLfk?= =?us-ascii?Q?XA73+spp+uwc0roE4BcblzUyaDHAp+101U+F7LOouMhPVvi6hauoe2oHXuYu?= =?us-ascii?Q?1LPKEXlKcSSZaQSnC426F7AdjChYwcBXJ3YXc8PIcJK6LiStN8GMV+iztTbF?= =?us-ascii?Q?aqwPR7zPS8TaxFrCjizbsUdYzAphctwMVzRJ/Z2InCx3VcYjcd0Wxcp04Qu0?= =?us-ascii?Q?tKFZtuHLM2/GlCFfki6Z4guZ7x6wD3yz+CIfqUorSpGlDUdvDZi7X2E1yfB/?= =?us-ascii?Q?yASqxIGyKAwHIBM/yuoUTbP+CqoYnuChpCe0Visj0zijzeC+EPTyPXhKJ1LV?= =?us-ascii?Q?EC2BRu4fOYufTaX/UnEMYbj4peo6iHWSo4e83Vv/VgnsQYIfimrgvVmJpthZ?= =?us-ascii?Q?8gRzZkitlxuKezeuM5fK3oPi4448OBt7EGeTxcDsFA3OfdY4q5dVy2Iiz0LL?= =?us-ascii?Q?asALSwvfHSNBOTHnTDgnLorWzAqD6zd4hnYz0hcN6UjsrGdGKbgms1e8+Zb3?= =?us-ascii?Q?oGYbteKBZD7OQMgnZDUV62aQZQJ0qx/1mT47lexpewLm/T3SzXToV4cu6hku?= =?us-ascii?Q?URkuzGFuvM4/CK31iEhALtMxWMYR1Xkta8o4rzYIGIhGdv0dF95ugv5p2Egl?= =?us-ascii?Q?cWAPrCglEpDTcZlT2eX3XI75d1spA1uLLfuLi5gyPDtrt1g5HLWL7hcnIgzv?= =?us-ascii?Q?kjhnzMXLSwQ+kaI145LO6iL0JFCXvFqN7/6UY8cUv1T4nCVSWQVDrEun1O1H?= =?us-ascii?Q?5O12PQvoZOBF5Z5ve9H8eBe5Vq7hOMZUYh2Su8YBvX4Ms99Kzk+CWbe88Zp3?= =?us-ascii?Q?yJGM85lYIqqN88gnDqLFMbZJsWoL5kxbiCR9tlN6J7hsQVVLGouz1pDLm+0i?= =?us-ascii?Q?2LSvb3pHFHbpQvaGjOWWERmo4WDPCjP8sOEVgd5jadDdbxV7BIchUtfu4q8C?= =?us-ascii?Q?AmFdA4l0CX9MDlEfGmPY5cN+l7499En1QDhQV4BuUdsmb/7jL9zwssGATx42?= =?us-ascii?Q?e0GHmCKX7si6BJubqVHCY0h+nohyUKFA3Kjn4mnSHVnmwKn1KJJ+AYIEywha?= =?us-ascii?Q?gSrxq2ozQKDwX8PV84VPwjkQT25qX9CQc69DKzlvXU7RWrjXsaRLp1CAZG6V?= =?us-ascii?Q?a1I0vfM4ZgtMk0hSJ+Wp9rdrW0VwuCzXJdSSDzOyH13NPP8vDOtOf2rv9UdL?= =?us-ascii?Q?Pia7iZDBGrc9hWNIT7biiVchgxmgJ0LXVP++dO1X?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 949e4089-8c5a-4aed-d46e-08dd942652ec X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:04:07.9344 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jzszCIs5SpZa5H1O0sgACj3PRdWhjdg9i9qtZiMcWgaxdb/2nhEentNedcfFifx6go8y3yM09sNhN/rhCcH5FA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB5200 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search and insert code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/ref-verify.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/fs/btrfs/ref-verify.c b/fs/btrfs/ref-verify.c index 62536882e9d4..f241ed4bc21c 100644 --- a/fs/btrfs/ref-verify.c +++ b/fs/btrfs/ref-verify.c @@ -128,28 +128,20 @@ static int root_entry_root_objectid_key_cmp(const voi= d *key, const struct rb_nod return 0; } =20 -static struct root_entry *insert_root_entry(struct rb_root *root, - struct root_entry *re) +static int root_entry_root_objectid_cmp(struct rb_node *new, const struct = rb_node *exist) { - struct rb_node **p =3D &root->rb_node; - struct rb_node *parent_node =3D NULL; - struct root_entry *entry; + const struct root_entry *new_entry =3D rb_entry(new, struct root_entry, n= ode); =20 - while (*p) { - parent_node =3D *p; - entry =3D rb_entry(parent_node, struct root_entry, node); - if (entry->root_objectid > re->root_objectid) - p =3D &(*p)->rb_left; - else if (entry->root_objectid < re->root_objectid) - p =3D &(*p)->rb_right; - else - return entry; - } + return root_entry_root_objectid_key_cmp(&new_entry->root_objectid, exist); +} =20 - rb_link_node(&re->node, parent_node, p); - rb_insert_color(&re->node, root); - return NULL; +static struct root_entry *insert_root_entry(struct rb_root *root, + struct root_entry *re) +{ + struct rb_node *node; =20 + node =3D rb_find_add(&re->node, root, root_entry_root_objectid_cmp); + return rb_entry_safe(node, struct root_entry, node); } =20 static int comp_refs(struct ref_entry *ref1, struct ref_entry *ref2) --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11012023.outbound.protection.outlook.com [40.107.75.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8964325E832; Fri, 16 May 2025 03:04:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.75.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364655; cv=fail; b=aqiDjcY+eZtQo1vAjUK20ZEKUOI5lAntQSrpasbjScYXYIsgFi0cc048YOQkR7mXD54tJD7hTezHDo2967XiecXZWcSYcgfk1nSMzXehVSd9bayyMvLXNw6ZkK9thnylBhP1lLpt90aUOzU9Q0OK1TjMLOGsP2+njYj5R8OruvE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364655; c=relaxed/simple; bh=RlJomE8o2ht/iQ/WFhsuf+4YxYCCBfq2OCyPD0xzzo4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=ODEyO3K9wW458w/Js7ZI58UvHKMtwACl+GA4VZe91FoGw48lNuufAnIrY2ttCBEh7Qh2LXzhc1pRYeClKDsgBGBNTl+orhk3K6zUXhakjZRR7mFDFh/vhGnx5d4fxkbRjqkNHMmYCtQzf7mERZdPW1fKpGsp0uQ2+h/QPKlWqIo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=ATH+Sw68; arc=fail smtp.client-ip=40.107.75.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="ATH+Sw68" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QqmuSuwtEjjXE9y7e+fTnWChXMGHsh+Lz8wuoASLt18YdQcXOMIIBvM2yb//e7slDglDhhtR8zWw4XnxSPu6Vq1Nuqt0MP3uzdQ8NTVz22LfRC4p2fbI0yf8fGvllp32lcE2ZVXpBwOEYVLv5Mp9DFzAnvYKMbreFyTDdLTy2FvDSZ7aYMZil3pv7j4jfnczHdx9V6bheb3Dvd2aqhFZL3dLF8SPb3qSIdKJXCGKK0dnJwZNpkQZzzesSdKNop6ZtbFW1pO+Qma3ojtZpNaj9bDHCKMo3U2SSXtrSg3xutiEKrNvTQceTf1PRpwKBo1cerzEGtmdXZHWEPsL1YgxGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=f/H+l8+FB/aQNAV/lGJ0EbOxW5UG1QJr7ssig/o4g0Q=; b=T5fHRYR8hGLBlPGgrX9i7UiWozDeINeJaSjOA+QCQ0RAHlLeMB6fePpZYJWyqU2GwCTGOhzXwcYDKvgCUPVNCcpQpND6erK405ZsPG/VFGmZ5LthOF1Hq9eMoQFyeHUykKa9M4Z4UMRHHN08c8p+CqFSuK6tMSfys6xWdrbRLvrWl1XiBW2T0XPTshtF5bSx8cJUdd8uQi5TQ5z5S3DZJlvsgpyNGbpFGmTTqkMvz+I3l3eizziBuSiMvCtkLfXGzzS6KJmZ65w/iyOvXYG5ky4ed2CSxc6V1ZTECKPEKLNvBLmzK1CrK+xPnW6P0mJdw3TjQnw7ATehldXinnGDaA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=f/H+l8+FB/aQNAV/lGJ0EbOxW5UG1QJr7ssig/o4g0Q=; b=ATH+Sw68cgRlOsv2voqGMq+yZB+gFMYfPUX+rkCj6gFDIS66UopVxZKMgtf5itEZ95n/jEeTCzYMIE1lwjQj9jR6lrTw+RIYtj7m/GLwpSJCC69hlyEroS2iQAzPYLrGa7rcv2wXqCM2bojcg2B5ogALWvpUgfie1/QOerUgG6ub17UHG3pC1GOIJCyWwqoKOvdTGJHrgI4AckW4KOxrKNt9PLVvQ4q3MLWcdN/7LH+t9nk4hebae8U+y44GrZTinLiSGr3Huch9s6uXg5mOuXoytV7PBBqYprs/R7ArXW4u3nGLd/Rw0/5e5NY/YyA/3NkOy8/pmGGiZ7tWx9zYqA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB5200.apcprd06.prod.outlook.com (2603:1096:101:74::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.32; Fri, 16 May 2025 03:04:09 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:04:09 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 09/15] btrfs: use rb_find_add() in insert_ref_entry() Date: Fri, 16 May 2025 11:03:27 +0800 Message-Id: <20250516030333.3758-10-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB5200:EE_ X-MS-Office365-Filtering-Correlation-Id: c7805cb0-135f-4421-8ab1-08dd942653ed X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?vNNpehofJZosNaswS6lzt2rhImiRJ2qU+6x/EMb7z0meFx2DfRCWSQClUlbY?= =?us-ascii?Q?UmIfywMgxHKRlhE5po0LGxkDzqvfkB1IGehd1g7C2EAG6WSlm2h9zFmhKC9G?= =?us-ascii?Q?CkdM2GR9QhSdPtYCCmQsHIxkSugswnai5h17ejEPc5ybIsZ/rDUs970+Rs4K?= =?us-ascii?Q?vTc6s+XlgPbefFj2YxHDC5tTxkPsgNrRdDFsaN9edSkutxjqYfhkUepGmGKO?= =?us-ascii?Q?TGgjq9oimePOeYYoPog1jxAiaajC/FU8Du/S6BbldXQ1UbZQz83PJ+uOCif0?= =?us-ascii?Q?6IE3+Ov/qoBBPFM8dRxWUadqGuqv8tSvUvkqOeQd8BqzK5YLFiwuR+Ol2rUl?= =?us-ascii?Q?8+w0b5ypCUeeVrb2v1LFn5msvda9fPCNNO8ejMjmVa+yYw8uRtx7SApr17xb?= =?us-ascii?Q?/H5GEdl6V3X9RmCh87URm55EQDcvqRQw9AUcOSd+NVKiNhJSmCdgUJJRgrof?= =?us-ascii?Q?VLWNPj4x+3h19e+QeBI5sZ0C0eK/ZKCTAtJY3nQ5fAZuEXfozBVS3Hzb8w6K?= =?us-ascii?Q?4Nqoj/jHDOonb2ofCoULEZ6gys+SB0MJX1HHNkWnuzU+Z9T9egCK9XDF4TDm?= =?us-ascii?Q?R1almjJ99Wl9kGsRhNDD3W6hhWZDKknrCOdVGtLVl4+AANg5PDKorvBl/tKl?= =?us-ascii?Q?XJsXfdbsAFM/qTCXT+viKf28Pg1wY8jEENKCm0ivNlHhy9d7HmEwYh8Mhrgv?= =?us-ascii?Q?pwapC0lmRffWiQQ5d9NYK6HhDTF0sq2nDuD8ej9YvE8QHc94o8Wgjb6K1wTQ?= =?us-ascii?Q?5rT1DJhID2gi1iYFESf8It4TDWnmzdFxjGgQEbrxkeKP5qRVNoo7k8CuGRtc?= =?us-ascii?Q?27exYcA9WJ4lKqCmlpOA4oFBOGhG/jDb4uIl0K8KwPiYATwZHqaKYtm8RxzP?= =?us-ascii?Q?yvcsqogjvDa5238EedLLFq5xIWPDp2zkORQ3sbmAzLPBoeTXomM/qh30LStt?= =?us-ascii?Q?pkBDWlf4VxSqc/78DnfusHCUAqQDrzZ08BSwKqZVALk+vALv6NmcXH7EMWi/?= =?us-ascii?Q?JC971e7bq7AZh7gbJ0i5RwfF/vXe/+qy/qPyZmedH4n1j71via8WsGnvf2Fv?= =?us-ascii?Q?BgmXAtoUurhxMQwTtadTRSDfrvtHmpcwgkJO+SYK8rT0qNKwQu2J1G5DM35g?= =?us-ascii?Q?L73wjEPO94jkPmwT20s/wAqtsZmMLdRbQm/RWK0YCNIHG0sBBhqY9HLH+qwM?= =?us-ascii?Q?qBKqZlYrUWwv/GhIWocFpTZt/bjCBIq4oW7DmwkkHmksLpWZKVhSQ29bO192?= =?us-ascii?Q?x18aNwEGZjrnSW/UJTla5EOIi/SCRdcZ2zeJr9tjNlrvaqgFDsIiwXOd9RBH?= =?us-ascii?Q?fSPquhtgD044Z1lPOMCpY5KTK0XcGAHO7hTKcYnXZe9yTaw5YWdd1DMfM+Ff?= =?us-ascii?Q?gOvQaOeSOvaMOt18+iR+pL19mtXW1Ld8OdkhhJMahdcHTEQ4ZEtFf2oVhmaQ?= =?us-ascii?Q?Zn1oyWJbXvklHYaNMdkL2LfiDDI+jXe8aw47D4bxvKXSKjXSGb5aYQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Y0+qIxqmKf3bncxfzSJOEiFB/CtrShqfEy68TvzXCzOTsaANouJFUhGxmNrD?= =?us-ascii?Q?/Dj9QhKoD+3CrTaqiOWR5pVTCXXbJUFQrXrds39JlIBxnOf62cuO691BKp0p?= =?us-ascii?Q?PVYCH7PVMEp0jvUikjCeFk7P8zM2HRJ9RrsHwIo1PBwiFXdgBeQiJO2+eizl?= =?us-ascii?Q?jdpclSXO5iv9QdD5kIE0n8Y4gN/J+slRV+V3mNef4hq2G9MK3WdbTNAOEuoo?= =?us-ascii?Q?pxbrtzQJUdK87Xe98vmd5RJ4J/1CP+VdXjHTGJMp+BOPqLQbyPwvG7kS7j3d?= =?us-ascii?Q?Dmue2uwqtqmAqYM13twZ5J+GyrtuXycMrPEo65mhYtC9DWIsDyyNdT6q2tie?= =?us-ascii?Q?GGxdF/4bA4xzZ7a7E6d12zOt7gLC7PtiYVkbuhgM4XwZlattjW3DirbvaUDs?= =?us-ascii?Q?Qyvs1nveZACb1Ke5FuhXViBLggHb/65m0vmZr9BEQhbfyk5sK3wdeMhlpe5t?= =?us-ascii?Q?EQTCzVMq7HdT7qqWoBBnoyiYFVWzLGHwgrQa+h9Qv0DvXAlbfQJ4St3ZVIa/?= =?us-ascii?Q?dJG34AEcpk7Pa4+H0OQz/zBn0pAfj5+XY8yt85CEH77u49eTzylVJ4nRLrY7?= =?us-ascii?Q?rVgB7ujlh+yc427z9xjU6SAs1WJvpRQJ1f8TP5d27tKrLJeJzB029ZzZ3ZCU?= =?us-ascii?Q?AYc1rBOz7obucYO8odW3Ud3xW9SrRxvVAy9YeIRMSRZiTE5Gzo15h7fQcIl/?= =?us-ascii?Q?mR8JOzRqh6b4vrvtv9pGTirYTRlLpr0R463UOKL2n2nOAhSswfGKpe4n2KAz?= =?us-ascii?Q?/xPONKw3sfzEDLn7I7yaoaSSlrNDFu8OfyUxkFYCTY4jzmqTDebAJZto1p0o?= =?us-ascii?Q?y7orBjD5dp8y0FKqpxK4UeGbzwfCwsJ9Lwbkhg1++Tol2i+o5oGIoJvl3FED?= =?us-ascii?Q?3CmWi/txyMaQAJ0VJ3bw0JJE8X8bY/VkRzZJTotAzRDb8voUCISnyJQX+QTg?= =?us-ascii?Q?BfyO7UY8C2tLb8Z2hOeKDKRZb+tlgQyRDIiu4AOJNjtQAeQcLLKDZ7o3Fai3?= =?us-ascii?Q?MSlnKlmqbm9L/FSeG7h2sov0Qzo2l8nDz9sXPyHKffViv8qokNI2XpBAzimD?= =?us-ascii?Q?vqy+ln0uVAGvjwp9+VLg/TdLwanDPvYTBQcA0x3JJhs/iZn3TLHHkHtWpdd8?= =?us-ascii?Q?ApoLa67/sov/An8We6Cjad57jYWgruB3Dq8OuPUiB/nWdXLbhcYeNf+Yl4sP?= =?us-ascii?Q?2JeAUmrBpsdIQrkC/hOsiWizMq3XZIgwZ7AK1d4tOdG9BvZi5ij1rdeAnZek?= =?us-ascii?Q?p/a5JDWCmz0l03C7PIZspP13DGgYexRWvI43C4MViwy9Kg53QmLjzMdZ6H8o?= =?us-ascii?Q?wkgN3gQ1ETfJi6wRP8geAzy9ZOZuS5Aywc3euJ48EWLfUiW+cGM9sMIkW8DU?= =?us-ascii?Q?eIp9VGEsObVdb0Tt0pTmiF9P4FnuVkkIqBjES/QJJgRxuMQrFlXJgUq4vveP?= =?us-ascii?Q?aaB/CBtSAju6CIotMH4+n/8u4baKr9WJj+ZzyTq0b55J5/zsUzKjuZULu6Wj?= =?us-ascii?Q?HJcFGxapbkTA9kLqF/X04+nvSj70F0qtGuoLvzVpfRHzzLCYStQ32oQ9uXCI?= =?us-ascii?Q?XndcJEJ0gHsumeW3JB0BIHkIgmiBHsEAHJgN/T0c?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: c7805cb0-135f-4421-8ab1-08dd942653ed X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:04:09.6199 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dhoiQDa0uaTH+IkHUHu7yn6okrD4T2iQk9Qwk2GnqkIvEg5kwlNdPzklIGdpDBv8Y+SaP0H3qftOJzmhrnlxxA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB5200 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search and insert code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/ref-verify.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/fs/btrfs/ref-verify.c b/fs/btrfs/ref-verify.c index f241ed4bc21c..d97dfa45521c 100644 --- a/fs/btrfs/ref-verify.c +++ b/fs/btrfs/ref-verify.c @@ -165,30 +165,21 @@ static int comp_refs(struct ref_entry *ref1, struct r= ef_entry *ref2) return 0; } =20 +static int ref_entry_cmp(struct rb_node *new, const struct rb_node *exist) +{ + struct ref_entry *new_entry =3D rb_entry(new, struct ref_entry, node); + struct ref_entry *exist_entry =3D rb_entry(exist, struct ref_entry, node); + + return comp_refs(new_entry, exist_entry); +} + static struct ref_entry *insert_ref_entry(struct rb_root *root, struct ref_entry *ref) { - struct rb_node **p =3D &root->rb_node; - struct rb_node *parent_node =3D NULL; - struct ref_entry *entry; - int cmp; - - while (*p) { - parent_node =3D *p; - entry =3D rb_entry(parent_node, struct ref_entry, node); - cmp =3D comp_refs(entry, ref); - if (cmp > 0) - p =3D &(*p)->rb_left; - else if (cmp < 0) - p =3D &(*p)->rb_right; - else - return entry; - } - - rb_link_node(&ref->node, parent_node, p); - rb_insert_color(&ref->node, root); - return NULL; + struct rb_node *node; =20 + node =3D rb_find_add(&ref->node, root, ref_entry_cmp); + return rb_entry_safe(node, struct ref_entry, node); } =20 static struct root_entry *lookup_root_entry(struct rb_root *root, u64 obje= ctid) --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11012023.outbound.protection.outlook.com [40.107.75.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4B837270552; Fri, 16 May 2025 03:04:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.75.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364656; cv=fail; b=qMSr0aS3WGpcnDVe693zPc18V49n7nu9kTWZ4lSdo36yaCJqcBf1OWtmdg0ty8DXQjDTmSOl46Estf5bDmyiRCzfgs05ZFGnYHp4c0KcxEzKrjSqeaeioTmHcrbunH/juaWLOloDlukL22k16kgyo4LUdjzjGmz5HiBcbljQ2W0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364656; c=relaxed/simple; bh=UJReI4f0Kb9O1aFjCFFA+Tw7K5DlN9g6L1vUoPkRBf4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=a9UsXoIZaW/zTRmQFhdnqnPm91iEQ9hZjNNrxjjpDZOWylVVHovx4Rd/WIVY67ru/51om7h+ppSZYoYD5N4jcdOaANXymjFsvfUnBkD5/c66VwUesGDuuNWF1cV7UGmJXyG+Vx/rWbOG8UKHRbMFCzMQ0yruEAS9c/JOX8hj3tc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=P/Sq37JY; arc=fail smtp.client-ip=40.107.75.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="P/Sq37JY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pLxdMiBf+keIpCGs4kzAWC9wJpH5zE7/zsrMLkC/Pqf8thub9H7uNzKfT6gS4J8uARkKiL38ewqYBXxG7Vv0ir3d1f7OlLFBF3Bd/rXGsNMfdwiMvfnn7hZ0R4V3v8TZGcuGTXaFfkoSfZgAMgas22LsVszNv1O4GCKFkYEV2nixYctvVRjFQscLcn8u8LpiYk6KWkBzKMur+j88Ct7c6acl9jIGrc2GRtjxiFwgXO/EaxAGH2c9cwsTExy7BUS8qvI1wy4v7S47dWCPLNlX7J5ki4Q/shxESDG7ocRMkWXoc7vw/eMIExN5cX8v9rVrq8ZyL56HJbouHr97NU8Usg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=Dk7sXuEC0+IxJiCVNnjtCxFZVepHvU5VrZWLzWLZ0Mg=; b=Pn2vfPO8sRwyqmEP1ANDdFZrhrc/pS/pKbmCmFjoDPWD7LX1plujDIjAUOtIpVSlyhWxLkI+QI/fTEYpTCa4Kl6WmqHE1CelfovEXRqgNLkhuaZMR/BurMsEsPYzJtmmVn/TxtURWi7VVNeKxxVllra+PHVWnVYEyAqkycBlwLT8R/iReIVG2jmFYaHcWCYKZ+ghDn9ePKkxQr/TXf99m/IrJscL4v9S0RQWXjoB3DpXt0EJyNpI8ugfyS3BdJ1y+VmL+z5+1UFPHwW3T58q5mvDlMMBdzqzh48gmQSm7p++auohk0xdsc32aSjCuKhmwcjn0+4Ne6lb7RN7Ado18w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Dk7sXuEC0+IxJiCVNnjtCxFZVepHvU5VrZWLzWLZ0Mg=; b=P/Sq37JYIBhGs30M7IMixTSfa42O0X7RJwnBgVn6zCpC6O80hDDwmfo30FIRagnIeRLDd4zrkXXPZgPRnuvZmv3VkRcUN0TqKwF6HJ6qZGnZ3QFk6mzsqkQrFxAP93JFPYB6o0/Fd6swIXLH3hBoZCFo84kUeFmMuMtKOLocbWNC+0vexZaX/lUhras/8yy99Ufj3WSeM/ECcktUjKdsLkvvgBsYmcx+y0+IjnebB4vPstdT5rtb10By/mOm6WtnsFTgATv1b2RG5sGT69lmJQmgM4BtTprv6xZZTNoXx5T7SAEht1mBqX5sf2GyLWc8wcoDcGlJdE6dUOesWJdAjg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB5200.apcprd06.prod.outlook.com (2603:1096:101:74::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.32; Fri, 16 May 2025 03:04:11 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:04:11 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 10/15] btrfs: use rb_find() in find_qgroup_rb() Date: Fri, 16 May 2025 11:03:28 +0800 Message-Id: <20250516030333.3758-11-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB5200:EE_ X-MS-Office365-Filtering-Correlation-Id: e1f2815f-69b3-45de-383a-08dd942654f3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?djk3nbm8h7QJpEr3jEAiClLiOsIttxKWqZAXCjFWgenG2QsGyRCdn4ZZuKC7?= =?us-ascii?Q?Z3BOYvo6s8x9QfYiv3mb6s+Z9GakBMjbCRRa8TUaYXKhoM6sDGqIIPBbuKO9?= =?us-ascii?Q?n8e4+pleHgOoTDHhSz2+xzd6c88Sr7cFlR5DliCoAFirTOfJFPK3vq6sWSZJ?= =?us-ascii?Q?kdCAqde8M8bHOUvhFJzJcmpcxZPRPk/gampn3ejVoDOg8spTbPXlfxvW9zFE?= =?us-ascii?Q?NOhB8aRkwGtGeE6wDSDNtYLZIZN3dcDNAcsVLWEFO0jkA7oEbv0ymrMvj+Tq?= =?us-ascii?Q?HO1G5uwNMREce8jo1XscEWLkAHShS4IEn2w0rV1Cx46is2zTbIOVzTZa6U8o?= =?us-ascii?Q?OpcT2czBB+aM5l7/m9pDmhFGzunRu9S0dUVQhXnFBkA2LtE2o4sM0B/mGMVu?= =?us-ascii?Q?uOW79HDXLLQmrskqpZQLlpsTsPP3SzfceU6gZgCnwqru0RtOwzgeJevBW1OH?= =?us-ascii?Q?nxulEJQcNprB85JA0q8ydZU4Wn96JuK10W17fcN+O02kO+JXuXVZUJ9UJcs1?= =?us-ascii?Q?1f6DJtIhFIl7Dv4DsjVUz06lTMXSdBUHnkTNMKvCmssqT6D08kWINa4qiktV?= =?us-ascii?Q?Roji2K/jErh0PPVjki/zPUyctQXabje9K3tCU8uIU5ey8I7QPD8sui2YwVlA?= =?us-ascii?Q?k2FJkkWHxSuBffRmyIPTM5P1W5tuiI/AJQkhNeBsBfTTGD5fz/xD+4LjO8I7?= =?us-ascii?Q?l1J/69/bK3770WML1Et4o8L8wM1fIkSPoNO5pFaOatWp8qLknUgp0fcIEf3c?= =?us-ascii?Q?xukQvCqKy27VJotNSQn/UQ8b4AHo0ppr0asfik1h3DbiwNGgvPtFjsiHm+43?= =?us-ascii?Q?lU8TtPP948LRI6sgrNzKN1Qb+pK9KZqUg4MXwmNoe9Z71KBCiGRl5SVpTeCA?= =?us-ascii?Q?QOVWagxbNu5QVBrorCOKnr1giPQcqnKI4LSMFelkYWgnpjyXI+pDmswBzBZT?= =?us-ascii?Q?B4cNN2Xv6jXmoxs4EPlvKN4O3j+X/M2yr+sXfcZsNEfCwa3+LmZRJNr1sz5X?= =?us-ascii?Q?siMFc/19kZvjAR+hcyGY8w1D4JPyGTRliD3rGKu/UpZTUyxGFBw+/aLvb3ZN?= =?us-ascii?Q?PaEvVmVZ4jsxKrOi8oheF1mudhYJbO1SGoRugY5ehobGG7Dy2gQN1Jra8904?= =?us-ascii?Q?uboNtLa8D7KaLmKH8G0HnFlDcB3TtiZFZTwGDEgcT7UFXYOAjAYKH1e6m2LA?= =?us-ascii?Q?JsHW5LlJxVX71C4vKII5g4g0JjtjIKayGmHuhKN7QvvQ1hbLV6XEds1gnCnL?= =?us-ascii?Q?GLpsfQq5ieu62MvYHR3axTf6Cxw+k94qttu8755FI5ISHHQaJ6QMbhcVCYmE?= =?us-ascii?Q?B/YwMr30eOCpAzKEc21jLkNoAd96lz4hRysTSdDPzH1yxYGWaBip7YrDtbGR?= =?us-ascii?Q?WfAwI5qfcoHKhBCdOxYAttrYJ8LKJBdR1KL9QFUKfpeEYd2McLHnP5B0LkX1?= =?us-ascii?Q?5avLqj0g/0ANCKC6zxAZ6yeQq+fXQTqo8JTU3lX+o2XQzACmsGz1Ow=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+nlqWlZUaTzA66dEToWnz2jHaA0H5Z+1Y05MN3211jxn73tvS3J2dV9y5CLn?= =?us-ascii?Q?4hSwbtRRCWcfnVBOsvDdWWcPmPHX4GzuEsS4sVcDpwMjYQnosgQeidVjJcaK?= =?us-ascii?Q?S6F4hb3tOMrdhPM6VrjqrpKRssKLVaH0BQSsYtWmouNrdUwqDV7YFblzy6XI?= =?us-ascii?Q?yhGbuuATxAblnPbo6wSUt66BKAjOGc5UbGnz+Fl5PoOfrvHeTURbKot8sY9Z?= =?us-ascii?Q?WznyBMM7e+uG/U+0kUj3AQZy4R1xfXl19+2WN9LZaWIArAQhHDszagJvni5I?= =?us-ascii?Q?wTrsXkC6IXVeEnTvj1xRX1du18Az0g33Rr7oKCnem4VfDGeSoMjs4YtQQos7?= =?us-ascii?Q?vjppF1rAQD6DljsJnpi6a3simUn6Wn2+qjTDdrPvwOtyGWhlK0gy5hY74WLD?= =?us-ascii?Q?09kSmmuE05FzvmJ0b7pnNn/h2AwCShnm6dMpGWsw4t82tubEJgwD+pMtDuab?= =?us-ascii?Q?pR5AIp3b4Wapw7tVBgbACwg1hW+YzDU/ZbwFWSr0Z/8goi5zJzm7H9XWXU+4?= =?us-ascii?Q?r07owqMjDd1nEH/HFsav0h1ofYMkya0fh3UXrOdpbHD4479n5izNCHDXSRY7?= =?us-ascii?Q?TBWK286pq1AaEtFjMRuM5/47OfghtKJeAlQCntuh1uXGO+Upr/2oXm+C2JYZ?= =?us-ascii?Q?aXFG0h89k/71LXaFn5+gR72go1Al3blE2XlFtFtw1q0JcnG5be7Mw7Jugbif?= =?us-ascii?Q?02CZ7nlKaXFuzTtfuVpftUyeP/0LSS8m+/pouB9ir+rKQ3IRuA7Ja6P0lirQ?= =?us-ascii?Q?2dN5xGCgkGo9frqHYxzrUT1hbwR9gmOZgVAS8PzXvyUjhwOdybZRvuIArSzI?= =?us-ascii?Q?Xkg66ehNVm9OWlYiHfHhdcrdk1aLbJGOF+Tv3pa097N1N9A9bSgnuInuVZGr?= =?us-ascii?Q?PfkE7arlAjlnQB/Y5PgrpmcjgWfjuKKfTQ5Z3BKRi25Ryi/Gvy3j2P50xuFD?= =?us-ascii?Q?z95miu3Jsjvh+87rAcOgqldkSEPo8cnsgpVoQ22pgRG303v0le0qXyzdJt//?= =?us-ascii?Q?XcPsKVPsOtGTwET3NVxQy+HDmwqPo3vepWCxTw0pw6QTb261GiPz6uayoSlF?= =?us-ascii?Q?OVLtkkyF4KabUNcyEL0r18FSnSruFQYUW1++yoJiBgWeselPrhRrnKf5NTYf?= =?us-ascii?Q?WyjP2ezswS+oIUI1VALXQaohzIjxH9P8a1X/FTg0kpcd9dfA20JtAsjizE0p?= =?us-ascii?Q?FZ/9iGWZYKLUKrYuOnopOLinQQPl6PWj2LdJVVSN5uxtSAFAp6WdhSrUmcZy?= =?us-ascii?Q?pq+OphVAQCdLW83o6qXqv59RqvN3oMOu1N856pjcFirKVfm5rWii1YQU7VOp?= =?us-ascii?Q?Sb3Hf/YSqvrMmUIBvJf7ge2MWehqlCfJ/U060ZwiQ0QwQi0aRTEcLlLSNCCC?= =?us-ascii?Q?X6Jo9r6GN3rPSdAZP9wpj2/f8GDvJ+vzrVAWf/EH0AXwE4C4w0pKdzC08ZmV?= =?us-ascii?Q?LBwkdMsNPLfXP7jH0UpMJhmFU7nAjCQVWdxSHt7LucZgmwHFpe48gRASYofV?= =?us-ascii?Q?xLoL3SWx641rhqYjUjlu06CROWrXV7jwSqv+Xou3/uvY7fvn+MNRv/Ld+4E/?= =?us-ascii?Q?cKOv5RO05HqOpSPakU9NqtNvoOWe9L/rLIG69kBt?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: e1f2815f-69b3-45de-383a-08dd942654f3 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:04:11.3293 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IUOO+9AsiMbuq/KrX629TmLSU2g4QqIvOPNjIGevzCfdT37t9MkyeSEW90P2X6294pqCbvVUMtOzXw6JRWg/pQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB5200 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/qgroup.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index b3176edbde82..2e2a76c3e92a 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c @@ -160,23 +160,27 @@ qgroup_rescan_init(struct btrfs_fs_info *fs_info, u64= progress_objectid, int init_flags); static void qgroup_rescan_zero_tracking(struct btrfs_fs_info *fs_info); =20 +static int btrfs_qgroup_qgroupid_key_cmp(const void *key, const struct rb_= node *node) +{ + const u64 *qgroupid =3D key; + const struct btrfs_qgroup *qgroup =3D rb_entry(node, struct btrfs_qgroup,= node); + + if (qgroup->qgroupid < *qgroupid) + return -1; + else if (qgroup->qgroupid > *qgroupid) + return 1; + + return 0; +} + /* must be called with qgroup_ioctl_lock held */ static struct btrfs_qgroup *find_qgroup_rb(const struct btrfs_fs_info *fs_= info, u64 qgroupid) { - struct rb_node *n =3D fs_info->qgroup_tree.rb_node; - struct btrfs_qgroup *qgroup; + struct rb_node *node; =20 - while (n) { - qgroup =3D rb_entry(n, struct btrfs_qgroup, node); - if (qgroup->qgroupid < qgroupid) - n =3D n->rb_left; - else if (qgroup->qgroupid > qgroupid) - n =3D n->rb_right; - else - return qgroup; - } - return NULL; + node =3D rb_find(&qgroupid, &fs_info->qgroup_tree, btrfs_qgroup_qgroupid_= key_cmp); + return rb_entry_safe(node, struct btrfs_qgroup, node); } =20 /* --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11012023.outbound.protection.outlook.com [40.107.75.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2ADB5231CB0; Fri, 16 May 2025 03:04:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.75.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364658; cv=fail; b=Qtd/p8sVTlMn7ct6KGjm8313HU4sL/F3Y2MCrqa1ou6gto5tSfbPR4D4vvUSyXSzmUX0Oiz8DjtBp202FNW2+m2R/ZZnH0JzoSZrk98IPizf1TFjnxJ2I6UlBHwqhemrfCv9/pN+dBRgxucb3b82dH1HJeouAJ0S79Ebr6x5KQo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364658; c=relaxed/simple; bh=+pJGx8H1w465DtIlB1aYsrYD2MHcvGl9m6vV7Gn4qCc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=UrKJMFT+csJ0Tg854zq3PM/DKBfrW3VPcsa1hJ2Cc18a7rhz91Yzwfn3Vx0S5Dn55Cz1Fc5OG1nb+1mFiKMp0NWNRyLiWbmnnDyaK2NWwR/7pbMzByAqQX5lt5hP+TvfqTEtnn/6cqeAET4u130vpuy6CWanGPCCDuXEhU5qJc8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=Og6OskVn; arc=fail smtp.client-ip=40.107.75.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="Og6OskVn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kvtBoKM0Wg52ouxN8Cdhcnbp1W+iY70Bh4z6dP3dVQZfLPJJ7IuOzI16jwH0LyPQ9fKB3ZE3rzm3L93TtGlNCgdd3OLNYrwuU5y4D0UqSf5d35U3wjGZghufgE6kUNzQaEJUuDas7dL3+G2NQFqKm6LFh+eGI+psnBo3Vl4eFc0j6klATB2cJnwGWSYHT9CxABi85087c6MV75nvSKcGgZTBQM9o4qB+cCpAZXvEp8ecbnUbLbxBlakFZkjqg98soOdlnVDUIqcWEoQIAxUgPUoCQYrr38RlYjlX8RSDJlw4lKR7HPTzdHdPNNZKOdmF77C/05Poyi5t8abtURZBDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=HkoPAgHEdrmEzSBqZqNMoPfHTxK33pPEtYeVlbB1VlQ=; b=RCeQPqvb4Gtr+4pVV0So4L0G3LrmuVrnxRLZRtA0h4y4clkK+oXmWre7IwLVDiSxaA0hKwOHl7nePLPF9AuoPrwd3EDFi/KMO/3UcRyBz3yyJXM0CL0jYJaHOoyEsUeseEYcONLoXHqV1jhDqjUJyzocpSy88Huv62ClaKDNc+lpDSCFAeJmpR7JrF3IDzAZfuEsjvZ1xJ/u6fSww6mK0l+VtfhKsnxOK9DigzrmW8QIyxs+6+UP/cAcpVb9WSfxQBi30yEC5VLIU9Ja3LfuML8JSTQ6dsAt/UYt6kicbcrQIu9eVXYL0lhgDjzuIv6Qknd47P+o3zCrJJ01qx0VNg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HkoPAgHEdrmEzSBqZqNMoPfHTxK33pPEtYeVlbB1VlQ=; b=Og6OskVnnwTCkuWnRG/3iH30f4gVfrqtYmPQN2K7wVhQdWy9TtcFYpHPkkKkOsgkLDDalzQiP8iv58GZBRuZS0lWxFHL3U7tOQ/m6xxqTxWwQG0VUdXLvyALNng5W7icbdxW/EqGydUCjPkjSDCzMaMRXfcfCDrGbA4l/+wqcNShuW2p59seuSxSPfUHFHNzMxiY2ffAZf55BEsTtTV+nbNJZ122ChQS2+8pKreqCGoS/cm6m3LJCw3Mha0yNGok1VR81QyMtK2RHtYBazluV3F1XtGeE8SvJh3PnufQtG/LGAFOxLzJjgIif3uMITn5nCE81dohVMw5fopLslm9DA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB5200.apcprd06.prod.outlook.com (2603:1096:101:74::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.32; Fri, 16 May 2025 03:04:13 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:04:13 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 11/15] btrfs: use rb_find_add() in add_qgroup_rb() Date: Fri, 16 May 2025 11:03:29 +0800 Message-Id: <20250516030333.3758-12-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB5200:EE_ X-MS-Office365-Filtering-Correlation-Id: 25311cae-8449-4648-a11b-08dd942655f7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?IAcLnoNOGvXQm2CH+m8HzeT/I2PK+Z/NUTIqfGDEDSTevvGWKfITUyP1G+dY?= =?us-ascii?Q?x0bfvLwkyaNv1L5mpcctF4uZ9+R41DINr922FP4vO4v/RcyAD96l1ICz1rN0?= =?us-ascii?Q?3Rv5mDr6luF0SRFyyZPRRx8snMx14GXs/Wy95xK6ESF94jvpWweJfOtb9TyE?= =?us-ascii?Q?ZDS+aOphnS7OLrSGwZqsGvuMZ8K4OF1EIPnp3qkDmm3jsYYcBQ02VLr/4dvN?= =?us-ascii?Q?rorjooQ9wJjXYlXI1qEAh6RlVtvaskgzLwRfnwOSV6aR3LUfUUp/P4fkkANd?= =?us-ascii?Q?7rHQCl2ZzH/sUQVW7cBgcml7UuC9TrGvisT32ZC8GsIakF8kZMWAfWXjpcR0?= =?us-ascii?Q?WDMVEnEPVN+6YST367HTguhVzTWoqWsaG51qAMKqkNOJQieWzVa8A7JwMVTn?= =?us-ascii?Q?tWJQ6Vb1d70d+S8jRC88Wbsj/b/1cEjKfWmt9FbObgP3Q74XzHSBxGd3IB2X?= =?us-ascii?Q?rbLw303SJ5M7Kv8dmDLaXFir6zrtepzNqRFlLh/U8ximkM0rqIf7YUSlxov7?= =?us-ascii?Q?qNsHIg8dKikQGNeaI6HAikFhcVdr1p893EIEA+atm/dzDYlUZGVlrmQPPaWZ?= =?us-ascii?Q?D1OQscvzePfqG8fYqinaYbAVPBnfl0EplonorZSgd+xMtZ6i/Jdd9kM+4Z1V?= =?us-ascii?Q?JqcqMs7bAfk2qADW6Q0ka84nly2e99qD6ylg6AQQimDRSMPq2sYuWfhyhNQN?= =?us-ascii?Q?DwujsQ/2ykpHcJa4H5VSiyr2ARw/+14RJ4XmQ2ZdhFyVYwNlXpih91/1YVj/?= =?us-ascii?Q?Xx5lXy/owQVhSTD9zxeyTfWdywQwft8hbcNmJH6s/AS/s2C2KZeMz9h2NzBq?= =?us-ascii?Q?f3kjJzGzWQywEtTnUc3YyVGyZGqlBVJu7CLzipg/o0RT9t0fktJRiRDCtxo+?= =?us-ascii?Q?oPkzEfmroVudOz/TVLW9MhDPWkv5jA/OBJ3SCCL5yIo1l/Veb4EWHsYVxcxh?= =?us-ascii?Q?DJdB917ZQZsC/dX6Gz+IjWhXAWwfnDDkDKH8rOqrfwHMTQvfZMWiPIQVKgLX?= =?us-ascii?Q?lCdYi2PlV4WBxuuFQsDPwviBbWjuZCB0F7tPmogLi3pHwSSh/6pYqTz+MmC4?= =?us-ascii?Q?VbxEQMKnf8ZGaxrAWFXy7fwpg8oAEvRhOrJ4861wy645iENQBP55Zbih9YDJ?= =?us-ascii?Q?baeAXOicQwXCB+YFxiwLkywQgj1LO/SpHtSFXjps1TaKiIp5P3uT/uc1BR+7?= =?us-ascii?Q?BscFqOSwO4LMr9amIXTCTqjpBBPbCzkvFlXaLbbppoQyVbCrcIkkrQCSYWWV?= =?us-ascii?Q?LrfXPkry0P573EXR1IQLa3jmKDO3q9ApWqXs45Wa+XDn2SfXun7muIMk+vjg?= =?us-ascii?Q?dK39CS/vyZp5TzOZuAH/7AKWZDz2jru50LEcMvRwxHdazCaVd3Tb/YGu1yh5?= =?us-ascii?Q?owDO4R3gl0bi/qNrFSDtmBb8LSWeirJ3VEqsboAvqaBQMMpZ8I7O8KQUUiJP?= =?us-ascii?Q?0Sy1cwBYI/t3hk3s1T7TNFaTxQ3S+Fw/JGceeQQDeNsaqE6sOMXqjQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tpNYWmg3cN7spLC87G16yNmqGaYuOBejGj7mD7iDaKq/vswpH978k3kefQ4M?= =?us-ascii?Q?j00DDYlrpag2LnW6L+AkUStn8YnZGm+TMJaqCT1oCO4WuHQrQjmmPnIpDwsy?= =?us-ascii?Q?vpvWj6UyljJblNrqPNu52FPhNdVsigAUD5IRtmPKkdUigu7mlu3tM+ayxUwW?= =?us-ascii?Q?GWX8mMR2Ip1N1GvwfY/YuShTduiwu+Um1xJPuYvbmk9CXY9uJW3FetAQWAVp?= =?us-ascii?Q?QobHhKRSz9fU+9V4grImTSaeROPLjlc90J4Uy3PJsumfu5PZJrRWXhkd64P/?= =?us-ascii?Q?xJEbdlZdIJFN+qkEBA+Qh3rm74/XjismeaO5h9wzC8bYGBY88sbKFPxrS7Nk?= =?us-ascii?Q?sDncXTaNcIz/l1c4WHuK5bMy4166ajcO1zzxBXRW42E621tvIXjbahIpFmc7?= =?us-ascii?Q?jHluV9gaofqkjBmHLpeodfcWSC1p0rteSIEgIb4Vjl+7GN7FT9X7FcZh3/Zi?= =?us-ascii?Q?EYeOOvfVEdIniDwXtDOFdc6AZnETZF6oBTEa5aMDJhReVWuuW+2rgWE/R1S+?= =?us-ascii?Q?ijiY/i+RnpTg3PqiaU4EdXW/DU7KMk3XYD4jNXCoZ2qdUZtS4OJvstLo4XYx?= =?us-ascii?Q?UX3o8ekg2C37vrs8hu/AcPLF20pzNYP1wnp+Y4kNhdd8FJHHlOIAEeWm4IYA?= =?us-ascii?Q?sovh80ottnDwIb0qgyI8e36EwAnJRqjd6DMFhbyDXmfMRf0lWfe9YlG13Ayl?= =?us-ascii?Q?hymZIHrGuTA3Mmd7fuC/WR1YUa6/P6sZKsEFn3tKCrFY8u2br18k/vt1YLFX?= =?us-ascii?Q?sW7BxfPxZw2doO0WoUpi8NM9/96072tzTwRyPxI6Arv1iaqbsHWlKkeHhFZB?= =?us-ascii?Q?dwFzf0osvyWSgMffXKxGpIyBIYh0krKKrduLi3HNUfhqpY0jbkq74GiL9jU0?= =?us-ascii?Q?cfeNiGw1gXSMGszo9CdSJLWJENV8xAL1oZgdBGqGypoiK5o9hJ5lgZTsHUR9?= =?us-ascii?Q?IPYiLC5O3/QIXmyt/D1RCyJjITKA1PhDgMrYX6K/UipaMgd4k0kumzNBs0Ks?= =?us-ascii?Q?eI5CnwKz5abRGUQf6EjQAgrCdk4DOd0ntEovnSW7PJhtOT7EG1xn1uUChmJc?= =?us-ascii?Q?odrcqymV9KJQxtSo2zHJFiJfUNw9ywSSNJD53oxHNQ31kHxHzniiwNiUhw0M?= =?us-ascii?Q?7X3RAK90ycf07xEFnfa1Ja35OL/81A1qef1UnULVq3exUZZb9HlCT9NVK2Wa?= =?us-ascii?Q?nNfLQ82U5PN4rUFbx9S6keUXu/wycttdh4jkziLnK3tQd07bvlGdfMnKZVnh?= =?us-ascii?Q?YEn1GIshZFV0xGZKaisLhzlfkysXuFH1j86/ftWPQr7pK3sBeiXCU9cTdzY8?= =?us-ascii?Q?RMz5cxhPTcZNeGTmfI+LCDWGbYIRWr5vsWjfMjGy6xRq8DWiKcORM56bLhv7?= =?us-ascii?Q?+Q8mZwfm1ZsMSLB1uqlZjhiXcfJdEyMIgW/zEu+oH0vhhIuu8FzZTmgQdRrz?= =?us-ascii?Q?sM14xXfkXr00rZndvYb5eUMlB8ll+RTDIjBrcUmLPTr4cR580WPovdTEsSCR?= =?us-ascii?Q?o9uWxYVON8JGjes1I5yEIuGNFyal+ldrjIDifRF+9OpRVvDXpmWRTVxNp/m9?= =?us-ascii?Q?MNgwsAyXv5OojufDevcA79nMgBkCxA+hEBEuMJXK?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25311cae-8449-4648-a11b-08dd942655f7 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:04:13.0637 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vL6mi0Xcd7S9NYryKV6nTd1ZeGGdcYNIO+dn3VzLWx+YrEBzTVswSnAKbkCu1wh1x7hF9hH7K5vjfAkNuotf1g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB5200 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search and insert code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/qgroup.c | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index 2e2a76c3e92a..683a35bd36e9 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c @@ -183,6 +183,14 @@ static struct btrfs_qgroup *find_qgroup_rb(const struc= t btrfs_fs_info *fs_info, return rb_entry_safe(node, struct btrfs_qgroup, node); } =20 +static int btrfs_qgroup_qgroupid_cmp(struct rb_node *new, const struct rb_= node *exist) +{ + const struct btrfs_qgroup *new_qgroup =3D + rb_entry(new, struct btrfs_qgroup, node); + + return btrfs_qgroup_qgroupid_key_cmp(&new_qgroup->qgroupid, exist); +} + /* * Add qgroup to the filesystem's qgroup tree. * @@ -195,39 +203,25 @@ static struct btrfs_qgroup *add_qgroup_rb(struct btrf= s_fs_info *fs_info, struct btrfs_qgroup *prealloc, u64 qgroupid) { - struct rb_node **p =3D &fs_info->qgroup_tree.rb_node; - struct rb_node *parent =3D NULL; - struct btrfs_qgroup *qgroup; + struct rb_node *node; =20 /* Caller must have pre-allocated @prealloc. */ ASSERT(prealloc); =20 - while (*p) { - parent =3D *p; - qgroup =3D rb_entry(parent, struct btrfs_qgroup, node); - - if (qgroup->qgroupid < qgroupid) { - p =3D &(*p)->rb_left; - } else if (qgroup->qgroupid > qgroupid) { - p =3D &(*p)->rb_right; - } else { - kfree(prealloc); - return qgroup; - } + prealloc->qgroupid =3D qgroupid; + node =3D rb_find_add(&prealloc->node, &fs_info->qgroup_tree, btrfs_qgroup= _qgroupid_cmp); + if (node) { + kfree(prealloc); + return rb_entry(node, struct btrfs_qgroup, node); } =20 - qgroup =3D prealloc; - qgroup->qgroupid =3D qgroupid; - INIT_LIST_HEAD(&qgroup->groups); - INIT_LIST_HEAD(&qgroup->members); - INIT_LIST_HEAD(&qgroup->dirty); - INIT_LIST_HEAD(&qgroup->iterator); - INIT_LIST_HEAD(&qgroup->nested_iterator); - - rb_link_node(&qgroup->node, parent, p); - rb_insert_color(&qgroup->node, &fs_info->qgroup_tree); + INIT_LIST_HEAD(&prealloc->groups); + INIT_LIST_HEAD(&prealloc->members); + INIT_LIST_HEAD(&prealloc->dirty); + INIT_LIST_HEAD(&prealloc->iterator); + INIT_LIST_HEAD(&prealloc->nested_iterator); =20 - return qgroup; + return prealloc; } =20 static void __del_qgroup_rb(struct btrfs_qgroup *qgroup) --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11012023.outbound.protection.outlook.com [40.107.75.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F2D0228151E; Fri, 16 May 2025 03:04:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.75.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364660; cv=fail; b=HlYns6kDDEEjBe85ozzpmPRf31zoGck4cant+7ROORSYB3nDQ//sV4a52LPRY9GhcihlYI/VStz0xuKVcvh50MuNGjKupqyrODQsjgTsqGvZ+a3m3MfbRhsaMfWMl3QdLlgqC+JEbeLCWkxc8AZ1oajLdIV5TbIYKlVnHnbtiuQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364660; c=relaxed/simple; bh=OpoLFVjLrpF2edQ4Wdd7LyEC3t0ePmjAonj7potmYCw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=bJUh3yBg1eOOVRTBQ1cVXBh9nDrO1A4rJF0/m9nDiiACxkf7qhQqjEQ+iHgdRSwZLzwPauiXdchIbg7VvbGw9o8X5/JcX3EXVC8T+jwRGGoX/K5Ya3b8WiIcrwNSTvPDEMR7//8jbEfJbUhok/cUeDjm8za2NIMDcVUlex8xmcY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=aH8ro8ne; arc=fail smtp.client-ip=40.107.75.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="aH8ro8ne" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HHrkaVKlOqNHUpaiMrrDSQOby67Lvn7tyu/Tace9rrgfXc9p427RtTYT4kgQ9OTvk2KE/PffERJ49C9bi0bEwk2n8UUoFPH+csHGn4buT/Y9iDhpGsf9gc4dLihOV1xgmhyENvO4UJ78mtJJSIBcmTZ/a9v5eO6P4Z4cKEfQaPSJuEfmesoYrjVMGAM8U7GJTfwQYjpF3h1FfU0Hjg0bsknz1SgHEYPrC1+1N7imacJg21hplOxCSHPbXA1L6YgdBZgICHnFkkWIRx+91+V1lngeDzCq8SL0VPaIOtXpSL/+sbN6OR/aTmLZ/F13urURmoTYRPaK/GqLTDw6oj4uKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=Ax1bKhD/QyK1NCFP2x7dJgaLzmkhFLniKqypa4NZZQI=; b=fQXlgwk8R1N1pUO3WO2CXbeenXbBUpm63VOFhcAl8aIfmVF8tl5wviMMfZq+htUeC60l79HkMiZdxKH/lWhGmPNJPaJSwJcnN0FEQ2dLKOWcS05kuURlBLiqSK94n2UPFAyTyiZNfyQpJ+aXcI4Jzn97nhWVMprhP1HQQWb6+M9REp32i0arEDXzNM62KgKXHZMSEqfXCt4EitmT5LvX4qCtb3kEnSpVxHiA/K6+PjQOKwThnNFS0Uh4RFnqOcM6uOLsRU1HfESt7HkvkoNO09u9bgr/0qsPbeLrGPa+uZ9SNCahFm9NvdyFQLLchQzVvYyqx4QksNS+/Y5Zb152Lg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ax1bKhD/QyK1NCFP2x7dJgaLzmkhFLniKqypa4NZZQI=; b=aH8ro8nexZYsj7Ebl6U1/nZhMvsmOjthwhNXiUbEs6ZqrJX9ZIr4sDQAvZaxtMiT359RXwrqFQx42ftBf0sVg44GGEdAvv4sU6/sTM4q7t3801eYThv41wO7yu7qKNC479IvURcoQ264EgW+GAlsRbJgfpHMg4ARrjhrpt2mQLe6WxitkO4LfJVsjQ20Iz4cMDiTAvPCLDliEQJI3rakDfrcDuJakQGqDeUyZnL35E4+M2etPjYHbHHEeSi0SIeoXepS+5puXtPYyuFL+QLzt9ViDW5ZMpxUMarn8AGSvc2Q9wXS3JME8cKRkY3sfzEgkX/RMqQqf/Uux3K6OUWzsg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB5200.apcprd06.prod.outlook.com (2603:1096:101:74::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.32; Fri, 16 May 2025 03:04:14 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:04:14 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 12/15] btrfs: use rb_find() in btrfs_qgroup_trace_subtree_after_cow() Date: Fri, 16 May 2025 11:03:30 +0800 Message-Id: <20250516030333.3758-13-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB5200:EE_ X-MS-Office365-Filtering-Correlation-Id: 8be19287-3d85-4c9c-e26e-08dd942656fd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?rhhDx9M9GP62fTQN213aJUFT8czrOuMKnQ3xU/+VG1CxYOBdOP+CspLJL6bu?= =?us-ascii?Q?1N64FBYf5ws3OkIYOUx71wtH0uXtMJvBS7Q5/DDK4+37H2YAqzK9oE/h8CJK?= =?us-ascii?Q?21q3+30os0sqdqcUU61K1ai9sqSkZnYkGDjVVaYC+Bb9J1LM2cZ9A09sn316?= =?us-ascii?Q?5b5ZhbdjwgDWdfuI2L9FwWJc89Aqu5CpJ/uOX/f7U+TCf5lP00mZG+j6q929?= =?us-ascii?Q?+utizfuBaLbVug4y9r+Xipfqfb1lATu/RZYo3zS6D2FOQb/1be9H1piIDWrh?= =?us-ascii?Q?LllVLIevq0o4iYP85lEFlQ3U5u0YlE/cl4dvj2iK3tgh7iyb0bwo37fAZJ1V?= =?us-ascii?Q?KbZyubJWTOmVhLBoIieRjGkhfH0gkp1AANWQAjGbgdZjmQf8JNZbDBUHReDM?= =?us-ascii?Q?txPcKUfnsfNYpNAIgJplIyg4NMX+PyyFqAxaJDJVOW6J+kOVxQVhWquLGaFU?= =?us-ascii?Q?y0xET3W42e1K+xAyVuWaUPAPBHjHFlSSmvEgMb0QvFhjFdv26LTsVX9glY6N?= =?us-ascii?Q?W7+kqM1o2xjE4QLzCWcbaVVuPHa8WYgF7NqZMeuD91HTsGjS9tCs/Tpqz1vW?= =?us-ascii?Q?jum9peM3BjveGDcxfeAlSE1yOIeacJqAwTMVJaY0ukg/DB1KOfpPpIzHixzG?= =?us-ascii?Q?qZrP0w2lqOTkJ6ulDfbPaByLLGkynZ7KlZX0mNIKQA8+SRF1WFLa49dLNSfY?= =?us-ascii?Q?uTlfKSFAzNu78RcD+hq41UXDZ9ULhIVUOMABfPQJNrM7IDfMznrUWGwqXufl?= =?us-ascii?Q?MsieMO8bTTik7aEfAFH1HAJIS8PYu2iJePQ51ywIfCfSLsLtN/Pih0foR06h?= =?us-ascii?Q?K3WNAu8IYtedla9VVcuWRy0Jh5iwpVhn77vaTNcLWn8Lw4Sil04vNMbfOfrM?= =?us-ascii?Q?SGB8GhmNtFOUI7e19HyfWfbW+reCs+B28GdZVI07fPx7JF+SF3kzthNaUWu7?= =?us-ascii?Q?MfQeO2WR6IfbOXhrmwrvha9L0/oxo9ZI/dYy6OzBzJiAvewxvj5+SiB11bx1?= =?us-ascii?Q?b+jX1F/GR7UXW+Pz77qD38N1QF48Jpb+djdbXOFDKJmS9tN1n0mafYJ3Mdbv?= =?us-ascii?Q?QHFkpwOATtrg4dJl9Ld6PcMgWwSQnt0Khxt+1KOmGP4DWRMegrc4aE29UF4a?= =?us-ascii?Q?mfnRiPBGvBhzmmPlT2RhiWarDRJxG3CPfgxCXXFehY4qggwii9gCK/2XoI9o?= =?us-ascii?Q?yYfbNvKN4YPFIOqZQfuvE8436WyeS21KYaG0V1tRc2Q4VaQohrdfUCTNUMvQ?= =?us-ascii?Q?8qwAUqncFwgDTVZgwY/fkufELftEzGC3X9/taY5TnUelLjnDBk0s7+GYmx9t?= =?us-ascii?Q?hI6mifWnQnvzcAwzDklHsNGtGgjWfBDcsViBY52gLYVms2h6nmfPd3loR8jz?= =?us-ascii?Q?edn+kaP4AoA0LbBkTBaeXMS9FqbpzWSxkR8z93aL4zyVsqNtTuNKdsN7s30y?= =?us-ascii?Q?7mINUSatcByfjBed2X5IXctNrkKbBZFpe++sGf+OrXYqegDjWa0CJQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2AW/spohB5nVgrSM0Gyr/JtCVZaATVOlE/xJW9fKQh+Oqi5EUbTf0Ls26Plz?= =?us-ascii?Q?2BIEJ4x9kBB5g0LKbPp2P+S+eWHxvsUuGCvop5kxHL/KrHDRAuy3uXkaQZuU?= =?us-ascii?Q?MFDRXvy6bVC1+pJjUGz3Ttiw+v0Zg4o/sQxupi4iKxxlRNd8zbopgEM/Jl2Q?= =?us-ascii?Q?AeEPm3+/Cuvck1o49Lp8GlMFFpXZKdoMmWGVcl6XskhjF75RTYhp8IImL4AU?= =?us-ascii?Q?714yMgHHfQZGV9h8yDZuYT5lH0T0U3nyGPU4A0Dbq9skQsPU3YuwyRwaxnPB?= =?us-ascii?Q?mvYc27IGVqmb4pG3+z0cjKTMQ2+uz3UVf8ItXnnVC9Bl7y1GJhInGXiOJ9Pi?= =?us-ascii?Q?O7mm1Cj8AwsbSGjsISN3s4LZf3ibEUUL56WKac0HkLo8G6TJcMJ3l9A9ElfL?= =?us-ascii?Q?8rpyV1w42F548Kr9gF+YQJWX74R5UnR2mWPGkFIyKgBgmulIyAvLcuke39x2?= =?us-ascii?Q?RDECehkE3Ub+S7Lg0f34Rp+6kb8ZkeQ/FayAB1tv9dTEkv5HciAJMgFZ2A28?= =?us-ascii?Q?t6QtEaZN0+Fo3H2upliK8KSPYuDoyslxK73V8LNefJXIw4yZ7V7aUyrBXVdn?= =?us-ascii?Q?s5DjdMkz/H7uRT141uth7RtqXEjkTYxp7C/IRWIiNgbfK/rrM1/cS0CYpIuO?= =?us-ascii?Q?P9h9yd+pMy0W/bGs5ogxOz79H3MI8mcULHGjj6KtBbWzbrXe7gOZQxx5JL5q?= =?us-ascii?Q?fI0gJ6w+MkUNYM+2VotCPVdscUgrE7xTtKxSWcUVQsIFW0aZIPqHTTMfWB7A?= =?us-ascii?Q?AYOL/arzqNDyC0iqRg6oZwbnCXrbFHXg01zioq52bH37832aZ6LRkzLTwCsx?= =?us-ascii?Q?0xFlbA0wrMNX/X4/DPtgtQ4mnt9hHQLAZjWFzlcGD2ZKh3GEhyLhVCGcRfri?= =?us-ascii?Q?Kv3kAfv4lrb0xt2jVCw9xOhjViUYqWoP7A2RS2v/NMV9JVQZYnRHVHKjDm8l?= =?us-ascii?Q?8gHqgr5Fo0AONoROZitqcaKJY7QfJJQiQ17ptPl+q+bCK/Ue8Qg/HVk0up6P?= =?us-ascii?Q?CEXPST3tJEl5f0126dzIaiIIVNY7Jn4B3hX7fB6reXFCPL8/jGcv0X+d+XhO?= =?us-ascii?Q?tA59v8efqYlI5p851yiaa2mbVZ7/idlrTBdNFdiiBNR/CU4kjcy2Eosh/bIq?= =?us-ascii?Q?a3ztcFccYgIe9YywY6g1vKdjiddo5pJr2E+vs4jeQe7JREh16MPAeVxlwFpR?= =?us-ascii?Q?WNR4bpN5eUkwOMN1Lycjgtpk+AtJ7A2RI4KHQOgyZFcNlC0pSWswQtR7OKY0?= =?us-ascii?Q?yzRrnkzvHbqnez119LBhPeS/N4udxSVSAPYvikaGcRVaa14Wu9gxewsnFc+X?= =?us-ascii?Q?h/l2f2IhvmC43jYuy2rI0hu7PYbnZ325kAaV2GFtokhD2bCmbLI2gBUjbiPH?= =?us-ascii?Q?cqRbRLXcyTHGXds/sHjxdpi/ly87y44hbs11rceWz+oZjYnuNFTGSQIZvf0L?= =?us-ascii?Q?TAN2UgLGXUUWNWEjnq4QldLYAxj7zvRqkSaM7O4xRdDvfDMfQcBDLE8oD5C1?= =?us-ascii?Q?pxkyB8o4koE0N59v4BHf5caTlj59PezoSafTuOd5vdAqeZQpVzPM1Zsw+zdU?= =?us-ascii?Q?TtLBhJiwvmmmCyoA7JWJrepJSlwLvOkdyVbhY8YJ?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8be19287-3d85-4c9c-e26e-08dd942656fd X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:04:14.7706 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: aPgeJ74a000ZfvxrCl9dqemFG2bA4IwsW5OYFv+y/PXTTP8ggvnorH9Xvu3ZQ1uJ+yMEeZuhcCsdAcV7CVAzHw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB5200 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/qgroup.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index 683a35bd36e9..2e8f6ab004e9 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c @@ -4671,6 +4671,20 @@ void btrfs_qgroup_clean_swapped_blocks(struct btrfs_= root *root) spin_unlock(&swapped_blocks->lock); } =20 +static int qgroup_swapped_block_bytenr_key_cmp(const void *key, const stru= ct rb_node *node) +{ + const u64 *bytenr =3D key; + const struct btrfs_qgroup_swapped_block *block =3D + rb_entry(node, struct btrfs_qgroup_swapped_block, node); + + if (block->subvol_bytenr < *bytenr) + return -1; + else if (block->subvol_bytenr > *bytenr) + return 1; + + return 0; +} + /* * Add subtree roots record into @subvol_root. * @@ -4799,7 +4813,6 @@ int btrfs_qgroup_trace_subtree_after_cow(struct btrfs= _trans_handle *trans, struct btrfs_qgroup_swapped_block *block; struct extent_buffer *reloc_eb =3D NULL; struct rb_node *node; - bool found =3D false; bool swapped =3D false; int level =3D btrfs_header_level(subvol_eb); int ret =3D 0; @@ -4815,23 +4828,14 @@ int btrfs_qgroup_trace_subtree_after_cow(struct btr= fs_trans_handle *trans, spin_unlock(&blocks->lock); return 0; } - node =3D blocks->blocks[level].rb_node; - - while (node) { - block =3D rb_entry(node, struct btrfs_qgroup_swapped_block, node); - if (block->subvol_bytenr < subvol_eb->start) { - node =3D node->rb_left; - } else if (block->subvol_bytenr > subvol_eb->start) { - node =3D node->rb_right; - } else { - found =3D true; - break; - } - } - if (!found) { + node =3D rb_find(&subvol_eb->start, &blocks->blocks[level], + qgroup_swapped_block_bytenr_key_cmp); + if (!node) { spin_unlock(&blocks->lock); goto out; } + block =3D rb_entry(node, struct btrfs_qgroup_swapped_block, node); + /* Found one, remove it from @blocks first and update blocks->swapped */ rb_erase(&block->node, &blocks->blocks[level]); for (i =3D 0; i < BTRFS_MAX_LEVEL; i++) { --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11012023.outbound.protection.outlook.com [40.107.75.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B8D902868BF; Fri, 16 May 2025 03:04:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.75.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364662; cv=fail; b=ZAYOsJMlbE3nn9RK+G+rfWFVQs9JsiX5WwKlsvfeyHlRfByKlcEtMeLhlHxZkSYn23RWgJQsRzujO6++6CJp1K43ncE06CRSwIGO26CZYFbbBqBEEtoQQFcTbS0ByUO15zCMBXxZnt2AKZ2jkRWqXblcPD/SqWZTIxwtj2BnqPc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364662; c=relaxed/simple; bh=VD9UJqgOadgTE1lrUil1vFVauRkLPEukhoK9JZGQajM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=dwzI8MC3eOCVn98DosnLmJYic1uP/UQMvF7VaVEC/Y46oAOvggsa4Q7+fbJ3ofHtSgbf8eeD4AayA1qEqdELdJxjdt6wz8sSai9EC6vAiOhRPBufvoo/ksF/DW3tBtNiM60TH+7nbvzeKUGC4vfWHEW2Zy/QibFCsNxG394+3UM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=OHprdw/a; arc=fail smtp.client-ip=40.107.75.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="OHprdw/a" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fzIizkKNyMz6S2EIYjBpqIFnrEPDnauSwQQyfmdFQa86QKaaioAPoGEdVSe9dCJz4OcBCTkmJ0n8rIXxGWS5uhxil6ptDti2o3rJGD03UtHsVgSJ4Xn95X/GmERT2v1+kw0B5LrxAyzfIBDZ8zEFbHTl53J7Lo2IkBhJT9nR+AaA/1iFDjxQe426UInVKcw7JNJ7RHULyeGrbUgwQp8zddFq692+z/jpQCda9UQcLWUsThW9hzK+dj1OtBTtp6R8oy4U1LrPztx4GXObLNZqwfoTIAE+wIFGdXu78V1uOAU2GOvXBUEVnB2NNwkwKbw5NoqVlLEjkeKlI20f7Nhbcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=nQI7o7wB6TGMHyE2FjoTpA5v+YtJrTYy19j3HM0HDWM=; b=LW01oOKmb3ry1XgFV77KiBxJ8dPdAv1gASViOCQbm/BOqs9lxpzDFqAeJqW8Kzu1GNRCZZdDbQ6r5NhLzHIV9uJWksFqzPIXnEVIJ49BXTX9ke4O5RtY4bg7JKnkPuDdTtmeszCRHH4nDrp3Y81q7qbh4SMPoTCzRFEcSZ72vovS/oFmICxmHNuOhhQYuVy/btwOrLsO93KOY+D75VSVG89fhVkwKqeJZvHPzpMF9XnizQb+C+kuJwQbt+1BYTLiaOt5vGGO+sEU8CgVhakKNx8+WWKcfu9yqpY2Va/4kfk0Fs3dAOhR9eifXvd6JUE/DofSQrL8212mUhfxeMUYfA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nQI7o7wB6TGMHyE2FjoTpA5v+YtJrTYy19j3HM0HDWM=; b=OHprdw/amVR5NoSxp/YHLIC2IIJNI5vknOYvHZyucBnK46v1EUoVLMHv0n5VOZ6QnPQhUghaB4HxUJjecZLQ8WO3BkK53TSwzWJjyCW8BTI+YO+NHIlEnA5WBMyS4ilzcrEqTM5ACjXwgjRouKoiVbz1VvvdTlfcpNLZTLPAnWwBK2N452QL31qeaAX1MtMx2cQEYaTZnVx4gYGDJtOEyt8MX3z2bi4JgBzlXsnfpjmBQ8B6G0xk4EXGJCSArVSM+KI2vWSrNFi0G+NM3kgfm/FjWEYKTrmJ5yalSUXguJ69KIEhEx83mifZC1zq47etHUUv5zFvv5iQQEyQ+5LW5Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB5200.apcprd06.prod.outlook.com (2603:1096:101:74::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.32; Fri, 16 May 2025 03:04:17 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:04:17 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 13/15] btrfs: use rb_find_add() in btrfs_qgroup_add_swapped_blocks() Date: Fri, 16 May 2025 11:03:31 +0800 Message-Id: <20250516030333.3758-14-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB5200:EE_ X-MS-Office365-Filtering-Correlation-Id: 1955bdee-8b53-41f2-899d-08dd9426584b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?+wH2FjLcqm4fW/cZi8pjOO/ULLWFdwVojane+nXdw/HGYn1LzP5fN0kDZxF+?= =?us-ascii?Q?4RwtV7p589bmx9u0NvLeDAJEi+LIywA3eWGjI5awlgptSFr8QF17DJpdRYwu?= =?us-ascii?Q?FIHXuG2FgDjx8puU1eJL/nngs9UqEQC7N12dP1qkmZE3C0YRj7JVubeLxiC/?= =?us-ascii?Q?sm86x66sj3xWopxzqqFV1SfuA4Jx1JS2fEhp7/PqixzJ9LOsP03Mczqm7+bD?= =?us-ascii?Q?ucEGczmJgjX8uUVLvchnreb3dXkt+cPL62Rs+maYpqCH8lzSsWZ/49ZtzNlv?= =?us-ascii?Q?tNBGiSv2oipz70T6jedeZab3QnL9x+XbVf1gG7Mcws7Szc30gQLZvddqLN0o?= =?us-ascii?Q?HreJrxVAifN74aJ1ATrDvtX6PZo8VLMgzCUi41jcxy4CJY/4+EESxbpa+3PL?= =?us-ascii?Q?Fs3Kcsa5GaLoiviKyx79ae78yZ8phQIVuvbZFCgFJJYavGJn6vU5LGQlJLzB?= =?us-ascii?Q?sai6tzBybsdwWxXFTBvr9pMd2lnap365b8eBZ4jqyvpUcfosYYeyjsVuxeg/?= =?us-ascii?Q?BfEOSCkT+h/MUchT4ObzGW9jZ6Tz+s9IhGRDpltuBMen1yjlnkWhWwUTRa0X?= =?us-ascii?Q?08AsyYxrNf2WdAgClt7b8Wuv3X5nEHduRFz22a43jLk/vZX5ij6Y0YenX3xT?= =?us-ascii?Q?/er7EmnWkVa9ulGZsUEob+ORmmOaP3hNVUiijR+8pBvaBn1GfNxsDbB1+x0i?= =?us-ascii?Q?C2qhxPxJtlQ3I/jtGmFuEc96/mOmGU2VBV7YYME2SIqO+2xajQo495mR4/Gh?= =?us-ascii?Q?I++So1PivE11tnpu8fD+y+UOb+uzbL+6OTz+eBQuKKjdckvYL+fzMNlm62oB?= =?us-ascii?Q?B/o+Ec7uIkVTimVCkOE1Zn6cm95Cv7qfG1PE1TzjxE0msKcUNe050l6mwdaD?= =?us-ascii?Q?K25Ra3xAGXn2nA3Yr2I5iNmPIx5rIe01BJQQInoVGltvAgkQvbldIrYJ7BBK?= =?us-ascii?Q?ZnDttJ5qqFHKg8WzKbP8js+cPJxYAwMEiI/RBCqygSZ85LfemscBhPh7vQib?= =?us-ascii?Q?+r8R4KPd0zCNQK71z0AHWccKUnj1JcJn8MOOmjFKTht0bf8Ec8wOGI98055i?= =?us-ascii?Q?0SjBaIydpDRVXlleUD6YLlhE5AZMReCjsgpIfV/3n1dYOrxMratbpesMp45G?= =?us-ascii?Q?tXiLXyFltxZt+AGhv7Pdy52AcTXwwW42PNERoKOBm14F18M3qakQRRjgq173?= =?us-ascii?Q?DBBo4tPbr7+x/dVzRFMASaE1wYfO6TdAqfdm9w5cV/EnD4eiIEPrGbeROkf9?= =?us-ascii?Q?8AvvyJ3X4rL7FkcuPEHL0OHl3RHdYEHOZCHYKefN2rIWTYVl+mYqNyyo9JAE?= =?us-ascii?Q?sxptMFVhOp8+7nIhlqZMzHzwGd/Vix+C6nleHTLs8TkNOZB+/COhOd0wTepF?= =?us-ascii?Q?HnzShggxQ+hoI2akdAjxQQL4Yp6r2HSxwVv0XIWpQmk8uIB06l/fUBt6+yEl?= =?us-ascii?Q?MJT35R/4/WEea4df2kw8ypGAoARIBVFeq26PPgy33mYWsNSlIT3NfQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8FPhJUmTpcLq4BVrMbsdgvzY0B0T7nq7TgtyR/d7/on0hujS0Gz27POD86+9?= =?us-ascii?Q?e190kZYybeVA8H2QU9GLbTrZrDRnirM4aZp4MrJXCQabLe2zwiUezPP6FOnV?= =?us-ascii?Q?NE2zhjuYasMumrnKnBri2wzwo+VTclEwZOPeHPbe4rJXTpk7t0uC8EzCFtcN?= =?us-ascii?Q?ys+3B/ykUdGub83CK6QYPT/a2xM8S2Yygerju+Pn0f3oEXWpGDJsh4L20SB5?= =?us-ascii?Q?V3/hmifCMsyaQukGOCrcG23GCLKXO5iIVT401XIhbN6R7VSBRwkH+gt+28cy?= =?us-ascii?Q?+GfTgdjfv5hHjpXrIMNLCMrt7LNuLuW5adlUP4rbLwILMD+MeL/tGTq7mjT+?= =?us-ascii?Q?3vLWhtci9g832HhqchOMx45MnAq5Dez3s9IEQ23UYwSlMxTffa3xUQViGE3V?= =?us-ascii?Q?1xq47zYDzPwchup8CC5bKeqHobFKPtpHxLMpUugD3diDsEC4cd2c1nYGqpcf?= =?us-ascii?Q?kefL0Z61j6kLBzrLOjOPVmk/hQOYS/RsA/mPeq7/yOsrovGyBWsH0fppl1qj?= =?us-ascii?Q?OluqnTOhBIjymILZAsbTzSSDpsAisCbt4uCu/FBwzpx7Ns7VM2E1lUPgPvI3?= =?us-ascii?Q?Tr4MYPJB4LHKCeJyPy7Rwfr+ciEm+U4APUfMcexlX4P6te9NMN3bksNIHOU+?= =?us-ascii?Q?4HiDsxePXGoyDd9c7dmoWOkkOLFHhlocLK1zkXNbxWrIi6FyRxve7zW/swIb?= =?us-ascii?Q?vIty0VVWx/zwq8uJcmVR1/QwCyGpvOe63T4/9sMSAE6Z5CkFI69jheK3YCLi?= =?us-ascii?Q?3e3qQOPeCpzW8mVgCbbdHF4zD0xHfWqyQWvPoFhTTHnJbjB4PVYWofugwdns?= =?us-ascii?Q?SM9AAU8J7/QPj7XO1R8ISUm/MTN5BnQpZDACHAUr2Vx7huDMEA8nnD12+bV8?= =?us-ascii?Q?wVgZMb5Lz6zYdLLCswTiNhTlAmgQS3z0H2LYG+z4sU2XYunNk7hdBkSmHomJ?= =?us-ascii?Q?Gb0DL9NaPlZRUWVcR1ER2Sew4GnyCuIbfOo8n9tN8eGSpgh+pWkdPAq1h7TK?= =?us-ascii?Q?rdr3A12SixsXzvVLT5nIWPa40eC8ZU787et4z470VBY0oGwoQhIvVZLfNUaA?= =?us-ascii?Q?HRQJClaOvEMg6sB4LO5Yzh02qhOSFHKKVZSsFUntIM+AFIc3TYnUCC8zlo/p?= =?us-ascii?Q?DNsIUnk1LMZ7u8o5ZeiefG3EwN6S0v5rhbXphvb6OqIx7owyaemxWu9/+nUV?= =?us-ascii?Q?Qoq7X3HLYx0bIn1t0QggN2U2k7pR5NLIGHrLk+79ustb33EWu/6dYJ2OJtl1?= =?us-ascii?Q?eC6108Pyev8CXZyB8As1jp2HaxEcxUMtfyxu9ytVtHFx6i/OOtvsqwotujmW?= =?us-ascii?Q?B7erTDoPURi4B8AsHtZu17pBhj+4HDhfKU6h39s9tB+MoqxfWmadeT/A2ZrT?= =?us-ascii?Q?Szkc/J8Hk0H3YvtUqtdCxiCOfw3lC/XT7WLK6p3CTj/tGAsE8KR2dSxtNw6S?= =?us-ascii?Q?fk3MBTkp6Q4tk+5gEndUdhcB/6Q1uuv17UF/O7EbsXtHmj/zXKumlOrFMXnY?= =?us-ascii?Q?jE3muwJvgCEYcr4t12oANyWaKJEFWnx20XXRbcQTebbaV+6X+EL3n8nKfx5q?= =?us-ascii?Q?KVGKVnNCEi4B9kxGnG0PmLnXaKNmlOgwMH0w5tAY?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1955bdee-8b53-41f2-899d-08dd9426584b X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:04:17.1047 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GSZxr5DIV8b0+1b0PXNxFdBB/2gYlmvARGIQ+VAfDOjazbqq5pRlQ70v32rGAUwQIrPmt7y83idRJCZATtJuow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB5200 Content-Type: text/plain; charset="utf-8" From: Yangtao Li Use the rb-tree helper so we don't open code the search and insert code. Signed-off-by: Yangtao Li Signed-off-by: Pan Chuang --- v2: - Standardize coding style without logical change. --- fs/btrfs/qgroup.c | 59 +++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index 2e8f6ab004e9..e9498c6a55d2 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c @@ -4685,6 +4685,14 @@ static int qgroup_swapped_block_bytenr_key_cmp(const= void *key, const struct rb_ return 0; } =20 +static int qgroup_swapped_block_bytenr_cmp(struct rb_node *new, const stru= ct rb_node *exist) +{ + const struct btrfs_qgroup_swapped_block *new_block =3D + rb_entry(new, struct btrfs_qgroup_swapped_block, node); + + return qgroup_swapped_block_bytenr_key_cmp(&new_block->subvol_bytenr, exi= st); +} + /* * Add subtree roots record into @subvol_root. * @@ -4704,8 +4712,7 @@ int btrfs_qgroup_add_swapped_blocks(struct btrfs_root= *subvol_root, struct btrfs_fs_info *fs_info =3D subvol_root->fs_info; struct btrfs_qgroup_swapped_blocks *blocks =3D &subvol_root->swapped_bloc= ks; struct btrfs_qgroup_swapped_block *block; - struct rb_node **cur; - struct rb_node *parent =3D NULL; + struct rb_node *node; int level =3D btrfs_header_level(subvol_parent) - 1; int ret =3D 0; =20 @@ -4754,40 +4761,32 @@ int btrfs_qgroup_add_swapped_blocks(struct btrfs_ro= ot *subvol_root, =20 /* Insert @block into @blocks */ spin_lock(&blocks->lock); - cur =3D &blocks->blocks[level].rb_node; - while (*cur) { + node =3D rb_find_add(&block->node, &blocks->blocks[level], + qgroup_swapped_block_bytenr_cmp); + if (node) { struct btrfs_qgroup_swapped_block *entry; =20 - parent =3D *cur; - entry =3D rb_entry(parent, struct btrfs_qgroup_swapped_block, + entry =3D rb_entry(node, struct btrfs_qgroup_swapped_block, node); =20 - if (entry->subvol_bytenr < block->subvol_bytenr) { - cur =3D &(*cur)->rb_left; - } else if (entry->subvol_bytenr > block->subvol_bytenr) { - cur =3D &(*cur)->rb_right; - } else { - if (entry->subvol_generation !=3D - block->subvol_generation || - entry->reloc_bytenr !=3D block->reloc_bytenr || - entry->reloc_generation !=3D - block->reloc_generation) { - /* - * Duplicated but mismatch entry found. - * Shouldn't happen. - * - * Marking qgroup inconsistent should be enough - * for end users. - */ - DEBUG_WARN("duplicated but mismatched entry found"); - ret =3D -EEXIST; - } - kfree(block); - goto out_unlock; + if (entry->subvol_generation !=3D + block->subvol_generation || + entry->reloc_bytenr !=3D block->reloc_bytenr || + entry->reloc_generation !=3D + block->reloc_generation) { + /* + * Duplicated but mismatch entry found. + * Shouldn't happen. + * + * Marking qgroup inconsistent should be enough for end + * users. + */ + WARN_ON(IS_ENABLED(CONFIG_BTRFS_DEBUG)); + ret =3D -EEXIST; } + kfree(block); + goto out_unlock; } - rb_link_node(&block->node, parent, cur); - rb_insert_color(&block->node, &blocks->blocks[level]); blocks->swapped =3D true; out_unlock: spin_unlock(&blocks->lock); --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11012023.outbound.protection.outlook.com [40.107.75.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AFAB9288C04; Fri, 16 May 2025 03:04:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.75.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364664; cv=fail; b=C779rrV0142IIY26n2XbxXNLyBnihg/86jIBzImgealrkFA2h9jBYsEB0A7JCCWxnadz6AedOfH7FIngYUBsu7wky5TW/rW/tfOtCbx0NMxR7ZpITfY+zw8NJLjZpSQQql5tcpByPVKhxhwjgOYOm60eNgyl4IA2GyOaVDqPOek= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364664; c=relaxed/simple; bh=MV9uQs3am4/pOZ/iqnO7IbzA7Ox5tVqHC6ywSEvy7Jo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Dh/vnqE/ttTdI04RRI61lqN0vzl6REsIyLBsoSoDn51I5hRSc5GLe/0ZBgzc3QPh2vruEspKQTEoEKMFnebYGK7m/VaN7Q1Bv7Kbv+kW26ZkZyKMKIFX6zNyvQIS8qO7/sjFU693W/zM67mf25BA1DJGWV1N4+LaT7b+7doVnzU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=IRTYhyLC; arc=fail smtp.client-ip=40.107.75.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="IRTYhyLC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rgNrmv/sDgJRGHBk15fToh6tf7uPAOSm/9U8zXB/U6p6zAod9pMIjZy6A6R2ZpWvWqtsKCQNZ8idgIGLVE0yDEfw/zVCiEM5e6y917wxaCpxROo53quDzRQbn4uORxyUInK1Y/+tbk9HjedUGu61JndZtvqmhY1/VYLiDNXUAPcxarfBJiYCXKNiVEiNmB3rIBXBzQBmFx8JrVWItuHIoAXm01Ig/lZO1DDU4C+jIefvQcnQ3joA+rJhchsgYm5Rs7GbTHyNdKLvKv72Bv1w9SG2CUlwClFCFZqnMy1lggtDP/AJcyFmyBSZDut831tpcEtXIJQbJw+WTbSltcUGZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=H8me0HjxqGxLwkFj9kETaAS13Wr8n5xxlU9KpKa5ADI=; b=zThPTjlvBip4i1sNzAhKRB4cqbg5Sk79t4OVAYGoX5lKVRvGmOjL631uI8/v4pBq9aSNapK6k8Ii75R7AIu7Wh8U/67rk6Xwd1yCbW3UElhhWLpzUrSs8GwL7ZIyE6ddVp1EeNdOap2bSNYDlLdnNh7rBM4O/rnqAj6r+SG5ROXA2NUI0ejXgMgdkGKzFv9MsQ0d0WD0WxZ8sI+xsrHCGYOMpGq9b9F9tj0vqiUMZGudf74IEa7bjxyaViUMfauorhK7tIE4B1vOhhQNCheDsltmdAKRyhG9eZe5L2UNp+2zx9B6UEuAFoPvCxap+ZixCmCrFL70Umy/ifS5bt0iiw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=H8me0HjxqGxLwkFj9kETaAS13Wr8n5xxlU9KpKa5ADI=; b=IRTYhyLCBv4yh3mU1/lqZoiI4aUtA9z/FhC7TPuMlZO19PfshQc2IxpE+MDgyYnFzlKYdTjDJ4rrNtzOFkjjROj+dl3yKapu9Fd2NJsWrDhVxEpYBK2aNi3SqX+Y5xwdG/LZ49vOqGai/LUrl0hGC1G9R3014h6UhfY66JjNA9YoDAil/OKiblldtYjBtghFMcrTiKcRQQslSZrx8Q5CkHoYS9tYeKrlyFAlK6vCpnlgC+qcQFYIuTHLu3/muYHmaK0f6Ehe6VLdeMCKjB00pD2ugiYkrDYxaLoM04qKyfAobnlTdNr5BuJswEns5CXDxPIW/1AdwP2uEkKW+oF5YA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB5200.apcprd06.prod.outlook.com (2603:1096:101:74::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.32; Fri, 16 May 2025 03:04:19 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:04:18 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 14/15] btrfs: pass struct rb_simple_node pointer directly in rb_simple_insert() Date: Fri, 16 May 2025 11:03:32 +0800 Message-Id: <20250516030333.3758-15-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB5200:EE_ X-MS-Office365-Filtering-Correlation-Id: 8fe1f08e-c9a0-4e3f-38da-08dd9426596d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?mLLM2bMXjbmBRFBf2t1wkn05p4VrBTn1gYMcTUcgMDLtQc2Es+u+5WuKkFRQ?= =?us-ascii?Q?N3i9kT6EkzJgtbAzP+CF0NJbn9gUU6Lmp8xHnmPxXujcR/yUoqqG/zy+Ak5S?= =?us-ascii?Q?k27qfF41tUYtUm34UmpUnnX/YBfoAlVAkwH80MyAb3b+Vxo8IGbPqwGB+QGH?= =?us-ascii?Q?vWrCDbWVe8f8EMtoBsx7Wt0RbV8OXKrYsjy9MBsWKvfuBqRn02cBNoaa2Btx?= =?us-ascii?Q?3JgDkDHwJs4CPc8BDmWAXUm1G1XULf8VOieQapqCqANhUwPAXVoioh3ZoGmr?= =?us-ascii?Q?h0/OXEZs431pD4GIRcdmLvkYWZ8hovOxijmj9qGsgwHbdJLVnNlFYG9lM7q4?= =?us-ascii?Q?23ooWeoP6lAVxa4dm3UiZ4Jw4FTLX2P8TqxFArI+aPRRtZpRYga2Qs6n7fbP?= =?us-ascii?Q?Q/DOJE2rxwRAJj1qKcbzYjcTSD9mEpLnvOW01XegeTLNQYGubr0aJQUYiI9l?= =?us-ascii?Q?oKJ8COMssYKd/kBJctjab2T6dGCRAQN/3X2ZIzCm7Emk8i2EvvgbEvwcvpsV?= =?us-ascii?Q?b/EdfjaZLm0nST7tl+2LmwGlh4o4AkUzfzTQgVFbPAbIq51yvdstbxBvmo8u?= =?us-ascii?Q?f2g8LsFsBmMjbix/JLjxZj+eENYtQ4f3iKtqCiGhjiuxhrhggtSLGxpeeimp?= =?us-ascii?Q?Pew2VsaaJdUIAwJtv3mZiABmoEPn135PL1x+IgVGGM8GBnsD03rseWazNW8n?= =?us-ascii?Q?xplMDJQpjZMOfLbVeQgn0HCn2weQ/CyVhExkvXA4gi0mMustiAIGbD1HhncV?= =?us-ascii?Q?42J4VKDGt/7MoZ8zuIDzHm+UOvROOLcOw06th8gVfoPeLklsa99IOospiTcy?= =?us-ascii?Q?Pc3+QTA+uEUhMxzUiP0cI9WOd6lo/Ppi462eutpAldxtuvFOjPlVrB3XLEls?= =?us-ascii?Q?x61/TAujuTSoioxAfy4gxXssDoKX2+13d64fI05+p5LZ08uWhDhu5RK1RQK5?= =?us-ascii?Q?RmEIzZwKd8lC2Coy+3SbEnfi41jBu5tgywvt2FcB9AClWyoMHanT8s+qrrlf?= =?us-ascii?Q?meEl5RPM8WBwXZwiH/L0DHil4OyQs33JKxBQp7s3w1+EFMbyIKVg4dId/6y3?= =?us-ascii?Q?cAlPnqzXMq9eu6aaUwh9o8wtFambDPDyPAfCHd8DSawMEGCAGjy5PIhaWc6J?= =?us-ascii?Q?JBPvDNkNWk2eYpNnS9g7c3WbmDteiwLaZr1Am5PAMcW2ZqOol3JPRfGLVdhF?= =?us-ascii?Q?lfXg4qZBBkAmnOI+MP6azcBWu5/0hy0AaszdjkJ5N2IHr2kno2BhudkRr8mx?= =?us-ascii?Q?nwo2PtZjGBVdQLDw8an6OXpFmbaJq0oSpucgeABvgekFLTKExcRxDTq8u8As?= =?us-ascii?Q?JuYRALs/FzBdjAnCZEs6ghm1l6xCf4PQo2TPcT6TBC4S7FAn2w5UGkKsICHL?= =?us-ascii?Q?Hg/leoJwVrOpdSNgglkJPrIb3XQpQE2ztJ/eVp+X3ovyz63RtbEXg5VZLX75?= =?us-ascii?Q?Y/eLYWRzKW435aSjFVqvhD4zYd1fOL/FE2qCP2tivVl/+olQ7Iu9sQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7+/o1oavCZavByWSYiENJUtMCZm7JZq+bdsiKanW9uZQmT2XT8U6Pi3Iz/hP?= =?us-ascii?Q?dRmbjq749of9JQdx/IupBNvMT+HUtOPuYOByuIhKIEg99JS7WkqnTmhrKYCS?= =?us-ascii?Q?YacmlLhaS7lthgk1cqzu5ZYRB24/+eqrwhutlDK3OIJefjGwTHqDX6QYOvK2?= =?us-ascii?Q?S+TSeD7TKmt6UM77ydlrKc5aTq1HLg/xQZ/nXun2kwQqpTJPjNAbgfgWyuVI?= =?us-ascii?Q?RdOfyuumaKGarEbBy7y2nW+J0gGEBAMhzs/FDds0lvx6UYolrluOPexVBRS9?= =?us-ascii?Q?9t7UNqbGtBA9XFn8I9tasMlr/tdgP1Ow7Hg9+yEVAgwegR6H5o/IekjSgWPs?= =?us-ascii?Q?b2INjIYKvAZYjpf5vELBQAAoScQN0j9QF0NyloLRiMPpcHrcMQQcp85EW4ss?= =?us-ascii?Q?dJ+hm0StbjaPlNTOYg6B2tCkaeLBt0Hc+zy40SggX+6dNGffI4k1AdfKG5mh?= =?us-ascii?Q?yRlPCcdQEZv4r10MUz0sFcwAWcuw4OxDGmUtJVELceRGOEBLcqIl4DKZqHoG?= =?us-ascii?Q?9PnwTbyiZ7JeUoOqbtVKXbCF2kdzJKTY45e3IQ3unaLEoxmQldY5sjHgysci?= =?us-ascii?Q?nd7zovhGrQzQ9knloe2qbxr/Vk39/W8UdOWkULNH7ECiJfawdCpBmyEXOwkp?= =?us-ascii?Q?YO90ms+vdbzohBAKZAImLvXDPOafclmAdBG4gqSH1g7PFf0+79LPyqELxbNa?= =?us-ascii?Q?C+p8jdT4cY0zZQQeuHLVfufyHjb3gU6G/7V/HPYChiCphW8fJ3JudKoN6EVw?= =?us-ascii?Q?TmAG3JZxrbpiMz11Dmegj3EkXqfnVrn8bdiuTN6loMk6ir5jsW1z6BPR2QQo?= =?us-ascii?Q?34I/6t8IJlzVizm7td8z28zd0i6VvamieWp9sLG3pDItQNJETI2Ckfz+mFZI?= =?us-ascii?Q?z5mdwxTHvFuExnbO+VY5D3JcvauTs/ICx7FewKin7VanjcqbH/frPq1mKZNR?= =?us-ascii?Q?U55XqcBCZzCczsTV07T7EzhQKuug+VJgNdGi0mrk9e09AadULXpAtWR3wO61?= =?us-ascii?Q?25Z7DWg+M34G06r8GiUDRFILoSOeaRW4aFyiHwMNlRwgV7wiUxwEccCwDpS5?= =?us-ascii?Q?9a8qJxTZ5TayTV+I52ZXb8tL8vZeFO8+uuTaFY2vqmIGmLlJivd2he84/6KK?= =?us-ascii?Q?1m4ZwXMx4VGfOqjAKet4k300vnxbW5tjgZdZ3yGHoh3uNs2/2JJQKKgPG3/u?= =?us-ascii?Q?zr1u+y1vXIilZl5EKFKmTF1D6ZxwU2Y2ezYU2pAuV6QPa529fsH3cMkNTzmP?= =?us-ascii?Q?WdFUfh3cm6Oe51+GuGwLafnDTJgfa/CE0/6i0dOgJ8ibhmp8+jSSZu4+zvta?= =?us-ascii?Q?x6Qhvp0u/e9hzf6cSgqJb02hch8gobC0B8NAch15GHB9sRmhnOWL2WWrJyg2?= =?us-ascii?Q?1AEcfHNYlZOt04L7Mayj/rtl//oG0bB3aOpLPFZkMdArsb2tx3Cm5o8O93Uk?= =?us-ascii?Q?9SxDHLRHv6eW+sL9DVOmelUW6WUn2KraE23eed/moZh0+UNlnTPp2n3TVLSU?= =?us-ascii?Q?8Qe2ljJ2MM053i8vRttr9InG7UleRlaFJazbRUDScQkatX926NyUpzRj/D1C?= =?us-ascii?Q?RAuY33ETTKJEbYssOGSHTfcwI3XlaxM8qdqeKJfe?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8fe1f08e-c9a0-4e3f-38da-08dd9426596d X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:04:18.8722 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LPkvuwH4WVx44YTHMljum6jsSt81CX77JpOlxI+08HPnUSmQxRpmzHcdsS2rS0VId4qQty9mt76t4xBXcggRnw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB5200 Content-Type: text/plain; charset="utf-8" 1. Replace struct embedding with union to enable safe type conversion in btrfs_backref_node, tree_block and mapping_node. 2. Adjust function calls to use the new unified API, eliminating redundant parameters. Signed-off-by: Pan Chuang --- fs/btrfs/backref.c | 6 +++--- fs/btrfs/backref.h | 12 ++++++++---- fs/btrfs/misc.h | 12 ++++++------ fs/btrfs/relocation.c | 30 +++++++++++++++++++----------- 4 files changed, 36 insertions(+), 24 deletions(-) diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index ed497f5f8d1b..878baeb0660b 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -3570,7 +3570,7 @@ int btrfs_backref_finish_upper_links(struct btrfs_bac= kref_cache *cache, =20 ASSERT(start->checked); =20 - rb_node =3D rb_simple_insert(&cache->rb_root, start->bytenr, &start->rb_n= ode); + rb_node =3D rb_simple_insert(&cache->rb_root, &start->simple_node); if (rb_node) btrfs_backref_panic(cache->fs_info, start->bytenr, -EEXIST); =20 @@ -3621,8 +3621,8 @@ int btrfs_backref_finish_upper_links(struct btrfs_bac= kref_cache *cache, return -EUCLEAN; } =20 - rb_node =3D rb_simple_insert(&cache->rb_root, upper->bytenr, - &upper->rb_node); + rb_node =3D rb_simple_insert(&cache->rb_root, + &upper->simple_node); if (unlikely(rb_node)) { btrfs_backref_panic(cache->fs_info, upper->bytenr, -EEXIST); return -EUCLEAN; diff --git a/fs/btrfs/backref.h b/fs/btrfs/backref.h index 953637115956..d59c51072fad 100644 --- a/fs/btrfs/backref.h +++ b/fs/btrfs/backref.h @@ -313,10 +313,14 @@ int btrfs_backref_iter_next(struct btrfs_backref_iter= *iter); * Represent a tree block in the backref cache */ struct btrfs_backref_node { - struct { - struct rb_node rb_node; - u64 bytenr; - }; /* Use rb_simple_node for search/insert */ + union{ + struct { + struct rb_node rb_node; + u64 bytenr; + }; /* Use rb_simple_node for search/insert */ + + struct rb_simple_node simple_node; + }; =20 /* * This is a sanity check, whenever we COW a block we will update diff --git a/fs/btrfs/misc.h b/fs/btrfs/misc.h index 0d599fd847c9..e28bca1b3de5 100644 --- a/fs/btrfs/misc.h +++ b/fs/btrfs/misc.h @@ -119,8 +119,8 @@ static inline struct rb_node *rb_simple_search_first(co= nst struct rb_root *root, return ret; } =20 -static inline struct rb_node *rb_simple_insert(struct rb_root *root, u64 b= ytenr, - struct rb_node *node) +static inline struct rb_node *rb_simple_insert(struct rb_root *root, + struct rb_simple_node *simple_node) { struct rb_node **p =3D &root->rb_node; struct rb_node *parent =3D NULL; @@ -130,16 +130,16 @@ static inline struct rb_node *rb_simple_insert(struct= rb_root *root, u64 bytenr, parent =3D *p; entry =3D rb_entry(parent, struct rb_simple_node, rb_node); =20 - if (bytenr < entry->bytenr) + if (simple_node->bytenr < entry->bytenr) p =3D &(*p)->rb_left; - else if (bytenr > entry->bytenr) + else if (simple_node->bytenr > entry->bytenr) p =3D &(*p)->rb_right; else return parent; } =20 - rb_link_node(node, parent, p); - rb_insert_color(node, root); + rb_link_node(&simple_node->rb_node, parent, p); + rb_insert_color(&simple_node->rb_node, root); return NULL; } =20 diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index 02086191630d..6323129510cd 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c @@ -90,10 +90,14 @@ * map address of tree root to tree */ struct mapping_node { - struct { - struct rb_node rb_node; - u64 bytenr; - }; /* Use rb_simle_node for search/insert */ + union{ + struct { + struct rb_node rb_node; + u64 bytenr; + }; /* Use rb_simple_node for search/insert */ + + struct rb_simple_node simple_node; + }; void *data; }; =20 @@ -106,10 +110,14 @@ struct mapping_tree { * present a tree block to process */ struct tree_block { - struct { - struct rb_node rb_node; - u64 bytenr; - }; /* Use rb_simple_node for search/insert */ + union{ + struct { + struct rb_node rb_node; + u64 bytenr; + }; /* Use rb_simple_node for search/insert */ + + struct rb_simple_node simple_node; + }; u64 owner; struct btrfs_key key; u8 level; @@ -481,7 +489,7 @@ static int __add_reloc_root(struct btrfs_root *root) =20 spin_lock(&rc->reloc_root_tree.lock); rb_node =3D rb_simple_insert(&rc->reloc_root_tree.rb_root, - node->bytenr, &node->rb_node); + &node->simple_node); spin_unlock(&rc->reloc_root_tree.lock); if (rb_node) { btrfs_err(fs_info, @@ -565,7 +573,7 @@ static int __update_reloc_root(struct btrfs_root *root) spin_lock(&rc->reloc_root_tree.lock); node->bytenr =3D root->node->start; rb_node =3D rb_simple_insert(&rc->reloc_root_tree.rb_root, - node->bytenr, &node->rb_node); + &node->simple_node); spin_unlock(&rc->reloc_root_tree.lock); if (rb_node) btrfs_backref_panic(fs_info, node->bytenr, -EEXIST); @@ -3155,7 +3163,7 @@ static int add_tree_block(struct reloc_control *rc, block->key_ready =3D false; block->owner =3D owner; =20 - rb_node =3D rb_simple_insert(blocks, block->bytenr, &block->rb_node); + rb_node =3D rb_simple_insert(blocks, &block->simple_node); if (rb_node) btrfs_backref_panic(rc->extent_root->fs_info, block->bytenr, -EEXIST); --=20 2.39.0 From nobody Fri Dec 19 20:41:39 2025 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11012023.outbound.protection.outlook.com [40.107.75.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CBBF4288C86; Fri, 16 May 2025 03:04:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.75.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364666; cv=fail; b=uH71AoAJqKiuHfAUprpZBUJyacL+ht7QbQez92c0PtmG81b2vrtXPH34SGt2CJLwUXV/cIqmJoW+RiZNDiEFc3M12p6NjWZNoAY9dq/E8y/h1oDaBjMFsTbFcaRSou7CEWppGo0b4BRMF/A9hsf13tN3bt08wVKJwn9RMiQWE0Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747364666; c=relaxed/simple; bh=tm1wN8X6fNumwoFTPeARj7r85Z56m8gH4RxJpzkU3Vs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=pw/brQh/NqQcTYFqM9LHUKHYvsIi1NKhugenHucQMBn4qGf11rzdM85citcEBNhf3R619sbPLk53GXBwmW+fNEyxKb2KW7k8fg0JxZwnzNNtdoQQe85LeQgnRG1Uz6Abuwm9oSoqIKsPI1mkaK1obKcy2JhCQzJRlL5qcsnX0oA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=QCvaqr9f; arc=fail smtp.client-ip=40.107.75.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="QCvaqr9f" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WzQt4VEWr9iGKFzmjF0MTlTPzYsdI7KC+HKbbueJqCF1BeQ7GDPP11a+mZGw5MjpVcWbv24vXlqISg2WiJzOpehb97Bhi7NENXDjIPA5+6B05VSy24x5aXTFrUYS/M7J7b9/r7ORUXdjaQiO2tX6bj5Re3SWvwqF5x7fByj+T7MplFH8nTrMjIDDocIuu4IR+KwOIEJzM532/RA53IkZXRTw7tedtzDFafgeceRgSxcn/7f5wvphG+SgtUGEwU1Ypy3bz+/Y5MEm0P5vpzyxSWiv3jcAebx7LG0G+2/hAm5HyhaT8p2iNpoYdkJdOtAXoNwhLCdDQNNq1jOZkvcAGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=tBNvz/LoyD06VjGjngA31ALX87U4Ww564RdVHPqDe+c=; b=wUxb1LZmzGjShtzAapH5WeFUsSqodtsUgD0tcBjL1zRvSbm4TU0f/h79BCOSBAFufT6Naw0ogI1CHEE1/uj1RIJHc0Tqf6+TP8HtT2TdsiCheIKbiXDLO0V4ibHpqmrvYULpkFPUiKRyK0gLd/+4Zu5W4Tq5bsubliDkY9e+VMLG/RQmCP6z6gEyzfyZjUZxrouMEixR4F0TOANmPlWSJOFj8bOdfjzX5s+fanNAdkuzDL/BetLbc3u1LiV8HkhWFAFSNO2YJPZiBzXAhAcwp03TdMEqffz3yF7jeDyQUaeWiotylvBxmsbvq8GNLucBSJzvpf0hhGjfZaeSCcRt5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tBNvz/LoyD06VjGjngA31ALX87U4Ww564RdVHPqDe+c=; b=QCvaqr9flf8ERT8h5YS8dem/iPzt08Qzzxctcmz35jxTt/9L6d9IgnUUOB7W5cfqjoe7UwqOVpRxReoVHkNxZjGEjHWUs1SA8xwDmG8fV2KAJvfT9Sf+bXoXRRNbapRCPY9BgJVDrG8tzLCo2i+WbncpzCaoGY5f13b+gkEtFwiESgxsogDK7jn6Dt2syx3wx0jyy+uy1lyZV0iv6nq8iZ/7EomFnEVwk74EPays3vzffBHutInYlX9c/F6UxUeF5+0SZ+HStJMYPCLti/PqKwKuXn/z/qtZgTlWXDrOpxzVpnwkEB0/62N6oa9q3NgM4Y6dDb38PlK6b4KH1KzRdw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) by SEZPR06MB5200.apcprd06.prod.outlook.com (2603:1096:101:74::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.32; Fri, 16 May 2025 03:04:20 +0000 Received: from TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5]) by TYSPR06MB7646.apcprd06.prod.outlook.com ([fe80::b735:577c:48bd:c7c5%5]) with mapi id 15.20.8722.027; Fri, 16 May 2025 03:04:20 +0000 From: Pan Chuang To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, frank.li@vivo.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Pan Chuang Subject: [PATCH v2 15/15] btrfs: use rb_find_add() in rb_simple_insert() Date: Fri, 16 May 2025 11:03:33 +0800 Message-Id: <20250516030333.3758-16-panchuang@vivo.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20250516030333.3758-1-panchuang@vivo.com> References: <20250516030333.3758-1-panchuang@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0111.apcprd02.prod.outlook.com (2603:1096:4:92::27) To TYSPR06MB7646.apcprd06.prod.outlook.com (2603:1096:405:bf::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB7646:EE_|SEZPR06MB5200:EE_ X-MS-Office365-Filtering-Correlation-Id: 6d7a4929-355d-49ee-5dbf-08dd94265a7e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?M4qxm44m0+jm8zRGKGhX38lzzxF4+RDxQUpZNN1b3f+PevORsZc3Ur/SaLnK?= =?us-ascii?Q?lvBJrVc50+CmUR3KWNgJR/SqpoFXX9HjUTD03zbfsdv7Hwz4nZo2GSATzqp2?= =?us-ascii?Q?TU81t9BR35mSmkKuQxC3PYs1EmNfPVzifTwEda55p4QMLknYLR0Tyw5xoAV9?= =?us-ascii?Q?uDt93+MmDV1c8FgvWxY7Oq8i7j4T8UL/4/OxMNt7brEJPxSvvs4FVkU5WPYp?= =?us-ascii?Q?Bh0VdXVqdHzA99l1ufB25YZ5uTA2j0q1IN6vi7SvOZBGDS8MST9uULk6e/Oi?= =?us-ascii?Q?8ZgrY0XQODToCZIt1au5JOxuKACNsYhRAwnIqWJTjx6ol+hrfHNt9F+I6oqS?= =?us-ascii?Q?qzrPxhiPhxHgxAFX4Fujaz++NnhdFvWOBc7b6Pih7Qa6gt2swXooqKXKZCSd?= =?us-ascii?Q?vDLHBWD40Bf3EoAnsgyftAn8obXvGtHdeHRdknCLHo13N5QmWkkGynYrwEAr?= =?us-ascii?Q?E32fWBZ8y5lC4+zfOWUzTepPXPmjQFrPfsQKCmut6Az88lnFk7vEnInQXXXy?= =?us-ascii?Q?LovPpLasBcCKRq7O0SzwKhlISpyU5f60eGiBqxwJy1UebPhkuIstOe8/OBGe?= =?us-ascii?Q?isFbdc7RXSbzWhY7bxJ1dECsaX05mHMQRmR8VaTAMxVwlcsJfsRMiCbxR0mT?= =?us-ascii?Q?CIVic8JX5t/UATMIqAgOjZ+X7M6ATeu+1IfKsOW03jkjZzyvI+0lSP0APQbG?= =?us-ascii?Q?jt20FKuBs0pyd8WTngJM2tk/YvGCZvpicHGwboZmknyfmv+aT0Ezq0wljxc/?= =?us-ascii?Q?CXiiDOQ1AnJhuuVYxy44FBb8iaTdX96XrfMHiGFDU8yRdwIKPjmDB5K3zxSM?= =?us-ascii?Q?Y82w8hj8E67NXPOfmLWaSMHnp5nigbC3BJhvE/gv4KVylzxB0dodRhrKaRJ3?= =?us-ascii?Q?ifnFo4bzYpNeyooMB99wJ7XgYzD8b2ggCzpcdtwG6alP7oGDg0JHmgmVyheK?= =?us-ascii?Q?uQiis95hDW8ykc1OjaQUbx6DMNSpj07SH52SbCmDKZucl57A7lKoe5evhgqx?= =?us-ascii?Q?U1a3sAJiT4EdKy9dwXW0MbDeqjCAPstGrCislcSkWF54ztCeZC734otC4kM5?= =?us-ascii?Q?PWCGz/Ab6FNloEl7QS7nbipiEP+pkGJEslisWGSqrqNVVy59wIbHq6lqtjEN?= =?us-ascii?Q?ex/MGXALDC566CKXbz3zHJfgsBkDfcTragDs1MZ1qEhbbW/DS9V8JkLJh8zB?= =?us-ascii?Q?WIQmn/XZy18/ttPmgVWdnV5Nu/uTsdZwy7oRFSpwDaQhjoD9uMHeB0u4KYjl?= =?us-ascii?Q?YJXCJFk2jbVsK4nlzT0+mPu2gdlFokMVeCTb/kqcourGor8TvIZUzDkzQbhV?= =?us-ascii?Q?s+zMXI1dyxYaMT1ypYCUh8QfpsGmRLJPnx3FqZHBk7gsPjLq11/OYgz+rkpL?= =?us-ascii?Q?2q2Ve/P1+6R40fLXAJfnWb+dIFRzfJqbibwz8sXOJMG8o5K9x+RDwI7hmd/g?= =?us-ascii?Q?4UjkPoNdJy1G3x4tI1OD0vPU7wzvAlyX6waNbMhSuo+ERwl6EkJv3A=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYSPR06MB7646.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tJ7DZSg5i6pGICESUJfnVVVdeLWTxjGw3MQvkKkeu8R+vOJ40JYb1GhMN7QJ?= =?us-ascii?Q?unPJRTgVg1E/1VHFmBaHBTsmCY/wVaz9sfII7fTBeoNoeMC+qfhFc+bvtLmY?= =?us-ascii?Q?CwdQGB8SVcSeVLoVNzHL8ko2ZwDJpKTMAoHsSJ6G20hyPI4qE+uNt4JtKKn3?= =?us-ascii?Q?fdyalrBaHkDzOC//Ua5vtzsGEDNKWNhFwuXq1FcnGBuTLu363CwBa2fZ56wn?= =?us-ascii?Q?QopWwsk7HqkHiunWPc19Uawxq0/8WTuHbutM8yHFFS/4RxF4WQ7pzaFCB1nl?= =?us-ascii?Q?gEWv42yQ8Fnsua6h5PDwSmGzmxfvlNN/QsiTYFfsHUEAKG6pGuR5De124N0R?= =?us-ascii?Q?IBFJLHPioJ0yBC5wXDZrfzEAYAXeXQycJIFJAf0GJ+jUSeEDTr1nbGAe3uZb?= =?us-ascii?Q?89ZeOCXbfIqIbvatrnDDphglCSEmbPpBUTh0B2IDhhhxQkcDPY4ymxgWeBxB?= =?us-ascii?Q?aBUHh4o/il8EqKd9wklukhRaJ8FGSwEBHDHm2FRADPYcIZ4BOm/jmeQ/TDso?= =?us-ascii?Q?3n4BDscrGJrRn2tHoBjJ81NBPMeun30WQzBtBmJ9+JVn4fqmvqnb6gsOkH/D?= =?us-ascii?Q?E0IDalQqligyJZulmlvZFWJnl9oUF7ORZohZ6b2mHT+6XwUhFjYmchANiTmk?= =?us-ascii?Q?uyhfDhH8jAbGSlFBoDEMOH0LxDBS+/Q6wkbt54NgxOKUEI0xvoi+8bzgNUiI?= =?us-ascii?Q?4pNmSVpwUlpHq/X8fQ/X1hJJWBXEwLOX+ezd92mOqeRcJmZf/B9S92e1d0J5?= =?us-ascii?Q?e6pnhg+Qaj05wrv2wwlia3XSAS1mKtDG+g/W3wafDdFJ6+RnJFxjTehudpJa?= =?us-ascii?Q?2ueRKgbTY8PWiWzZxsjOv/EJYjaUStp9ZVweKbDldZUio5z43O9UA2NTyU4R?= =?us-ascii?Q?pmzL7wH/HEfmH/H3odm1Xe44jrVssi7+wozhFUmX/1U0AB2WBaSEzGofdbqi?= =?us-ascii?Q?dbDFfgMdtJAdbmM/Oa0BnwaspjzLkC/ISNyEuuatbX0KF0kTypsmiXXDCzHc?= =?us-ascii?Q?ZgZBNpd6MaNSKKrNEGnc8QDw4xwBTEGX7Y5rSSmTQumIjhrVNId6g5yhDm61?= =?us-ascii?Q?y6IBy4JuL/M7xpALpAsBks/eFszrwSV0up16uDeMl/xFF9Jff+5dHgIuDdeJ?= =?us-ascii?Q?AhtWEZY9mY98ELNbMI6fhdkY94Ol3aCoK8Js2zXWNw5xakWl/t1bsBW/rL/Z?= =?us-ascii?Q?d46nQbrX6AovXbbA+l+zQiP7+PCVU0goo8wcD/e3+T/VrqDHr81N5nY3VQnK?= =?us-ascii?Q?QoOs0qqygJ43bh8Qw6uo6SgyPssRFPxglR2OwTEWB9YGWER8Gi3ZPgpvbIzT?= =?us-ascii?Q?0aQK7LHX+IEygwyjoijLgpOQAh0kTzo2pqLCQBGTXS0sv5+U7GkDFVHM1/hY?= =?us-ascii?Q?/ylQ1ueCjRUwfOCEYxBeb/0174jL5CoqkncQoD14y4akZ6fPOwSpiBsm2PB7?= =?us-ascii?Q?6Gv7Sm8QpqzUukwjxoQUjUI3WRBMVPqczyVES6Q13vagmePfKaWEK2o9XSWE?= =?us-ascii?Q?i0ziTCLjdeMNGvrgaDk6IdFQlVnjJCDnx7/JyTDGIdFNPz60LvnEVVIJc8Tk?= =?us-ascii?Q?FpvI5yJtLIKXxjCTjjFNXqGFntaQ21Wy7ZPLy5A+?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6d7a4929-355d-49ee-5dbf-08dd94265a7e X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB7646.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2025 03:04:20.6997 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0bndZO96a2aI/Ecb8y85vwuJl6GRj0TW8BZZQxNEZOw1JKk+kVXYSsfZ++DaaNr7VSk5t9tU9miUf/yj1lw+9Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB5200 Content-Type: text/plain; charset="utf-8" Use the rb-tree helper so we don't open code the search and insert code. Signed-off-by: Pan Chuang --- fs/btrfs/misc.h | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/fs/btrfs/misc.h b/fs/btrfs/misc.h index e28bca1b3de5..45fd64b18adf 100644 --- a/fs/btrfs/misc.h +++ b/fs/btrfs/misc.h @@ -119,28 +119,27 @@ static inline struct rb_node *rb_simple_search_first(= const struct rb_root *root, return ret; } =20 -static inline struct rb_node *rb_simple_insert(struct rb_root *root, - struct rb_simple_node *simple_node) +static int rb_simple_node_bytenr_cmp(struct rb_node *new, + const struct rb_node *exist) { - struct rb_node **p =3D &root->rb_node; - struct rb_node *parent =3D NULL; - struct rb_simple_node *entry; + struct rb_simple_node *new_entry =3D rb_entry(new, + struct rb_simple_node, rb_node); + struct rb_simple_node *exist_entry =3D rb_entry(exist, + struct rb_simple_node, rb_node); =20 - while (*p) { - parent =3D *p; - entry =3D rb_entry(parent, struct rb_simple_node, rb_node); + if (new_entry->bytenr < exist_entry->bytenr) + return -1; + else if (new_entry->bytenr > exist_entry->bytenr) + return 1; =20 - if (simple_node->bytenr < entry->bytenr) - p =3D &(*p)->rb_left; - else if (simple_node->bytenr > entry->bytenr) - p =3D &(*p)->rb_right; - else - return parent; - } + return 0; +} =20 - rb_link_node(&simple_node->rb_node, parent, p); - rb_insert_color(&simple_node->rb_node, root); - return NULL; +static inline struct rb_node *rb_simple_insert(struct rb_root *root, + struct rb_simple_node *simple_node) +{ + return rb_find_add(&simple_node->rb_node, root, + rb_simple_node_bytenr_cmp); } =20 static inline bool bitmap_test_range_all_set(const unsigned long *addr, --=20 2.39.0