From patchwork Tue Mar 14 04:21:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13173612 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B1A27C74A5B for ; Tue, 14 Mar 2023 04:21:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229464AbjCNEVY (ORCPT ); Tue, 14 Mar 2023 00:21:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33690 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229519AbjCNEVX (ORCPT ); Tue, 14 Mar 2023 00:21:23 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D651060416 for ; Mon, 13 Mar 2023 21:21:21 -0700 (PDT) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32E3UXe7003295 for ; Tue, 14 Mar 2023 04:21:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2022-7-12; bh=eB9cnhhN363tAwxBa9fS7hPvQVwZr9a3BzblLfrptB8=; b=HWRgWgx73Phxt+i9BD5sBfdXszfb3oXpwwtJnUzKhxqC+9aOS5ScISCR56+tE5YSbVPm 9BQpEhx4Un25uqvINFF9Tm6iBOfuj3H4supCVyoYf0QkbVPN47uaapdvEwGyvQ4tEmze /BPfKsrRpT91zLaWt/KhRIs8/oYksBxYh1/E5IHIEJdzlhwWnrwEdgSas3+GBiA2YIy0 71+g7Xw1xkHU3Dgv+rih7+p/QVtda2NdnLl6jxfZXZ9FG1Ls/fUZVSXBPF93LadCA9g9 aIoXecG0B97STHEWbngnxn8b2ow0++mowEVjtcAE64ywhvzqL39x2NI+YL02pdKpKPrQ cw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3p8g2dna8j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Mar 2023 04:21:21 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 32E43iIL008039 for ; Tue, 14 Mar 2023 04:21:20 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2041.outbound.protection.outlook.com [104.47.51.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3p8g35hs49-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Mar 2023 04:21:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L+peGyrfngaMfKsXVxZqioSNohufXiXToUv/oHHqZq6Z0Q9oU95ulC/BEXGAetlZBU4VFhbAsUPUP0KWDT9ixZZgXIvCwCPixlYqfd7ZnXLpGcqt5+rjcaclqHGgDMoGfE//KNiDUK2Aw+7O86fI0/SJKgTCGGMDZBJ84b2Ly4boHuhXUCY1h0uyLPRt3Ka6bSlNMFzODZDrbZJb1QklTYlsFFTI20Aj/ZCc6GkW3JSwzq716qeBe7b/oktnPDlhWvwZNK2q8jqL8iw8UvYdYba7aYHXqR9Ix7RJ4QIAT1dnwzlMhRaAd52IlO4egaLq5Qm4XBFDQdSIWQUHpgyp+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=eB9cnhhN363tAwxBa9fS7hPvQVwZr9a3BzblLfrptB8=; b=jCfdZyC6oZC1eTvQZ/RMg821EuiJNSvsQfsIwi2QVBu0EJOSMbY6CzNllmHr35/zVusMFmqYxmWIMYmQpl8zZRco8RftAnsvOe9g7ybrbgiWVVsFpNToLja5HNt/UspUZG0G8W8pRGDXIsUFKop+f5L8mR1Ylr0Z5J5a2gQwh93LD2bGzOgVFm5EC2STPx9kc8OmDmOD0dEGRkmwTyAVEpHfHexT6EQSRX6hjqTVaYN7nw79y9Zk7Rc9WelE+469G5p3Lh/dYLL5FlWApsNjz4cqylwO7WnaFLQrpd/q/oqUoonhjzPBZPiUqH2SCCHRxmkR16fWCbbIIb78McFNFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eB9cnhhN363tAwxBa9fS7hPvQVwZr9a3BzblLfrptB8=; b=mzXdEqYoPovmXOlcd7404T0T+gvLNSPxyGnpcHlk836Cr/ta5vWUzcOlobF0oakl5u1qK5Lzib/ZJ9G7h7iygZ07t9xaPmglKS6D4oD+8oJVkyY9XPJ+/oe2S1HMdUUfb59t4hPJVBrxO+tau65uzeJ+Ueai+XrUUPq7jEBL0MI= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by BY5PR10MB4371.namprd10.prod.outlook.com (2603:10b6:a03:210::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.24; Tue, 14 Mar 2023 04:21:18 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::b647:355b:b589:60c]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::b647:355b:b589:60c%4]) with mapi id 15.20.6178.026; Tue, 14 Mar 2023 04:21:18 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH v1 1/4] xfs: refactor xfs_uuid_mount and xfs_uuid_unmount Date: Mon, 13 Mar 2023 21:21:06 -0700 Message-Id: <20230314042109.82161-2-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230314042109.82161-1-catherine.hoang@oracle.com> References: <20230314042109.82161-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR03CA0174.namprd03.prod.outlook.com (2603:10b6:a03:338::29) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BLAPR10MB5316:EE_|BY5PR10MB4371:EE_ X-MS-Office365-Filtering-Correlation-Id: db15cc83-54d5-42fc-d87a-08db24438ee0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vQ9/OBQnInS8L8ZQLp3FxnTMt+P1wwCWXseM5WWPBD7mztJxL+eYm0j9JNDxRFTwS7q5yRbIQ6G+FN4BKTiPV89jXvZZzM4DAmTnbLSE3pkw268NlVFIEfcVOoVYMz5u+CJd/Z0mf9NV/x0z/3mOhWCUlsJUu68ouPdcOwTy4DSHHR5s5GCVZcPLVAS5DGGdfI09DC7IwUhRvk7CUHHNYcpJN7TdQE2MPNBzxL2tf5tAZkhULGG8Min5EjgcGJO+7+xLrRbs6Gx6cFXUr+lUPX3QETBZ0/AmGLAEqIixRbEu5SDfoFIZIOiSp302V/NYjDUE/CilojxZjVvdnqfg96S6SL1qS2bUJr81X/6enUmqJ16lA4uzRWknOG20D56sWzisYR91r3A8b6rqYhXIhoST8Zzxu0XipdPTv3WQU81jkQKpPvLQ1m5ouSgId4uFIvdoL0Dg4ZrFzreYrdWyB2MQlOAzhC29CXfvVUuF+2sNvgm1enJjiAJjhLyGcIrnTvqruC5zNc2pUisFgdQgnMc99tzCiFiq1cSTXDIbaq8SExZUb5LbUjb14KU6Fk1Y7eQmSbDhcU9k0XO4mHUFIbjtdejzmuDBLDvRH9KYgS62tPz2np4eT+FatFp5n0KS655Zf9kvbfYfD16kukuCeQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(366004)(346002)(39860400002)(136003)(376002)(451199018)(36756003)(86362001)(6916009)(41300700001)(6512007)(6506007)(1076003)(186003)(5660300002)(2616005)(8936002)(316002)(478600001)(6486002)(8676002)(66556008)(66476007)(66946007)(38100700002)(6666004)(2906002)(44832011)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dvsudZ8NQayJBVztgre+yRuTZT85m3KF53tDjt7yfGRFWh5mm+5veRuL5/McRuLbfNEgHxL4aEEiTqyUPFgAFAI7wqlsaBWiDGT3THu4q1M5405/AXQx8K+gEVZq/IYe/nIIvZRfLwGd9RJ0gmxXicSqC0uD0Omw9TO5JDbiqVElISg4xu/v9i1ioDh2OOMRZ4ao9IyItpHKpGj6BASBUjOQXrLuWFY7wvr1OKAYgQjqcq5HEN1l1bUDpgN1AUQ+kWWCEnn2H4kByfVn7hNwAkbsTxxZQQxCh/X3n9y6tMPNefcCA4T+PHYE0toOXn0WyfN+52iIp3fII+fDwUz+QS7Qsh9NKfjxONecHx4ZgeNyhLLl9CmBOri0QClRqBiR9rIA7rEF++o+j4xoqaJ5G5OKTtGtkXNCzur23qozR4eAk59La7rRhaLPduzG1xg2jKn/eqtKDcTUZYzlJSqc2kG/emWFKvH2TsfwZCEymi9ytechjMEPqr1VrZedlHWyo428W7NF6b1kQECR4GiYDS/VS3552ZHbgvRKHsUtiiZpt+2/7/CQoMOpS0IdNCiDpeXEpJtXqH0KuhTx5MwWlct580t67EYEO+W1TtWkPsw5VEJLKocj1XN5DsO+D00pxdrL6WNg7stcBollEaLkiVjqV6tVu3vuCgBgZpU5hLplB/Fk7Aj/TRi1KjyJnuPFIF1dUpS1NZucNiWZYDw1gP9OhpLC9jRxuzpSx6h/kn0UKcSU8EMcPNXTMCOs8cpc3ypfHnAVDcrm5fUN9EYLW4qUdhcwIBXs9PwrNDdhLl79edKOvVu883HIonciReA415QyI6EjNkEpHVc3zKAFUzGglieGhqJrcACGBUzXwE4IiWWhcnA6g1l+9h+Dahrpokya1+ait7ktDrOvTlf1ahuylkgW0yWYV/21qRsdPYkAJHeew5OzxXv6oq6DF7wi+D3pwK0VzDLndewYA/kKHaOPA4lCyRLpbPJsjtODQ0cdGySQHQEeXLNyPuhPfGzFwa7jxHhKETAImgsQiz8A3r6jSfMqeHlEwrOa94k8Y5n19bI5n7t2PDagsXyicKaxxdSmBSNKB2PCkdz9zSk+kLpCE6+hjgWpREAM+AmOTnrggluVSO4sN2BIzwGolSGiduXXNwfK9Ge69p2YhYmo42YOehLQFq32co2X3X14Dy5VXGK/3Cz1k4ZnSlsYx7hUxPL75iT/zDj8dV892g4uR7ol4nMpBj9oh8tbUxpGzV0G4aRFbX9c+QwTaEKGiUxiADSiQgXt8CI0WFBUe/pY139vEFkqtfGautGWdaHMDhVauMLr6/igpSEehe+7fA55VB/Qu+mOxiqFFsFHd0r7aaoavdZBW2pSFMMBjKhZ+BjmJHU2/u8c8RR7HqqDiD6h/6Ukym1PvZoCywkJOEAdA0LYmSVR6vbmO7XPRZAPPqppPEbbrS6n/p1Eu/ux004Iz+Kf3SmCPu8pscIsmRkwLPKnTmBXYfXtxy0NJit8CYkg/8jWdegV+BzkU/znw0OptOjlywOCZepDsN3ea3C3xQQAQee/VBlDz0h0J417lustwQcKnCt2S+AfkyzmciPOQ00J1+2SKCkXHTvQrG4sBHXsD71xJ1hItOuRCzeaP7J6nA/JNbHNUSZZ+ZZquXD7q4JV8Ku/fJUJN4cwZcPuyg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 84CMrKgU+6FVRka1aAiBZro4qFLFdRdrD8fL1E0QZqBS3fbckwoA78Ut5aflBqGI9LOkz564PV1FKMACuB5RbJUZnCVt+qVAHonLcXkXbK0zBidcmiW/WIKvGIq8uvMUCSLQOgzqlEBlv7CkbsKKM/2yVJlxnSpolBfVaZ3ej5LfeakEgBWIvAXAtlkZ3it5TTH9C7IYx62Gt8IAOjg4pcipO2CNLgDSK1WMtkw7jX9rlRHd+LmSP7fwViP3dj+Iz98KVj3pio/6HGgQJ50Nz4KFRLOu3L1BTHlK8m2K4UTcH+1IN7snooEDHUz4Ae9Y2QjvL2yLwjKKvM0xJIhPR2JprgVi3naXSLZA9nBEg2iy5PxR6qKF0hCy+opEGAJfK1UsWET3/Z0ed/YudALDlarJzTq1Q3Wcgsm9rp3QS70CVV9PPAuj6Lr1eE/MDXPoC5+U/e3bsGAqYVMiu2T9cViMf3Y80Cf4oiFIxp0TGp029VxAE/F9D7XXQ3EsbCMzjNPDi89+MHGXa/m8JHwXSEyErvSlrjXYi9KXv0YQ5fGoJkDbawZ1RRGBkY/mkvC+oN1OSY8LN+n64vyYA7933T7oF/h001+F1AbOd2OrIVy3gZGysJvmCebCbi0Dxv8fChDftu6y8zxIJL9NWrWb+Y8KoH+CzuJewUrCQGnXGI3HI+W0woL88OkKAN7kIoZoCRP8O/j6QZg4Q/Z6kSwsXTiPAutFwrvHWdxLhBsUZzKQjTS5acKKI913CMvZuwOByKGpyB7o5lEgCfS/W4m9iA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: db15cc83-54d5-42fc-d87a-08db24438ee0 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2023 04:21:18.3753 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8YkCjbaCciSTz1H/B0vmNMoSKT4BVazk8Oi34yNOJRsn3tGvq8Vneea7GuD2MFtFOYsuSaAuOqprCog2c83eKNBnYGwcFA8q0gk6X1v5Gew= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4371 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-13_13,2023-03-13_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 suspectscore=0 spamscore=0 malwarescore=0 adultscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303140037 X-Proofpoint-GUID: 13Bk5PhKbzW2Y21_Dxfw8eK38_H8o0vA X-Proofpoint-ORIG-GUID: 13Bk5PhKbzW2Y21_Dxfw8eK38_H8o0vA Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Separate out the code that adds and removes a uuid from the uuid table. The next patch uses these helpers to set the uuid of a mounted filesystem. Signed-off-by: Catherine Hoang --- fs/xfs/xfs_mount.c | 30 +++++++++++++++++++++++++----- fs/xfs/xfs_mount.h | 2 ++ 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index fb87ffb48f7f..434a67235fc9 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -58,7 +58,7 @@ xfs_uuid_mount( struct xfs_mount *mp) { uuid_t *uuid = &mp->m_sb.sb_uuid; - int hole, i; + int error; /* Publish UUID in struct super_block */ uuid_copy(&mp->m_super->s_uuid, uuid); @@ -71,6 +71,21 @@ xfs_uuid_mount( return -EINVAL; } + error = xfs_uuid_remember(uuid); + if (error) { + xfs_warn(mp, "Filesystem has duplicate UUID %pU - can't mount", uuid); + return error; + } + + return 0; +} + +int +xfs_uuid_remember( + const uuid_t *uuid) +{ + int hole, i; + mutex_lock(&xfs_uuid_table_mutex); for (i = 0, hole = -1; i < xfs_uuid_table_size; i++) { if (uuid_is_null(&xfs_uuid_table[i])) { @@ -94,7 +109,6 @@ xfs_uuid_mount( out_duplicate: mutex_unlock(&xfs_uuid_table_mutex); - xfs_warn(mp, "Filesystem has duplicate UUID %pU - can't mount", uuid); return -EINVAL; } @@ -102,12 +116,18 @@ STATIC void xfs_uuid_unmount( struct xfs_mount *mp) { - uuid_t *uuid = &mp->m_sb.sb_uuid; - int i; - if (xfs_has_nouuid(mp)) return; + xfs_uuid_forget(&mp->m_sb.sb_uuid); +} + +void +xfs_uuid_forget( + const uuid_t *uuid) +{ + int i; + mutex_lock(&xfs_uuid_table_mutex); for (i = 0; i < xfs_uuid_table_size; i++) { if (uuid_is_null(&xfs_uuid_table[i])) diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index f3269c0626f0..ee08aeaf5430 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -484,6 +484,8 @@ xfs_daddr_to_agbno(struct xfs_mount *mp, xfs_daddr_t d) int xfs_buf_hash_init(struct xfs_perag *pag); void xfs_buf_hash_destroy(struct xfs_perag *pag); +int xfs_uuid_remember(const uuid_t *uuid); +void xfs_uuid_forget(const uuid_t *uuid); extern void xfs_uuid_table_free(void); extern uint64_t xfs_default_resblks(xfs_mount_t *mp); extern int xfs_mountfs(xfs_mount_t *mp); From patchwork Tue Mar 14 04:21:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13173614 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B04B6C6FD1F for ; Tue, 14 Mar 2023 04:21:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229849AbjCNEV2 (ORCPT ); Tue, 14 Mar 2023 00:21:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33742 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229616AbjCNEV0 (ORCPT ); Tue, 14 Mar 2023 00:21:26 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 563DD64232 for ; Mon, 13 Mar 2023 21:21:25 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32E3xvQM009819 for ; Tue, 14 Mar 2023 04:21:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2022-7-12; bh=UWUhJIdmTPD19xYTMFABkrpqt/skMeNLkYm2FAQmq7U=; b=DKYChohsehDC3kN8PhsgV9ZiDRO/FF2PdF+7R3FykJuSU4KvDYBEmrtLWrcParB1PH1b mD64XSIQtwjB9NjHSityHYZDgohIyxq/VYSP+AlNhzfopC+eRbzJYPIPR3zTDwxKNaRA XZ3Yc1SfNiOSsiVrt3VRAyVtsSdLh8ZWPHX1OUZfAAKKOo6jCQQg6cNrsJB9Kfx8uCc4 tERac0tZJfawH2buEH2U6/0OP/j3WGBMtlR/7kf33F2omTN0HHMKrtj9zFt3CtNezeN3 fZjjs6wlrsxY3Nkmtev/DbDnB6u4Ox1Dtfc8jGIVy3leNJzNYMxBBMhuBoQJ4TsHmed8 bg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3p8ge2wcw5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Mar 2023 04:21:24 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 32E12juq007583 for ; Tue, 14 Mar 2023 04:21:23 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3p8g3cba4e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Mar 2023 04:21:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VH5NcY8deCtAv349AsthXvW83f6W5NHSmlMeItNN1YP2Qj/o8b9ZCRHe4xIEDtk7M2rm3lC0DlGi6WYkcLgrhIjSLDQNgcQNsPYaKamIZ7w8DQu2FkNHE0y6lur5r4By4uS3/czWoYmcfcf0wZ+a7szT5GRZYx77NGWj4RJ5BgM2BClXCR4NTLoUq/gi/PVXnEpVtLKrD4WHip7wqXzSllV80Rbl9DSLztgJmNmz1yONpjxibJrhxOomU+bz2K3+xyjizordQ8HMmp8Gc4uQUx3YioQAr/v23/nTdgjMZGdQDVpo8LvVJpxMjCsXvq5Gr2qxAf1sU4dOjgTo4y1pBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UWUhJIdmTPD19xYTMFABkrpqt/skMeNLkYm2FAQmq7U=; b=Wt21kCcIrP2SOu0/q3Pjvc+yJrGiOBYBPm4ommIZ579Q/BoAOtDDFDtnJ3N0GomqEJUMMgX7PiufVd0uxELvbcEYTzSMyVavS3HzO+COa3CniJyzXNcCWtqKGkP+Uyc6RuR6nV+tlzTB7hDlB627ceKuYeX3N4ZHUOC+TgMkFtxziVbnUvD+3orkdfSE23bttwrnRzj8srFqQINx7XI5r7H5MLN7C3om62mj05hUSrFWOyleFQ7ESvp+JKfv8uJgw41DtiOTHRjHamoj4aMvZndg75+9TyNDiNKiDiLmweD784szZhjI5zxEi4Q0KHULzeyHonNmFZQ7xLLR/Ib2pA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UWUhJIdmTPD19xYTMFABkrpqt/skMeNLkYm2FAQmq7U=; b=xyVGxUaR+UoKNP4/eqidHMUvMDGBNRQvlRq6381cldFoKlTrmr12dhKMqYY6yRIY4ETrwH8hylDhTo5IQMYByy0p2e/nuOPGGoEklUWKZ/tvKmy8PdwRfRDBoFZ5HrHmtFLylig+dDCFmIZIHsiD4u2cFoLZySYXhFt1m0ihO1M= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by BY5PR10MB4371.namprd10.prod.outlook.com (2603:10b6:a03:210::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.24; Tue, 14 Mar 2023 04:21:21 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::b647:355b:b589:60c]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::b647:355b:b589:60c%4]) with mapi id 15.20.6178.026; Tue, 14 Mar 2023 04:21:21 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH v1 2/4] xfs: implement custom freeze/thaw functions Date: Mon, 13 Mar 2023 21:21:07 -0700 Message-Id: <20230314042109.82161-3-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230314042109.82161-1-catherine.hoang@oracle.com> References: <20230314042109.82161-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR03CA0173.namprd03.prod.outlook.com (2603:10b6:a03:338::28) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BLAPR10MB5316:EE_|BY5PR10MB4371:EE_ X-MS-Office365-Filtering-Correlation-Id: e1344cc5-7015-4aa5-95c7-08db24439071 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Kyj0kMSpqHXHoN63x3+dYOthNOVGpT3FidEM1gM9ROnexCEwVCjiCIMzpue3PR5LF35X1GPFJE2WogYr2hJMvHq8vKpHkuhkNgUXzGA0NUn5pEqOyY6M5UIIPO5xJ+69aHVyPWARt9rUE3ZOYVeKKXWnN/zeFHoB5hmuewDhrkbyAeAxeF0EpQj9I7zZbZeR4r2es0LMOi2dHriWekPfdDUxlhgrJYDXiT6q35v7b1kVnZkeGwT1GY0vQ1IccumyxGQy9dOQWNdPOeHp9dp5bcSKb/htFahl3UXax/LXj1c16WpLpSgqLI1q6vbpRbTRDiZEEXkM/amcDLMGYZUnFsQ9jB2/g+hJaQbt9lZ99Pppj51b4CX9JVUqpKVtRicrJ/CZ2wHO5+XyuWDICeChRd5zID7bUYMmOru/8zwf972d+5ZoP6M/hpLk/Gz0i6tnaPgV4Wukl5gErqSR8II+8rUJsU8rl+V0p3Ij3Wciye8F/+pGxF0aXyb6pwgkX0p1g0iXJGHxVdp4qoi6ZTvLdpReFk+I7V0xANeZ5gTcw9sRDH41d6ruaVY49Pe8/7MuaQ4+TtHpSjUm9gPtKL45XVgei7UXWXBxVxLq3SKwotQc5VT9YqaeNVbKzW6po3HUE/j2ipzOMdPeI15L45bxsg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(366004)(346002)(39860400002)(136003)(376002)(451199018)(36756003)(86362001)(6916009)(41300700001)(6512007)(6506007)(1076003)(186003)(5660300002)(2616005)(8936002)(316002)(478600001)(6486002)(8676002)(66556008)(66476007)(66946007)(38100700002)(6666004)(2906002)(44832011)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: bmyfHhPIQZiHlh7MU3gDrLwmFmTuaOoraplSkBxCLEhuOBGBkWDxQJ1TZ1GxGnePTY0pUy/jMruJuMcpmkCI1LWvNFVH/PCReAK81cqG+VxNts7BRnVWww4aAFpYyETZA85ccb90YVZMt2sc3m7JFjA++k/g7AiA9+hOKEgrgT8uUY5D//1vLY25HNQ0d6C+WVdBQ20/KlqZyQ6e4aljyPBWOwmPVr15f2g2eUSuw3PW9fJq0GGsq6L+TGUGEd0r7Aw9VMB+WOY9vzrF2TelhowXZxjIPdrRXaiM+Fs+tYzIHoODpwNkx0isr6i7GmrCFqPN3vATzqCvJBH0TztZNAsN4Nz/DEvlnQYsSYglZE02MIMIfSohHiwpoW8Ng7KNcZ2Da1i3abz0gj8t4Idyakx13wXJhGfNLC0smN4YV04bmhaA3PFSZ+zZPPtHJSsf+yjYlpVw9wmdvVf5FJXJ8mDxJOvoaIV0sM2EZg+p7MfNJ4VRhYAFQE4PVXoBVXVkqggz5vYT3je9lnK91wk5oe4z4p55Vl5b2iTEUhb5980EdRrwpe2GQAGCYoyVjtBn67L7L/TVf5chhvVO2hLJgNPenIms0Ql4pk5vidi4zURxl8Kh3ZnzaMhc5bEAwmFE7edO2/Rng29Q4+VRLI0o8G76ziG16cgPn+8QiV9aMIupmlWPavfQywhrwvpiWn+ayeA7xb1jdMjtLYjrHOhamgLIF60JkAz7IjGfInOpM+lcjg4Y+m3gkgVBCn4gPCjSyRfE2IEIPYFjEeCHbLiPGFmMFGYB/pJWp35hWYoxtYEW31D4fRxvc/7OPJ2PlFMhCKzLvwOaCTc9UU9eTTP7AIBzjjDarklW6Q7lfvbTbsIjGAAgYwWBbU73M56niC0SZe5rb06nE0mr+Bm6NYZ+o2Ye3blaxx2efYQX2pNznRtcJ1+xcQUI3UkHYqY92KmI3N9kQpQzQHd+vC6efWQxcgZ3ATzz47VsmZVvb31IaJDX19OzW5sc499ZnyQS8HL2EovYifkdMqr/e2jcJxebTTf6S9ddr+jZY69ZgDIaJHonlwnlSUPfhsNdofDk2CuVw8seTlh3tNa1SWj5G1+be3DGpeZDPRUC+fkPFfOyRqmxvJmCt/SUQrp/IhKDXGMRNhuiP/Fk80m59Zh1gw/KyTaz/w4jJq6RQUM1un6yHsCd3d5If+0C8CcvcOpE6H/U2vq+4LtwDgtoGfpnueCBM24e6NLT6q0aMUSO/3MoFFN/CcGkELStPZdPbvyhOH1cgNYQjy5v/9GrkgIhTBt29+QKXB9eBs6m3Z4ay852OjXq3TZpwFWYOhH7qcxuJia9HXYpYOmWm1OkzZf7SPnTLjYP16+fbo8crFNii6eeIYvJg+kEWkCEovnkWTFSBmuow4D2WTSsWrCfhrR8XcAUVDgb+Ln0RA70SSpgrOR7Lt2/CFdvfN3VYKwDh37HwSp7AsB5y1KsEmudlgUeMTonim+ixHkm9L6iluXOcvuvwlr0uOvu8uZfiOc7no4U15hh+dslPh2tdRzxSre6ZLLA1wwYew72CogUEJfoWwwFItgRZWg9YF3vNQv4iof8r389vOgHaaWHrIOh8azYzwZL8ggu6dXqHpwHDb+asx40GkLYo8tLQ8LaPrdESWgnx6NzFqfPZZ1YvpWzgpHJKH855Q== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 0nBKNBSg/uEn7OUVdeigaXFDLSPGddSeX0MBXv91SCqr+FI/5HbwejVw9ahmMhImUlQ5Cas4clRi8ZgyImZKNQzYC/z4KkNeNHatKf0lXfEXsaGi7M1WR9+0xHBoXwjrkAlibTaz0bX9ptk4AuePbUGxgYrVU6CvVuObLOXWfv1A+KXCGIPGfqVf4axzuhIj9/qbL97OV5QJEpxwt45MfLM85+dYhYu2kd0DZTtcOUMNOmPpaXcanVL2bpATUTdh3YOSXw64c6qancVrV3uLxRKjATQwIIPWMMkLI5sEtmv0MXUuDUt8qSEbei6b/1jLU1jPIsTtu7ZNsFeFqgiirjWdoDqhFne9283s4tUlpvY5WrU/FX0lH9ylgXS6iwus3A1HxSfXV9pDiT9QXUIHCYl3L0z9A3XRUUNz/Ecrg5E0B9EpkkOBsbKT+C3dyEUl3BLoCdcOVwjteYv3qSpWYA/6Y9ZEhZkkF256g3DNBOmE8SxDtpXnTSMcS3BYStRtlvzZAiiXXH/yNW8ZtT/L42MRNU3A+ndFPStvq26LpMENuHeFvAdSXWVqlbxwBiF8GYEEFRjlA65WFWZpvlKF/RI2J5WljshRSnURSE9QsMxWTX/OGrc6ZFfLi+cFUNV8Z7nlRDxv/pOVEJ6DUwRK20SP/Xw5v9X2NpZfQk27OHQMXqRzx9UnLvbHc5xRdqacViJ3gDyx2sRplwy7Sxg2eAC5UZthNRDjFARHlHMsbkgXpWXyFH30prTeSU9i6YMV7XcQjujyUht5A6j//ov3OQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e1344cc5-7015-4aa5-95c7-08db24439071 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2023 04:21:20.9547 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7Tni1bbi4QbWFttMi6au1k/SwcVge7jqWzfGf2pFJ8qmLs6fgV1oAE3IBtmkivwy5EcCxNnCpEaUc5mJF+tUKnLABC7NHsPWynULkwCKybQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4371 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-13_13,2023-03-13_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303140037 X-Proofpoint-GUID: kFjGS19wB1RTJAcJ4YJzmA2LeqYW_L8L X-Proofpoint-ORIG-GUID: kFjGS19wB1RTJAcJ4YJzmA2LeqYW_L8L Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Implement internal freeze/thaw functions and prevent other threads from changing the freeze level by adding a new SB_FREEZE_ECLUSIVE level. This is required to prevent concurrent transactions while we are updating the uuid. Signed-off-by: Catherine Hoang --- fs/xfs/xfs_super.c | 112 +++++++++++++++++++++++++++++++++++++++++++++ fs/xfs/xfs_super.h | 5 ++ 2 files changed, 117 insertions(+) diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index 2479b5cbd75e..6a52ae660810 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -2279,6 +2279,118 @@ static inline int xfs_cpu_hotplug_init(void) { return 0; } static inline void xfs_cpu_hotplug_destroy(void) {} #endif +/* + * We need to disable all writer threads, which means taking the first two + * freeze levels to put userspace to sleep, and the third freeze level to + * prevent background threads from starting new transactions. Take one level + * more to prevent other callers from unfreezing the filesystem while we run. + */ +int +xfs_internal_freeze( + struct xfs_mount *mp) +{ + struct super_block *sb = mp->m_super; + int level; + int error = 0; + + /* Wait until we're ready to freeze. */ + down_write(&sb->s_umount); + while (sb->s_writers.frozen != SB_UNFROZEN) { + up_write(&sb->s_umount); + delay(HZ / 10); + down_write(&sb->s_umount); + } + + if (sb_rdonly(sb)) { + sb->s_writers.frozen = SB_FREEZE_EXCLUSIVE; + goto done; + } + + sb->s_writers.frozen = SB_FREEZE_WRITE; + /* Release s_umount to preserve sb_start_write -> s_umount ordering */ + up_write(&sb->s_umount); + percpu_down_write(sb->s_writers.rw_sem + SB_FREEZE_WRITE - 1); + down_write(&sb->s_umount); + + /* Now we go and block page faults... */ + sb->s_writers.frozen = SB_FREEZE_PAGEFAULT; + percpu_down_write(sb->s_writers.rw_sem + SB_FREEZE_PAGEFAULT - 1); + + /* + * All writers are done so after syncing there won't be dirty data. + * Let xfs_fs_sync_fs flush dirty data so the VFS won't start writeback + * and to disable the background gc workers. + */ + error = sync_filesystem(sb); + if (error) { + sb->s_writers.frozen = SB_UNFROZEN; + for (level = SB_FREEZE_PAGEFAULT - 1; level >= 0; level--) + percpu_up_write(sb->s_writers.rw_sem + level); + wake_up(&sb->s_writers.wait_unfrozen); + up_write(&sb->s_umount); + return error; + } + + /* Now wait for internal filesystem counter */ + sb->s_writers.frozen = SB_FREEZE_FS; + percpu_down_write(sb->s_writers.rw_sem + SB_FREEZE_FS - 1); + + xfs_log_clean(mp); + + /* + * To prevent anyone else from unfreezing us, set the VFS freeze + * level to one higher than FREEZE_COMPLETE. + */ + sb->s_writers.frozen = SB_FREEZE_EXCLUSIVE; + for (level = SB_FREEZE_LEVELS - 1; level >= 0; level--) + percpu_rwsem_release(sb->s_writers.rw_sem + level, 0, + _THIS_IP_); +done: + up_write(&sb->s_umount); + return 0; +} + +void +xfs_internal_unfreeze( + struct xfs_mount *mp) +{ + struct super_block *sb = mp->m_super; + int level; + + down_write(&sb->s_umount); + if (sb->s_writers.frozen != SB_FREEZE_EXCLUSIVE) { + /* somebody snuck in and unfroze us? */ + ASSERT(0); + up_write(&sb->s_umount); + return; + } + + if (sb_rdonly(sb)) { + sb->s_writers.frozen = SB_UNFROZEN; + goto out; + } + + for (level = 0; level < SB_FREEZE_LEVELS; ++level) + percpu_rwsem_acquire(sb->s_writers.rw_sem + level, 0, + _THIS_IP_); + + /* + * We didn't call xfs_fs_freeze, so we can't call xfs_fs_thaw. Start + * the background gc workers that were shut down by xfs_fs_sync_fs + * when we froze. + */ + xfs_blockgc_start(mp); + xfs_inodegc_start(mp); + + sb->s_writers.frozen = SB_UNFROZEN; + for (level = SB_FREEZE_LEVELS - 1; level >= 0; level--) + percpu_up_write(sb->s_writers.rw_sem + level); +out: + wake_up(&sb->s_writers.wait_unfrozen); + up_write(&sb->s_umount); + return; +} + STATIC int __init init_xfs_fs(void) { diff --git a/fs/xfs/xfs_super.h b/fs/xfs/xfs_super.h index 364e2c2648a8..0817cfc340ef 100644 --- a/fs/xfs/xfs_super.h +++ b/fs/xfs/xfs_super.h @@ -81,6 +81,8 @@ extern void xfs_qm_exit(void); # define XFS_WQFLAGS(wqflags) (wqflags) #endif +#define SB_FREEZE_EXCLUSIVE (SB_FREEZE_COMPLETE + 1) + struct xfs_inode; struct xfs_mount; struct xfs_buftarg; @@ -98,6 +100,9 @@ extern void xfs_reinit_percpu_counters(struct xfs_mount *mp); extern struct workqueue_struct *xfs_discard_wq; +extern int xfs_internal_freeze(struct xfs_mount *mp); +extern void xfs_internal_unfreeze(struct xfs_mount *mp); + #define XFS_M(sb) ((struct xfs_mount *)((sb)->s_fs_info)) #endif /* __XFS_SUPER_H__ */ From patchwork Tue Mar 14 04:21:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13173613 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9A935C7618A for ; Tue, 14 Mar 2023 04:21:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229551AbjCNEV3 (ORCPT ); Tue, 14 Mar 2023 00:21:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33768 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229842AbjCNEV2 (ORCPT ); Tue, 14 Mar 2023 00:21:28 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D1DB622CAE for ; Mon, 13 Mar 2023 21:21:26 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32E3AdEL028497 for ; Tue, 14 Mar 2023 04:21:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2022-7-12; bh=6e+xUX+Gk206YkXJshU2VousrLWScIa1qzLA+trygTw=; b=Tl670IatXEan3ukSrkM1THp+YuuEYdDur3O0ku87zsCOA5EI2OxyKGKz22SM7g6fI8iY 3gBoCcd1KPvA52tYcyDgUY9YV6bcPWQABcHnMYlNtO13sd0VglNZd6IlliiGCCXYtnfQ IoD8tKFPzqlFh4G2OnhZuZlNwUEtWLQ5ii/I48FezJOjsTE24vIlibuVUOA2bhqIh6A9 UchmX8We67IbvlXl5X5FOI7PT9kw+5UvL7kzdqhiwSQwH7wwrsAmTA3OJc6P8NDAmPIL Uh2nOi13OK36shOxP9NjpxR1OjG1yWf6gik/FAeVEQvQq6bg+DhdHl9p70FgEzRMqruQ TA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3p8hhadean-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Mar 2023 04:21:26 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 32E12jus007583 for ; Tue, 14 Mar 2023 04:21:25 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3p8g3cba58-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Mar 2023 04:21:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UCmKLx5E0xHIvZrqsgaRYWdbIUAXX/C6SX89hUi39SUONW6EXtK5fBjhHA4MrGMJffLpJDCB4xzJkR59aSmeTSL0FmB5kCc1M90oE0LLJoFHa92PFlFo3wzM7UmBjygKV3udrUtVZShc0bQIOEGyBPnC/NRaYKheOA/wc/XhM2rLxELgv1U5cnceEoZOzve/eijWN7PNipk9CHS0+xsaF3DjBSh0rckmXq06x09ToB3Ex0cmp12Rkkkba75I3Ce/vdLNDmrqqUAHHtEO81jFcMG8GY9XyFOnZigebdjygmvhzOPR1hEmCn+yZs58SzO1pkadxPVQNGR2Pk8hqAZDtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6e+xUX+Gk206YkXJshU2VousrLWScIa1qzLA+trygTw=; b=b3evX8rzhJqBAer9uUen0Wkk7t5EemhvsQkgI9Q6hv/Ev3yb4goLEwRbrngC+thjBEPjE0VAmGXGPSoWoGPx+KpUJeoUCUDtEd99aXB6jgfkcyuKCSvySwKr8B8UcB1YQjTInq3oMqCk3N5kQuLn4e2t0iiahNPCzvq9uHhXjqQcTyQW6bBGlNgcIw8D5leUF9EVgddYDrwT1Sr6i3Pc2+N8zg+voLXfH9dPC4wQo/BosRaESbqBPJDWEJlCV0bdyKDacBdTLweF+whQi1eC1nGaOTJbnXIQ4qgSjt8d1YOm36Q6T0siB2zUfA4NIXK96DGo64N/WjQt+geZRfCD1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6e+xUX+Gk206YkXJshU2VousrLWScIa1qzLA+trygTw=; b=BLnvoUZ9xeL8F/1ez3d5A+CT7nx1JGfWfFr3obzCUcZL7hOSvCsZFVRqNp5fB/PhgBjqT+HGGJKOtKlg3Dy211o6rb290k8ljEaplhUzqyPpH8nsdRUNCPTI8Nmxs0xMl/8za4fkjuqRoGQUuCWRMPQCdsVrwNRMcyrINaIaFZo= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by BY5PR10MB4371.namprd10.prod.outlook.com (2603:10b6:a03:210::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.24; Tue, 14 Mar 2023 04:21:23 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::b647:355b:b589:60c]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::b647:355b:b589:60c%4]) with mapi id 15.20.6178.026; Tue, 14 Mar 2023 04:21:23 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH v1 3/4] xfs: add XFS_IOC_SETFSUUID ioctl Date: Mon, 13 Mar 2023 21:21:08 -0700 Message-Id: <20230314042109.82161-4-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230314042109.82161-1-catherine.hoang@oracle.com> References: <20230314042109.82161-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR03CA0156.namprd03.prod.outlook.com (2603:10b6:a03:338::11) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BLAPR10MB5316:EE_|BY5PR10MB4371:EE_ X-MS-Office365-Filtering-Correlation-Id: 2eb50ecb-38c6-4829-f405-08db244391d6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9OzO25p5v0VoWKkhTT+rz1hSUcPEyg9YbsvuwUDnl8gIs506HOfhv001q6T4kgEo1uru8vb3zfKhR23+4hrOJ9/fTA1j3MpEk9QkPVs8fxCoMETNMN5GIXOsMq6HchqD1A1US6m8k3GFKeEFdicEffkRS5kd2oau/GrXjQbsrLeVN5ZiMQNzm65gYpbqbq0m3BX8+L/+/lPu3RKVZsoPK8xGPBub06RDDkOJVOLZMBPhBwcUhtay7spnoNdHxQelD+THXdykURk8UXlYs2IYMK45cgzxUJJcCFJGXB/bEI1bUeLdBBcp6OCgrCbhfI6ct5m7SaYffZlx6nPE5OUVXnt7NoMKVh4/DJCaNjW4efxA/hYNvFIG+pAVUXJIyOGtj5k4ON/LuSRiDVWVxeHm2pa6VcLx+3Tj3ldESJDL1SEElClr3FaXOEvYkzaPbSyJhOc/phwLxUvHAKy6my4cMX2euAB+1jq40+HCAG5v8enVvKSpEPXrpzJezGlCRpXqg862cYshwdivSckdrcN8jFXyhXPfMYM2TdlU7z7sjPCCHmDVjbwzJJo2MRDp1AoMfR10eh4uIJN7u+TOGdZFOJG1/tUXs1rKZQu//h/EADf2LllPrKvqss1x9IA+N/q2SzqJNcvMqEugc/qdaPrG2A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(366004)(346002)(39860400002)(136003)(376002)(451199018)(36756003)(86362001)(6916009)(41300700001)(6512007)(6506007)(1076003)(186003)(5660300002)(2616005)(8936002)(316002)(478600001)(6486002)(8676002)(66556008)(66476007)(66946007)(38100700002)(6666004)(2906002)(44832011)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jRJ8gjXuWjcxwf2+wfLBr1EkP2byAndMTSoWM18TifMPufnTAGLjOM8kCwvs3hWwX7k+ruoZxmiATIdqNcei33zbA8/k9RYCJj12bSagwVoU2NBzWfGx0OFNPzKOMLEHntw7/CSp+oOCvTrm8hPvr1ebYE3N7OahmCE4JXd2h2n7v0oCjnyQLFW0rv1SFJZPx78gIC2ZiPgH1z6CQ4xRCLwM0z6ouOXjiPW8zqUoNv3yjnAZ/EPKNySOiRMMw8zteaqpJG35EpgNobkl046FnrYT4Nc1yEDToDQ4hBXKupOlODOHdpIRceekxmR1fm7STks2HF250tOikhhToDvKKD2eivUl1AM10fSL62iNkVuU3TsNM7vd3OKw7Ml2c9kDZHencOU7cCMvZTdrZp+n5kgxr2EEeTvdUGukrXWY1E1p1dqx7cXeCuSjy+C+ThsQeU4trdvixJGJzSiwF/cTfwi4RPVjjCovZMKTPxqqB08sakDBwHUuWCKklmEcyI5l3rQfiVdqI4zYjL1fI2cXqlsMJKjBUNb2Uu14wfyk4IrudYV8QbEZpgMOk5csuyIRRr5OTmyzd3hfwvjGdQKRJzEwqHMDgaDEnXVPRHHn5G4p6jJxoQbhnPml0YerRQAHlo76yuGe85B6zloHsJ/89bY15j1FxT7P8mG+9yKhB8AN/Q7eXuoDZxv3hj8xWGHD/i5X7BbVef3qK2y4ZVqzN4UdsE8quQ2NY1eYRMNb8kWoLx/ANgVR6aorGYow61XEFNd/9+O2rMHUvPMfPVnbQT1YglNQF2o3DoB9LLEfLlCVnffIZ8sMv7RvNHDm7yB+et8Blf2xmNuH23XZ49/azXAlJ4wo7vTDDWCVhL26z47eBdMkVfHdHOHkSsImsUS14OSeM1OAs8ALJIb6mBzyaV0jF0518SGkGWtkjJF6ZmwN7XOfBKAYZq9zEvrHb4kjiveP/BI5PxyCw+wFcRDF6e+kDujU2MmfCnAVJtcWjQk4hfr1sFNSvZK1yhzsulC+oZJYsP+RPuuGxCf7JmYn/Gb/TdLUQ7NrTpLo01FIdNARwggenEu5QTnpBLbd/GEvOSDSJ5t1o5mdsf7xXGsMNCXBLF/VFkpnWQVbgZu9DQaFVukchMl+y4h6JTQnTAcFCfTox6R2JRY8lKkLf+tU318FoEszkPKg8MH1gcqJ+KJmrOHeWqU2NXTsdik+zWzz+Vr0AjjE52+GojYtZ8ztW/XQvBL9blnBKdJKTeyGEvEBlQ+Q4k2e+pI1Y+wmo5eqo2dqRPEdmLuqgDv9Wigx4o16+/ezgzYE7KzfzRh7T+T1/F8GGvu0dNOW82FFov0DqVLT3f4BRFd3SVBJe1GbAz7jVpS0cTLC6Wo899WKYOIHCH0ohgOIXNtXGGjVdT0uNjHD46HFsSflix31hQa3bBPL/W6sEnr+yI65JKVoCeRb9PH2x8OH3SY4sSDIfoTFmdE6Ts6j/iMlF5t3IaCC/wS1pS7WtyVt4dJVJoM6I4Ub2M0PwyKiLnA1K4/WWyg24hj0R8S5yY2ggBspfNV+tLlenx2UCPArgpg6Uy1FlR989HHHCwdrBq4LNFjqlhntTVNbWU2GittmhQCuvb1LXDr4sqnAbpQSbZrftzt4W0aU4JCpyAagwtLhw90RYYawlCyrvNjyNihLv1d/wLVLpg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: mZSOLrivoqf9wAANOWce8kMadhyiID1tXhJ3vEIIRqBS2P/rEeJ3rJEQy+aUseaT+SBAZw8mtpyMR+OKqv1d7nDxUO1OWWP7ypr7Qz3oT7iQ0/3jqfnQ8nWg/CdoK7VqBlTtZWXiOFfh7pmyJXeMLPiezlmfwSbmp2gJYzMDQK8KAKbJpsTduSRxf72naj+YpQ4PhF/C6DujUZd3dD+b17wpm/pHgyOFoErNBoqeYQQ3daMg3yiHmurR8WJs2kU3fQMB+dFy3Zw+aK2KkcyxsRKvoWvTWImAHq/dYcbraSPZZPCxJsDR96PoxxhJliT1aLPJ48yTmdCngaGepKt3u2rFzZ1KVGb2cz7sgJCbbGe0IDe7lhTIFrC+KXt/mevNYSDCLwpVNM0vqex7z/y3TT9GLQB2Cn9WyzDgXmktXi2xfyks7Q0y5x8sHByikQ/pTU4nVrlyFEiyXkmiZDqPWgp2E/JJBrynCiDBkK9LzOjp/JUk5wDm7DdwPy21JPzR+zHypvengEe8glnSE7t0DssztofIgfQMCnlPzWKHM2vZbS4igP7IX4X5dRtwEunRmkGRIJXd4Ba+BPNxKEnx9i5hu7Ly93lc/cZ5MTlpfW+9C8GO/JxBaTmht8t0kenJRcLYtC8LISMjJuCaF7cQmgT0r/FBerhyOHAocjEJAoQfIyQFgePWUc2Z7Lp02kq2oZ6E0ZzqGEC/ganTg5+7J8YRI4knbSj2GvO4GbeX/h+C9q+eauBxuGxs6o2SwqsWKbBxNjDQ2iGvq53VEeP9xw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2eb50ecb-38c6-4829-f405-08db244391d6 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2023 04:21:23.2811 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3WcnlVf8jeHpa7b+c59rSHAfZQ+7BCULxitkx+iOyfEOfT/TBhMnyp/czrKp3Zpm5AGGBnCZROrPYwogWwZBV+8DsxPlUr8pu7y5bNvZrDA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4371 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-13_13,2023-03-13_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303140037 X-Proofpoint-GUID: wSBl1HAdpRaEwp7SoxVHc_0N4v6jxCpG X-Proofpoint-ORIG-GUID: wSBl1HAdpRaEwp7SoxVHc_0N4v6jxCpG Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Add a new ioctl to set the uuid of a mounted filesystem. Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_fs.h | 1 + fs/xfs/xfs_ioctl.c | 107 +++++++++++++++++++++++++++++++++++++++++ fs/xfs/xfs_log.c | 19 ++++++++ fs/xfs/xfs_log.h | 2 + 4 files changed, 129 insertions(+) diff --git a/fs/xfs/libxfs/xfs_fs.h b/fs/xfs/libxfs/xfs_fs.h index 1cfd5bc6520a..a350966cce99 100644 --- a/fs/xfs/libxfs/xfs_fs.h +++ b/fs/xfs/libxfs/xfs_fs.h @@ -831,6 +831,7 @@ struct xfs_scrub_metadata { #define XFS_IOC_FSGEOMETRY _IOR ('X', 126, struct xfs_fsop_geom) #define XFS_IOC_BULKSTAT _IOR ('X', 127, struct xfs_bulkstat_req) #define XFS_IOC_INUMBERS _IOR ('X', 128, struct xfs_inumbers_req) +#define XFS_IOC_SETFSUUID _IOR ('X', 129, uuid_t) /* XFS_IOC_GETFSUUID ---------- deprecated 140 */ diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c index 55bb01173cde..f0699a7169e4 100644 --- a/fs/xfs/xfs_ioctl.c +++ b/fs/xfs/xfs_ioctl.c @@ -38,6 +38,7 @@ #include "xfs_reflink.h" #include "xfs_ioctl.h" #include "xfs_xattr.h" +#include "xfs_log.h" #include #include @@ -1861,6 +1862,109 @@ xfs_fs_eofblocks_from_user( return 0; } +static int +xfs_ioc_setfsuuid( + struct file *filp, + struct xfs_mount *mp, + uuid_t __user *uuid) +{ + uuid_t old_uuid; + uuid_t new_uuid; + uuid_t *forget_uuid = NULL; + int error; + + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + + if (!xfs_sb_is_v5(&mp->m_sb)) + return -EOPNOTSUPP; + + if (copy_from_user(&new_uuid, uuid, sizeof(uuid_t))) + return -EFAULT; + if (uuid_is_null(&new_uuid)) + return -EINVAL; + + /* Check that the uuid is unique and save a slot in the uuid table. */ + if (!(xfs_has_nouuid(mp))) { + error = xfs_uuid_remember(&new_uuid); + if (error) + return error; + forget_uuid = &new_uuid; + } + + error = xfs_internal_freeze(mp); + if (error) + goto out_drop_uuid; + + spin_lock(&mp->m_sb_lock); + uuid_copy(&old_uuid, &mp->m_sb.sb_uuid); + + /* + * On a v5 filesystem, every metadata object has a uuid stamped into + * the header. The particular uuid used is either sb_uuid or + * sb_meta_uuid, depending on whether the meta_uuid feature is set. + * + * If the meta_uuid feature is set: + * - The user visible uuid is set in sb_uuid + * - The uuid used for metadata blocks is set in sb_meta_uuid + * - If new_uuid == sb_meta_uuid, then we'll deactivate the feature + * and set sb_uuid to the new uuid + * + * If the meta_uuid feature is not set: + * - The user visible uuid is set in sb_uuid + * - The uuid used for meta blocks should match sb_uuid + * - If new_uuid != sb_uuid, we need to copy sb_uuid to sb_meta_uuid, + * set the meta_uuid feature bit, and set sb_uuid to the new uuid + */ + if (xfs_has_metauuid(mp) && + uuid_equal(&new_uuid, &mp->m_sb.sb_meta_uuid)) { + mp->m_sb.sb_features_incompat &= ~XFS_SB_FEAT_INCOMPAT_META_UUID; + mp->m_features &= ~XFS_FEAT_META_UUID; + } else if (!xfs_has_metauuid(mp) && + !uuid_equal(&new_uuid, &mp->m_sb.sb_uuid)) { + uuid_copy(&mp->m_sb.sb_meta_uuid, &mp->m_sb.sb_uuid); + mp->m_sb.sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_META_UUID; + mp->m_features |= XFS_FEAT_META_UUID; + } + + uuid_copy(&mp->m_sb.sb_uuid, &new_uuid); + spin_unlock(&mp->m_sb_lock); + + xlog_iclog_update_uuid(mp); + + xfs_buf_lock(mp->m_sb_bp); + xfs_buf_hold(mp->m_sb_bp); + + xfs_sb_to_disk(mp->m_sb_bp->b_addr, &mp->m_sb); + error = xfs_bwrite(mp->m_sb_bp); + xfs_buf_relse(mp->m_sb_bp); + if (error) + goto out_drop_freeze; + + /* Update incore state and prepare to drop the old uuid. */ + uuid_copy(&mp->m_super->s_uuid, &new_uuid); + if (!(xfs_has_nouuid(mp))) + forget_uuid = &old_uuid; + + /* + * Update the secondary supers, being aware that growfs also updates + * backup supers so we need to lock against that. + */ + mutex_lock(&mp->m_growlock); + error = xfs_update_secondary_sbs(mp); + mutex_unlock(&mp->m_growlock); + + invalidate_bdev(mp->m_ddev_targp->bt_bdev); + xfs_log_clean(mp); + +out_drop_freeze: + xfs_internal_unfreeze(mp); +out_drop_uuid: + if (forget_uuid) + xfs_uuid_forget(forget_uuid); + return error; +} + /* * These long-unused ioctls were removed from the official ioctl API in 5.17, * but retain these definitions so that we can log warnings about them. @@ -2149,6 +2253,9 @@ xfs_file_ioctl( return error; } + case XFS_IOC_SETFSUUID: + return xfs_ioc_setfsuuid(filp, mp, arg); + default: return -ENOTTY; } diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index fc61cc024023..d79b6065ee9c 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -3921,3 +3921,22 @@ xlog_drop_incompat_feat( { up_read(&log->l_incompat_users); } + +/* + * Cycle all the iclog buffers and update the uuid. + */ +void +xlog_iclog_update_uuid( + struct xfs_mount *mp) +{ + int i; + struct xlog *log = mp->m_log; + struct xlog_in_core *iclog = log->l_iclog; + xlog_rec_header_t *head; + + for (i = 0; i < log->l_iclog_bufs; i++) { + head = &iclog->ic_header; + memcpy(&head->h_fs_uuid, &mp->m_sb.sb_uuid, sizeof(uuid_t)); + iclog = iclog->ic_next; + } +} diff --git a/fs/xfs/xfs_log.h b/fs/xfs/xfs_log.h index 2728886c2963..6b607619163e 100644 --- a/fs/xfs/xfs_log.h +++ b/fs/xfs/xfs_log.h @@ -163,4 +163,6 @@ void xlog_use_incompat_feat(struct xlog *log); void xlog_drop_incompat_feat(struct xlog *log); int xfs_attr_use_log_assist(struct xfs_mount *mp); +void xlog_iclog_update_uuid(struct xfs_mount *mp); + #endif /* __XFS_LOG_H__ */ From patchwork Tue Mar 14 04:21:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13173615 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CDE37C74A44 for ; Tue, 14 Mar 2023 04:21:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229802AbjCNEVf (ORCPT ); Tue, 14 Mar 2023 00:21:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33878 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229704AbjCNEVb (ORCPT ); Tue, 14 Mar 2023 00:21:31 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5963C7E7A3 for ; Mon, 13 Mar 2023 21:21:30 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32E413ib011377 for ; Tue, 14 Mar 2023 04:21:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2022-7-12; bh=aw6CziJGZ8SA50w/Ai2TL9j4Fl+tOTraLLqHKpdOytg=; b=jw2ztrUlN/aiuptzRDnR0+kSJUh93Q2Zi/0GE3eA7wDkCDNBHKYbBT+TrW34dHht1sGj gsxo33xc2Jh3sDhpeqfOvIRJzfXFz2+u15n54pe2eJqjMmycQv0FMjweE0Gg/AfhYb5+ HeMPWQHAM5HE7Gy7Nl1WKSpxVCzt+amf0mQLaECz9qrYTlIDI9p2Qvkl3wIC0lcQCm4b rvCaRttvUbkiD3RpgrkmrVBYuxdcgDLFcMbqDxAaH3krmCYdtqfX0tHUvAYhq6AnmGFd O1kMtZ4E0/MuDCx2hnWmoEZtm2EKWrhI+B/VZE7I74zJd0u4sHqXhDF9sPSGpZcGAm05 qw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3p8ge2wcw8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Mar 2023 04:21:29 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 32E1lcBj025120 for ; Tue, 14 Mar 2023 04:21:28 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3p8g35jft7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Mar 2023 04:21:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jeb5qeBlgCiNUGmHITYwLe7Ovn4DZm3juqA0qTnC+B3eLzqv4nsJdtyTUb44RLamgoO8XDPaPHJpWSS/cPoJCApTcXGmVP8DvOyB4vko+q13geDTJTRu3pkdCXAuDdYzzokdEktWJTHkrcU0Xbs4X74kBLc0SZEy34JvfEdyxsDOsv0McUsi9MB771hoAYCflkEseEleGd1p4bws9nj4DNl5XRvQimaGjeABXsn5pjChKtBH9vo88JkFqMY5MjCihUx3I4TZmR40sUcifrKPGN/M2NMncVowGuMDX7vCwp1bBKHDUJmL1HABjqbHCyJtQ8nIFuaZ4clBxNwDkwR1KA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=aw6CziJGZ8SA50w/Ai2TL9j4Fl+tOTraLLqHKpdOytg=; b=meyYrCV6OWEZFnwGIrDExgy2hTa6Ox/CgV3c1WAapcsLcwr00zVZDsBSK+OoLjDUk6pixf0ayuXQSfzO0RmxAh0RaEx5I9l4pAIrP6s+u+kFlRmf4/R93usmWk/J5OKsWRx4KKuH1ZWAg2923FwRIQ8hvs0HSrzeBcmjK6Um9mI4zkfQUpZXrbvoKAw1mpFqa3Ot2P3s/Khm0/bIkWaG9fnCJ9+Gt7MvOHxogqVVps9BSEU+4KK4/dGHFORPNQU7Tz8kkMs3Wpo6P1GyQ16kazvelABIUuQ2wiVDh0bGRsB97V3Gohj3rEcjPvlM183kkndRa2IY0MXJHLUmGHvuMQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aw6CziJGZ8SA50w/Ai2TL9j4Fl+tOTraLLqHKpdOytg=; b=nTV/AmHZdrJ7jYHljRbgzDUoJpfz4C3bXmdct93SSTQT2lD6/RBi7xyCxujU4kxmLck4vh/mRdBwdFM1YGmlRCWC3D41ZThLsa+ENaDY+xfDMhOIxJKIbc+klPSwsr1PoMxRfDHvL/XmecL0080jnks8aYzo0TmbF/RySjrIbrI= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by BY5PR10MB4371.namprd10.prod.outlook.com (2603:10b6:a03:210::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.24; Tue, 14 Mar 2023 04:21:26 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::b647:355b:b589:60c]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::b647:355b:b589:60c%4]) with mapi id 15.20.6178.026; Tue, 14 Mar 2023 04:21:26 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH v1 4/4] xfs: export meta uuid via xfs_fsop_geom Date: Mon, 13 Mar 2023 21:21:09 -0700 Message-Id: <20230314042109.82161-5-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230314042109.82161-1-catherine.hoang@oracle.com> References: <20230314042109.82161-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR03CA0155.namprd03.prod.outlook.com (2603:10b6:a03:338::10) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BLAPR10MB5316:EE_|BY5PR10MB4371:EE_ X-MS-Office365-Filtering-Correlation-Id: f58be54c-f70a-4cf7-d8cf-08db2443938f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3g4TYlthREfWlLuANGh8eLGfQWqaTpf6i2FxHRKcxj1RLe4WqYh/dfjDmZLQc0/ijU9rX9kF/3ajYhx4Z8MzcPT1P+EytZPyg05DDORJ3baOcy7aXxeDcd5d+SCxglujpPw4UBlWrTSgOAHod2c7hOrZpCC9Tv4lShTr2lsbuY2EdfXZuBdF0XeDO3quXYVVnJo2VeiB2q8n24g/8aOkN2AGGWynOvpWIZ+As7qbXbDGM5EVYwQkJFWKG1L7aBHBJCZCa/LYV1SLCVb0AENl86uFgGP6MO8vnmH+yLUVs9mo+kUHm9V8Y/vLXIS/WbEoMeNUZg0r6aW3xQdJrFIr6vPiuZOVkKhOqYRYOTcbY+WxmBxDRCnD+IaEwMK+en8nwQfDoJc/jvKqUsMSgZeKzXfrJ+m2YzaFVUbpwvETjezduALy7yOjzzPvdduxx93lsen8BNtp2o6X5DcoGfIs/qp04FAMtedfnBo1F6bNCokGZk7fM6Orc5W+3lPVUp/RuVxqk6Yj0uuvfcd6Mj/cGe5PPOm3/+wBoSdWspDlPOAPOX3GqdUMTX1jteNOoT4z6W4lSJxrvCsL94R0E7hx1tbjfFsW0f6kyxp1zowSBrTKBOhJHo44SpJptksAv4U/BtlRUOJj9h3nXAMcfAqScA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(366004)(346002)(39860400002)(136003)(376002)(451199018)(36756003)(86362001)(6916009)(41300700001)(6512007)(6506007)(1076003)(186003)(5660300002)(2616005)(8936002)(316002)(478600001)(6486002)(8676002)(66556008)(66476007)(66946007)(38100700002)(6666004)(2906002)(44832011)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TC+9Njy6FpM7wwXNUXl1G/N2LlTK1L2596BfJ+RfxopaSZOLO43Rj9Zuc+urkS3slflFgH+H0CbqfENvraYZ+LQAvwgqh2RztelbpKFYC9aUvmDn7RBUG3QAYH/kH7+yIC8hCTkQSWvra+03oTrSqF0pJgjqUks38G6P4QsrX+I3LejruQXL/i/X24SZ6tuMu6CYeMr6hWr40EFhiOOeLpLZ57QQvtxpciyo8S/KV8QOobip07cLWZLtzMojkidUL+OGGaPIqrFjvtxG5V2hFQgGKJsL3KmCJpJuYY4ACbze438c/KTRAsSTQUwIoBd8J5dwuWajmh8yvY2Xchmcj0sd1l4hhS67tXFrjxyId73kkujxzh1zoCbxiRxCu8yZS/2EDof147jBJopE0B67thlmQ2thrpHj3Xml0idvXZRks3WS6nXDKd7g19XTQ+OlIMG0WvXX9edv159Kb4JUqNE6OTTrWO8KGyAR462eLXGRgNrdBt4hjG/LYVhjkz56tXLeetg+4MKkDjqFH5WYfupz4d3slnKA9zG6qxvquXo5SUAttYZSrbq2q3DgkQNXJ7Gr4UJQZyE2PO+YE+UHe2AOGWbk0iszts8ZE01CtPepu1oCJlfOVCXGXcPIKdqAES6Jpxw2ZiXL0Qtq8VoLdQwSrdVjShcj57oSqWgQejSEZY47jqbSQtw/myygvXF6v3zenEHoV/V4b/uZhk5tnqZap6xxxfS2gcD4hNGupGJtj0j8DqgD+nU3OxYj6HFto/pXBvMbHiokEhJpxHt/ui5ZeSb3XE8SHoQAEBscdjGr1q+2/cXu727f7r+kvsYsfqSp3hePClRrPXCbgRveCZDlUvUVrHk7IG3hWg46Qk0o8BCAFXmMYBJRL3YfFPTwYfOzUvcyT2e3O1R09e99Jt1dawNWcK1tp8OlCxb9hjUn4UYpN1EQHWXQgs+4fIJfnIkDDWa+k6ELTx6ZfBlRyIaHojjLNDQByKxeAHiZsgttl8iIQ1Y+EMONGt6hAldbOZMg+NF1gsT/FFl1j6hBp/LNouUefFVzRvbtGHpZjWXk7gDuGma9raFznUY/GYujwhKkirGC1DKsVJlKcjbc4qaEQ28mG1j4XAD8w6V5FO/gYH9huFtSCYjTVtFnWe2hB+F/rDk3EF0zDj1SF3Sr2fTR5PW6fAP8Cx+DXzsMZnXZiD8g1KJPrfCNcbYYmxYSh6j5gZx0bjmJNcETaX3zpE5INLuHffiAUVFv2tJbMR1CkwLIteoLbICTuJHxIBJmibN5xc608TmqyYK28QiTCd9OO5C62jmDnvFJQLa2/+iNhVCcKHKi/LQDKCBBePyXGxYQrtShF9mZODaBUzSzmCwsvMJEWEXW/vBtkkQ8eYEc7o1papAkY9CZkzbhuyZRdaeBvgLth0UzwkbQXQJfw4kB6trQGDxMbhJXLeop5AEWHZTh5urcgN0Nh+1o3PRBgEmarxXOK8sULrvqtcM4bEnxypKLpy93V+s3rTe3n9G69BZzXI1TOxKOuG9LelcJIyY79Avrt+WkkN62wwbrJQMNtxzP9WfPQ6AxgJVIUnY+bGxoIG5/cX7IA7bknKipgReHM3JJpXEvY+2qhrGMLGHyx4N7XE3gPvKayS91JO3aH44tTpVHPJ3SOPmgvhtY5lL/V6hGt0AI+YgQe7uwdQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: qfCg0QD5FXeqJF71fSm68frW7q3VWPIA8eNwkmS//LiwYGVj8q4F49pZPHFCBzf/eEgeZo0c5QFjwXy1EcJHqPx7DlleypOYdxOD05Yu+4J35Xf0LaDw9amsRF/aUWEC26oIqZp4dLp3N5XQJoklQwqeBRBxfaWjJrai1XGXmQBEK13zBEE4bA1jH2fyO5Tkf/6LPqET4aiwtxMNOYtbgOsJECkRpZIH1zNGlJntKMHypARK+zTaBX35ZxNeFmuMAudWgPRgktP8W3FLyQnGXKufh3pPyzfVmITfls0ZudXIoQYjJtElbo4x8qNggfRLRBOaedf4KcSwZaMFV9dL2xZBMs6DXS9xEPxrIAK92KdXmXrivllFFJO0e4BX9gVA5iXwF5FywRntAZG5+nw+iHCplOavliqnI6FhCHyqfXxjL4hhK1trd+OdTaJ7QiZvMU+HXZktrkfKArIRBYKNA8rIFr/0xk1JUTufzIK3unvbRSmd9L8oW0vBGWNqL+FrlVJipBSCxlBnZNkh4Z9lgfKt58BnILScuw649t4hB9JIhvBQItC9Ku7fm0sTO06Gh0uXn3HUeQwyTJ2yqDWytFtcdNeUVc7Nwg5t8k3lx0JF2cwjCtkFo0wUgif9eFR56LLR/vBKN7Z7qLJx9sKbhNSGOnINe9tqlxvybNge+hE+xs0535n4iaQ1d4yHmJouUAjUnh8IWOFw/baZuaWfmcMQt0ZmNooIjPislQaiu4NJqcjJz9OhtiLmjr7lnKJUMl164jEqfkEj/44Bf5P3FQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f58be54c-f70a-4cf7-d8cf-08db2443938f X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2023 04:21:26.2018 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: APZtwD2Bcv5UKWiy+yzw4bv0kRjpA5GdOg+OJa0LaTO2r6FfD14xDNeYJxFUuuQsc4nuEGIVGEoTCrZk/lvToALIxkYZYCYy4gQLOQgyDMw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4371 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-13_13,2023-03-13_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303140037 X-Proofpoint-GUID: i0ZJMW3VdCrxdhjdeQb5nueHb9tzhUu- X-Proofpoint-ORIG-GUID: i0ZJMW3VdCrxdhjdeQb5nueHb9tzhUu- Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Export the meta uuid to userspace so that we can restore the original uuid after it has been changed. Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_fs.h | 3 ++- fs/xfs/libxfs/xfs_sb.c | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/fs/xfs/libxfs/xfs_fs.h b/fs/xfs/libxfs/xfs_fs.h index a350966cce99..d88adaf9369f 100644 --- a/fs/xfs/libxfs/xfs_fs.h +++ b/fs/xfs/libxfs/xfs_fs.h @@ -186,7 +186,8 @@ struct xfs_fsop_geom { __u32 logsunit; /* log stripe unit, bytes */ uint32_t sick; /* o: unhealthy fs & rt metadata */ uint32_t checked; /* o: checked fs & rt metadata */ - __u64 reserved[17]; /* reserved space */ + unsigned char metauuid[16]; /* metadata id of the filesystem*/ + __u64 reserved[15]; /* reserved space */ }; #define XFS_FSOP_GEOM_SICK_COUNTERS (1 << 0) /* summary counters */ diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c index 99cc03a298e2..4c24f3314122 100644 --- a/fs/xfs/libxfs/xfs_sb.c +++ b/fs/xfs/libxfs/xfs_sb.c @@ -1213,6 +1213,11 @@ xfs_fs_geometry( return; geo->version = XFS_FSOP_GEOM_VERSION_V5; + + if (xfs_has_metauuid(mp)) { + BUILD_BUG_ON(sizeof(geo->metauuid) != sizeof(sbp->sb_meta_uuid)); + memcpy(geo->metauuid, &sbp->sb_meta_uuid, sizeof(sbp->sb_meta_uuid)); + } } /* Read a secondary superblock. */