From mboxrd@z Thu Jan 1 00:00:00 1970 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D1A20C02180 for ; Mon, 13 Jan 2025 23:42:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 52F116B0085; Mon, 13 Jan 2025 18:42:56 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4DEBA6B0089; Mon, 13 Jan 2025 18:42:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 357EB6B008A; Mon, 13 Jan 2025 18:42:56 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 175606B0085 for ; Mon, 13 Jan 2025 18:42:56 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 9A0251A0497 for ; Mon, 13 Jan 2025 23:42:55 +0000 (UTC) X-FDA: 83004056310.13.DE8FF3B Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) by imf22.hostedemail.com (Postfix) with ESMTP id E5190C0012 for ; Mon, 13 Jan 2025 23:42:51 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=R0Oj3lSd; spf=pass (imf22.hostedemail.com: domain of dan.j.williams@intel.com designates 192.198.163.10 as permitted sender) smtp.mailfrom=dan.j.williams@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736811772; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=SJt70HYLmkyoPm8Mjsft1q2AwGWloV7NENJoQQTLMkE=; b=eTKw52iSlbWe8M+EdclR0xzciULYX7ih3T0784q4xHYiQbdUy58ssoZKZ5xmc8yFrt40A5 DKsNRMraZ5+xqhBaze8pin8f4Xij2AR7i90D9Uh6G8VbVB2jCClqtVoBkVLIamnfBwtPOF KDs1fVYBuHPFWDVVin76k8tnhEieW7E= ARC-Authentication-Results: i=2; imf22.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=R0Oj3lSd; spf=pass (imf22.hostedemail.com: domain of dan.j.williams@intel.com designates 192.198.163.10 as permitted sender) smtp.mailfrom=dan.j.williams@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1736811772; a=rsa-sha256; cv=fail; b=bIDC7iBgdu5A9ubU3I2MYOc4h9nvK2bnLKHhTXvuszw1VcqtfaBDrFD2cfuFx2qokgud0N BViG+NTwXsCdZTOXIyP0ESUIeEA/rDyei+4WDNEu7bloKg/Jx1x+VddnIYfNa1aejQglLg Wz+1bQOjrCO0XsHIEoNLaSjoDtSBhhA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1736811772; x=1768347772; h=date:from:to:cc:subject:message-id:references: in-reply-to:mime-version; bh=6U2Kiz8UDreRWjlsqRKEwKL9eXTDkcXzIaetCpXU5pg=; b=R0Oj3lSd3W7yYJ0QFe/WZlw6XJCPo9M5/QBaDIC7RDft4harU2kEUBdP njiduWHx9uOzWuzUiHDN9lt38JYAJVK9MsPg8ROg/6gVtVhEXDSB5qSkc 9tmhFD2uKK3+2n+MWBHezO3mBXwyDDw59V2seNnlVRS6IeMsoWVjt/6MV c9g1Vi968cS896pVBa4RqEF5wh2Yn43SzqvW2y7DeTqtfJ9KUHpb9CDpi +eIg09zEwTpB0UTG3Wp6ZwbBvYze6lGFaYi37Iqs5b0TFnzE7Byt/m/q5 qkO2trq/Ef4iAr6LF3EXTCo2rs4zJtxgiYOGnI66W+D9fG2A7kjAuG92n w==; X-CSE-ConnectionGUID: QkyHubUmSoKt/9E/bfg9ew== X-CSE-MsgGUID: xONoRWDkTbq2EhEVJpmxRA== X-IronPort-AV: E=McAfee;i="6700,10204,11314"; a="48506337" X-IronPort-AV: E=Sophos;i="6.12,310,1728975600"; d="scan'208";a="48506337" Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jan 2025 15:42:50 -0800 X-CSE-ConnectionGUID: 7Kay4xcESxWbGbTdxhr9HA== X-CSE-MsgGUID: KTNrm/tTTtSgJXM4aSquNQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,312,1728975600"; d="scan'208";a="105195891" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmviesa009.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 13 Jan 2025 15:42:49 -0800 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.44; Mon, 13 Jan 2025 15:42:48 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.44 via Frontend Transport; Mon, 13 Jan 2025 15:42:48 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.43) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.44; Mon, 13 Jan 2025 15:42:47 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pRD/JOJK7VpJa60Fwq8YFG7DDWrHenXcfS0sIpKYqCDm9+fghSTgW6DkqqeMi6cpHlOsD2oWkmhv6a9we93icGCak8frUaaRyO2GHenKNfYQ1pat8IQE0PSker8TZdTpz577eAKNeuXM7vJa/yaIdVYogegqjNG3K4l81oTGHtboS9O37vQ6MzPmBVHh1HJk97WfsFQJZZREU3zGHZ60YRjYamHehr3rrQ30fRFv9pLGFhUa0oBMGS/MMbImxDVbMzuhrfQM0jJAFmFqVBPS2+6r7UDCHTzIph4IzKlFOJG6ges1v4GUH7hpbnS2gZ1Q+PyMoAJI1w1/64wriD47GA== 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=SJt70HYLmkyoPm8Mjsft1q2AwGWloV7NENJoQQTLMkE=; b=xzctCQ3eCINXjR7gi35em0eNeJX4J3yytwFeGykIaCSHegN+HEw2yqeVZgbBrZmR+ZtrX/iAT0APHpG7a6/kXBVePDp9Pr3WvQPBP/BxaNp5sRPSxWVjk7uO794hg32z98HDUFOz0eLFOv5fq8m9jKoONNG8UdGFBZWZwPlpZkb0xtMYKiswMPbMb0OKp8N3xD3Ss1K51UAPpHxfVP1M4s98jO6K2LgVUOVoK4v82mW39yRATXYRjPo4reUlt2aCinMHqg1vckKQ+vZcZa0ee9R/3LnxAAhgiJ3iHiah27RX7Byw3r+KcHZHKbcsuK9bFc21jXlFm/PKRMAS2U0ZAA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH8PR11MB8107.namprd11.prod.outlook.com (2603:10b6:510:256::6) by PH7PR11MB5982.namprd11.prod.outlook.com (2603:10b6:510:1e1::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8335.18; Mon, 13 Jan 2025 23:42:44 +0000 Received: from PH8PR11MB8107.namprd11.prod.outlook.com ([fe80::6b05:74cf:a304:ecd8]) by PH8PR11MB8107.namprd11.prod.outlook.com ([fe80::6b05:74cf:a304:ecd8%5]) with mapi id 15.20.8335.011; Mon, 13 Jan 2025 23:42:44 +0000 Date: Mon, 13 Jan 2025 15:42:39 -0800 From: Dan Williams To: Alistair Popple , , , CC: , Alistair Popple , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: Re: [PATCH v6 07/26] fs/dax: Ensure all pages are idle prior to filesystem unmount Message-ID: <6785a4ef988a9_20fa294d4@dwillia2-xfh.jf.intel.com.notmuch> References: <704662ae360abeb777ed00efc6f8f232a79ae4ff.1736488799.git-series.apopple@nvidia.com> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <704662ae360abeb777ed00efc6f8f232a79ae4ff.1736488799.git-series.apopple@nvidia.com> X-ClientProxiedBy: MW4PR02CA0017.namprd02.prod.outlook.com (2603:10b6:303:16d::24) To PH8PR11MB8107.namprd11.prod.outlook.com (2603:10b6:510:256::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH8PR11MB8107:EE_|PH7PR11MB5982:EE_ X-MS-Office365-Filtering-Correlation-Id: f076b62e-0fd6-49d6-014c-08dd342bfa02 X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?hjsnFPeBDgK3lJDqDJR0rXOSJ6OWH2dMwbVl1M7Jk7fevE6qzIMoZ5GOgwNH?= =?us-ascii?Q?yW6aVlsK1OSg7qQ98xI6Xp2kd4ukRN5t1g5NfuLYfx3wC8Epz/TlXr31ER7O?= =?us-ascii?Q?ToQeQgHGjxMgu4Nr+HiSSNXC1nVU8GlN+15KH7nRcWT/IuA25YBWWx8aaUqy?= =?us-ascii?Q?gk7RWhndufW2Qt9W7gssjn+MTLMu+siJL93R00rpNzVdpDEmlO2MD13iDcV1?= =?us-ascii?Q?s7MGaKiCAtE0RZTreLO2VVFK4N8r9KXXjTSAZtpIIxgGAUEUTLnDCYvFdUbk?= =?us-ascii?Q?1PdRNK6ll6SdoU3KdmGdqe5rCPkA4vEltLs+vQw3XNRNKs1jDpftsz0vmuRY?= =?us-ascii?Q?VCULJ7Uk7x9n0l8XFeqat3VqOkKKqMMsIBTC5nJTbe0nN33qEx2NCevN81yx?= =?us-ascii?Q?iYEw4XIKSic1G1OtPZRaRexSlcKGdkKxeIw6Tr7Olzk1K/SBknEwVnVUAIsh?= =?us-ascii?Q?S8vmljP4B2OmsapwJAPKWU8aiLjE6fKWPmeksw3mUESh6zp0+IoqJJY+44wM?= =?us-ascii?Q?iVm0we5BgC6TK0dP3aVo2U20QZ/te17GnxmqrLIh13A7U8P/YDktQ7MlZvG9?= =?us-ascii?Q?kdh2NZZFPoZe9E2synPPDyUKyb1WGwe68xjXJrxREBdoQ10C7rMrVbokA9SU?= =?us-ascii?Q?UZVi5F47BVtwsTG7uJkjeXSxJHm4URwg0ADY+iUdIYTkoFXkoqeTzUuUv4cT?= =?us-ascii?Q?O6lLpcMhYbKVfTRObzDwtDP7aO7iEDEvp0hd6c/RKYo+ze6bGOrg9sQ8Zejb?= =?us-ascii?Q?L/YI3DBWue8b6u8xXf+WyGSRw7NujyvBNIzJ+NtLOkX5rVojopX0TYwbJiB3?= =?us-ascii?Q?HtfU8iyaQOmn+dVZGWjA+kZX74tEGJNIgiLRl1QbLNokbSh0XtJJPURY8YE1?= =?us-ascii?Q?Kur2ZLghAW9628IMTAW2chKQBL2EBM4VNDOOcO4ZHxFmCMOfCs6GDje+wv+7?= =?us-ascii?Q?lsFc5CkcrL/P2FU715AT7ZGk4U5kTjjEJgEPLIP1L6o6pELj0CNNATs2ZUQf?= =?us-ascii?Q?JJngYvL9IYcIAhZ9X6799AScFmjdt9SAbYlAf+41ycelHDgat1veLfdoDkbc?= =?us-ascii?Q?0urHvKPmW/VaV+Ep8ZSPK9QdDldA5mU4w+PXJ3F9OhM4a+a5znPtfbZ+FEdN?= =?us-ascii?Q?7Mmc3UoU5fRsaWZq/sss0Z4aTFUKeRJgJMNxIgM9deGihhhhQEc8uh1kAPsD?= =?us-ascii?Q?Al/se1tfdrmvlpPUEyy0fcVDkCxsyGJwBdprBSJs3tThDpSVLJU2VmXvBWph?= =?us-ascii?Q?4lObqbjG4T7vvcE1DGlaW+18bsGuZ9QquEvWfXhLBHYGBSqLF9P1P5Ru9hVS?= =?us-ascii?Q?khJjYQPQHY4JnrIWMZvcTSScoc+INpiYvJkvt3teRIJ6xo+DYXHwGTwhEBpq?= =?us-ascii?Q?TRxVGwnb5CqgAHKxyjSFeLfryto7?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR11MB8107.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NaE0GIdJU4HC8JCyt98il/hqiwcY6p7YOrRoXTD9NBDGuRQzY/Thb06J0/wM?= =?us-ascii?Q?s/4va1SteFjyT3fq5rLOsL33WCQdrzMjm+ZALqhHC/PwIq8WiGWn/sliboTG?= =?us-ascii?Q?LY8w/+OAZrd+zTRMf41praitxdBwtqcu7we+ffoQlpZj24HcPLdSAO7y9tbT?= =?us-ascii?Q?3YXxICg/rw3wgpqTtdRbPU4Yp9Yua70qflBt+n/tpSj5yG+4N5xB+zmbiUjG?= =?us-ascii?Q?YZksJf82EfB++ylfWmy66jzqclNIHELLw0zXLjtdxXgiv4eK2aHrXyYMpvCg?= =?us-ascii?Q?KzPqzgdKrEk0WAdo5JzSPszANp/amoJ2Y5gedUUjCEX4Pekagg/eNOm064bd?= =?us-ascii?Q?RWmjuOsN/JqAKEsx7soAMPpewGAnBRrEarS3NY1iwy3/S3GEq5X6h7VaCfCv?= =?us-ascii?Q?ZcO8BZhAVA012nDRePg135WLL0lp0fSBQADkX88W4RIWi+0x9hpbq9HrC88Q?= =?us-ascii?Q?T3EtjA02d33O0ygqWGSpvho9G5r8LRtoohW49rU7e8hPOC7j5bHBvW3la3SC?= =?us-ascii?Q?hH4VyvHgojClePm7sJEzUvrsxyz3vucG3vjdVdnbmg9xPzI/VuPPKfluOP29?= =?us-ascii?Q?iWpY9qSopWvlZPJZRpU5sFuHtx8CyzIrJiEnPfs2mFEoJaKQPdwpxlfToAn7?= =?us-ascii?Q?vEW5fPtrT37WHbNrtTgQ0koRTrq2wEp3AWs1RVjfOXKqIm9fDmzKJjU2x8Oi?= =?us-ascii?Q?/VHwVNY0oe50ckC82fA3ZHpeoNT5uSP1VTehBYCJO97DM4mF6TNzDdoykPn2?= =?us-ascii?Q?XlU1/VnLHssuiVjBovnUxW0OgN9oxbnVEI85xKePYvitqklUQGB8UVTApCdQ?= =?us-ascii?Q?OFxpOnSmo5VJb0qwJUBQ8TTvFflNV4LHRMSt5DpKCMZs5Ns250yCjVAEegPr?= =?us-ascii?Q?tc4a7VbhLVPqGkFVmuNycJRqlNkzximvJgjyTVav26PchIfz8xEKMuV29lcs?= =?us-ascii?Q?KkZqjGOpWUaIk1EjmnBozE3RveV4CY9GylTvI/mlTj8QO4yKek8YO3jN5VIg?= =?us-ascii?Q?KbjA81QX2yw771EV/gCIVfq2k2T5drqM1S0yOmmKKOWEhug9rk9XqsEB5bZ9?= =?us-ascii?Q?RljbskpqKdUNfVi7jqj65u6Qz8aianq0qHjVJks6D3qhFRvJwM1qans8aMaJ?= =?us-ascii?Q?La3ihwDzVRMTVn2ZqrNgAgIaodOA3E5oFCfwaJVagP/FwL7b6amHIohFMlUT?= =?us-ascii?Q?PSLn1KczKM1eTZWfuHyV+iX361W19LzorNw0aErAL/hhFiGSU2V0/CxbCXIg?= =?us-ascii?Q?nMomkGjsuGBPtQa4lkAAXs7xVX38jdq0oTUrhWAVi8H1BKT81fQV+CmR9FlR?= =?us-ascii?Q?yRRbZ8xW8j4oKMTEoT8LhuKGk8kSH8reWfhGtk9E2r3p/zBUN9yAi1SyHf08?= =?us-ascii?Q?RRK+ZtX0hMQk5QNNOkLhTUxKHk8vIVQ3n1y1lFwm7kI/1vjuPHWl+azOcGGr?= =?us-ascii?Q?euauXVgnQCKtYNCpwybhSv9GR1Sy5O6FX2bpw7FAx4TFD5FhaCEfm9377G9N?= =?us-ascii?Q?dt4Dq1E9UBQb/Hk1e8jvmGqHQQt5peZxddhHmw1HCyVdzWKpiQ5arNJeRW25?= =?us-ascii?Q?0EtVen5Scq3H+euNZm6o5RzStM246J5/qCgdPex+a7AGEy8zQsCRW9eAac+J?= =?us-ascii?Q?OA=3D=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: f076b62e-0fd6-49d6-014c-08dd342bfa02 X-MS-Exchange-CrossTenant-AuthSource: PH8PR11MB8107.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2025 23:42:44.0675 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: koOztr/0bQNiw0htfoM1zY0BJiffGhWwFRnCytNewfv4cJMrgijk7YmKbVo4sQ09Vfve/nPTxXfPy8OCQvqXT4U34SVQ25Iu6f7aI07j02A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5982 X-OriginatorOrg: intel.com X-Rspamd-Queue-Id: E5190C0012 X-Rspamd-Server: rspam12 X-Stat-Signature: fw43wg9y3cxidkmdfro883baze7fbagu X-Rspam-User: X-HE-Tag: 1736811771-611759 X-HE-Meta: U2FsdGVkX19YTfcvs4XcB/OpVuDAo3HhznOOWQDoc0wJQR74VHTcxuwd/p2QDBVvCeDt2RLv31TGqRZ4oz+i0eVr6AetYtaYkc/MvLrD2Kxk3psM7iK5RsnnGxOMIwM+dri7zH3YSCd876VrzSczw/Mcjt7OzuBOpf2kpiRzNAspB9hegZeOTAsKw81gP6gV9Ffc6XlhAkM7eYzcjTbet9odaXUTXrbMYG6roAhFeCBjJpQy0Wf9cmrwNoCWELELGM26OW+towLW3xMCQGTgnGD+2zR9wqDnBTUTIY6NZ2unqIJUHwS5ZB2GqpLlx7IYrQMYFQeOK4KFUg1tcZ3zh9gkBCQRwWDn40SLc0tz1gcafCa0mVYbqoF369tdjql/+j6k/tCOKH28S1ljQZCevrh4uHBjWHN4KK3ZpT8ViOKXH3CbvpRbz5PgmyMtBt4W+BxZhIHLr2hXMLjf1oraauEVgnwoOVziZ5kW1tmnfbh9r54MuR7jfZ5iL3xnmmuirExazdRFvecIDFk8+l0ArYap/hh916WQ83uMfGQp+0GqhprobK2evBX7p1EBBB8ZtQUcYG4Apvk6U+PmRyej9PWliKJ69t7Ormf+IZOVmxUuVbW4A1oN6BlRwNzQ98SEbNGcIvLlWU3SDYHcygDUtFKEC7elMsu7j6zd9GuxTIMdh6g/9CPTYsY7s9xT6oriWkV/LS1nNabyLnmjZBqq/LYaLM7Tpx8UtLdDje2uzMEeUHjaaeI/6oddogjNHhtQAxJpIhgeeJujwEWkPZSawH5zG/0peCHCC/O4TAdaVVOMn4cGIMV988oJjvBssn9tmq52C+CJlpxSyZFI0l9rI55VM0HVv33KZzk7mUHlTDvi0S08Li1+xCkVezjOa6CK9oM10/b39x/N0u2+sVZ1PvitH1ePZMA9gfFlP24NnPZTrBy2hhFjleVrX11MDwxy4znEMDL4M6WWT4c9xFW 3pnr9zv3 RRJkmEFiTdDGmuU57jVoAbWQOEB+oUjHwXsdlRHknjo6hovOvqRzPj/U4HBIp48PPW6EHZJ/2xrb24Ibo3x3YQ+T/7RZvU4n7AZw8OHY49yCbssyyiic++g6hYxLb2Tg97ByC6Y8GTtXXJoVaShdZvu7oyiDM9BlGzbVD35YUpIIusjqqnYkKEIoKEbiKl5p8yGn7Gl3GeJww3Otm3ZCsoN77wN7X71iDLWIyVPsXMnXAjtJI5TnJ/KWvszbU5kV+q3SAiwy6o5PTWRpLRTCCxPIfx+ika+8Wp4t/F44pV82tDyvjLcmoYTjByF7EzrKg2lZv99AC3RI62jb3L0PlXz4Js6tCdwlbTTxbNii6C/fj6+pxlM/nXG6uPTPA2/KGJd1EeF4PxXY8G/X4dC5iMjLsnxiY0OG4hrxBdRRf0h0FIRBkVfTOphGxeHWp8aNnmTztKD8foMhZm8Oe+Zagx8QqeDExfYNBmiaEl/dC/Jo+gc8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Alistair Popple wrote: > File systems call dax_break_mapping() prior to reallocating file > system blocks to ensure the page is not undergoing any DMA or other > accesses. Generally this is needed when a file is truncated to ensure > that if a block is reallocated nothing is writing to it. However > filesystems currently don't call this when an FS DAX inode is evicted. > > This can cause problems when the file system is unmounted as a page > can continue to be under going DMA or other remote access after > unmount. This means if the file system is remounted any truncate or > other operation which requires the underlying file system block to be > freed will not wait for the remote access to complete. Therefore a > busy block may be reallocated to a new file leading to corruption. > > Signed-off-by: Alistair Popple > > --- > > Changes for v5: > > - Don't wait for pages to be idle in non-DAX mappings > --- > fs/dax.c | 29 +++++++++++++++++++++++++++++ > fs/ext4/inode.c | 32 ++++++++++++++------------------ > fs/xfs/xfs_inode.c | 9 +++++++++ > fs/xfs/xfs_inode.h | 1 + > fs/xfs/xfs_super.c | 18 ++++++++++++++++++ > include/linux/dax.h | 2 ++ > 6 files changed, 73 insertions(+), 18 deletions(-) > > diff --git a/fs/dax.c b/fs/dax.c > index 7008a73..4e49cc4 100644 > --- a/fs/dax.c > +++ b/fs/dax.c > @@ -883,6 +883,14 @@ static int wait_page_idle(struct page *page, > TASK_INTERRUPTIBLE, 0, 0, cb(inode)); > } > > +static void wait_page_idle_uninterruptible(struct page *page, > + void (cb)(struct inode *), > + struct inode *inode) > +{ > + ___wait_var_event(page, page_ref_count(page) == 1, > + TASK_UNINTERRUPTIBLE, 0, 0, cb(inode)); > +} > + > /* > * Unmaps the inode and waits for any DMA to complete prior to deleting the > * DAX mapping entries for the range. > @@ -911,6 +919,27 @@ int dax_break_mapping(struct inode *inode, loff_t start, loff_t end, > } > EXPORT_SYMBOL_GPL(dax_break_mapping); > > +void dax_break_mapping_uninterruptible(struct inode *inode, > + void (cb)(struct inode *)) > +{ > + struct page *page; > + > + if (!dax_mapping(inode->i_mapping)) > + return; > + > + do { > + page = dax_layout_busy_page_range(inode->i_mapping, 0, > + LLONG_MAX); > + if (!page) > + break; > + > + wait_page_idle_uninterruptible(page, cb, inode); > + } while (true); > + > + dax_delete_mapping_range(inode->i_mapping, 0, LLONG_MAX); > +} > +EXPORT_SYMBOL_GPL(dax_break_mapping_uninterruptible); Riffing off of Darrick's feedback, how about call this dax_break_layout_final()?