From patchwork Fri Aug 25 13:54:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hao Xu X-Patchwork-Id: 13365810 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 74325C71133 for ; Fri, 25 Aug 2023 14:00:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 13B872800CB; Fri, 25 Aug 2023 10:00:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0EB088E0019; Fri, 25 Aug 2023 10:00:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EF5222800CB; Fri, 25 Aug 2023 10:00:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id DC47B8E0019 for ; Fri, 25 Aug 2023 10:00:42 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id B7019806A2 for ; Fri, 25 Aug 2023 14:00:42 +0000 (UTC) X-FDA: 81162787524.02.01F20C8 Received: from out-248.mta1.migadu.com (out-248.mta1.migadu.com [95.215.58.248]) by imf24.hostedemail.com (Postfix) with ESMTP id B7B3B18001F for ; Fri, 25 Aug 2023 14:00:40 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=pz2+RJXn; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf24.hostedemail.com: domain of hao.xu@linux.dev designates 95.215.58.248 as permitted sender) smtp.mailfrom=hao.xu@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692972040; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=A8n142m+ckTq2ok9t7Tm2FnSZDGwRTGaDgQRQd0QVrs=; b=Yuv8ADsiY6xuzBTwr8aWbKSMLJm8gXVFQjNRmnGp6XvvKEcrcGNGrNpkta9gCaSl+Y2K0k XdFjsJPlvQOy5W64ciDomqoey2WLRyu/4SEjuurDF1WVaSkTQkuviSpxMcXbfcvuMJxOdd Pt/RTARGlzZQ0fm36QyhVIL85zdCVOk= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=pz2+RJXn; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf24.hostedemail.com: domain of hao.xu@linux.dev designates 95.215.58.248 as permitted sender) smtp.mailfrom=hao.xu@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692972040; a=rsa-sha256; cv=none; b=tlysBA+Vz5rz+cYmg04Q7RkUH6r8gtWEcGXSU2B4wB9I3eKkdWSj9XHRh/RAF+4fi5Url5 4wVfu3j9Cz10690vnyzmwiZA+INq8IXc4hdYW64buqwEE38EgPTCoeOpsyulMyp0ya+wfi wuMuIRJjQx6BVdXa0xwGoltcvcMhyXA= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1692972039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A8n142m+ckTq2ok9t7Tm2FnSZDGwRTGaDgQRQd0QVrs=; b=pz2+RJXny/FRc9X5ZHvo0v2sP0AhNIbG6GqEDC3f4IgSNhM3HBNVDwOESMUSOR4IEMUxcQ QeB+zNMG6saCP+3Ee3iNvTaLm94PmwVrh29h0zPxcQxdxo6uNrunXvw2MGBXff+gKAxGGD nCmOsY1G1aaOlGneScmRPtSGG9/rCYg= From: Hao Xu To: io-uring@vger.kernel.org, Jens Axboe Cc: Dominique Martinet , Pavel Begunkov , Christian Brauner , Alexander Viro , Stefan Roesch , Clay Harris , Dave Chinner , "Darrick J . Wong" , linux-fsdevel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-ext4@vger.kernel.org, linux-cachefs@redhat.com, ecryptfs@vger.kernel.org, linux-nfs@vger.kernel.org, linux-unionfs@vger.kernel.org, bpf@vger.kernel.org, netdev@vger.kernel.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, linux-btrfs@vger.kernel.org, codalist@coda.cs.cmu.edu, linux-f2fs-devel@lists.sourceforge.net, cluster-devel@redhat.com, linux-mm@kvack.org, linux-nilfs@vger.kernel.org, devel@lists.orangefs.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-mtd@lists.infradead.org, Wanpeng Li Subject: [PATCH 12/29] xfs: enforce GFP_NOIO implicitly during nowait time update Date: Fri, 25 Aug 2023 21:54:14 +0800 Message-Id: <20230825135431.1317785-13-hao.xu@linux.dev> In-Reply-To: <20230825135431.1317785-1-hao.xu@linux.dev> References: <20230825135431.1317785-1-hao.xu@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Rspam-User: X-Stat-Signature: mp9gib8kwzfnq5cn5ubuhtsxbsubbsdi X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: B7B3B18001F X-HE-Tag: 1692972040-63998 X-HE-Meta: U2FsdGVkX19nA8xEZ0kPE5pdXPIPxMSP0gVJ3ehBFtRzc2cKYVkha8/BEwS5oEWM2i/CreF/mE/iRVPseE1yyN5MqsF6ePdSt6EDzqD1bIT3QYeqgeTld8PELgOfb6MHMNn3vtMlVeF8lYtVTyQahn0lHKfnqF2cSmD/jKPC6SicC8ORN+WsLrtl54jdYxYQXJgFgPw4BTapzVgh4/q3P702TII+dQA8OD5KO5hGQzlgXgacaPNXxW6wTdIlZhiEMkrUogCyzmXALNJNshAtbaf7qWxkcONT45S9N4YBh6rJ6V3hN2fPAjBkarmU8hTN0rzjt+dA5y5dl3X3K5EeswX6FtmGW1ylrs1esUzMdz6AFQjjhdtJ7yRfOq9H1MB63vyIH6wKHBb0fPavb2K5RNCr6AaLCKGcmTrwEwlQuzQ/bO1w3eIYm8giMcdHDMdQ3E0dhptDlJ2Ngkgq5hSL6WxbX1K8twf/toQ46i/P03IkzSgWmKbXpX4MB/FWBBRV8NYsq75NAkXc77syPAtBUB/fNI6+x+ysCZIIwK/hLbni3cezcqFl8IPlDhxC49WYIGb5UmFEOxodIk0/I9s7VP+S7VNdl5Yy/xVXRUMcQe6ZZGHhqNCJVuDYc8erUAKFliqfH4holi4LBvd2gCm+W8ptNNhGoN7UuTZXigpbrTvKl7FdohG7omU+NeaLf+wnfTVBQkXOYa2MLFOm3Agi7s78+WyGVmy01T8oPnkcdjCIYawoGRZaGxJLGa92xv9FZKM07b0HpLms7tMFMeVnVODbAZp+qiIRHyuOgtkmXA4AWSCA96dzFlTwQiermfU37Z8mHvqPkBI7sYiVsaw1lO7Y5AriDrj95EYlhc5clb7gOvIJMXnj+IB4b2m8hI9RQokEI7gCsc6V+JhBAraUzqMvWFmcUHAQLOAJ2qBwgQ1hT1agur9qBfD2zankMjB/HJ5Nklk6XCJAxE6H/uz q7kljTYZ egDYUcQA4GfD7MRV2bWY6o927fkB8Sy67LJgu5e7Lqh9dWxiWhg1qfwtvkLz5cFPWuTqIT1x4lJouF0h1ZTQFx3fOxXBmHQo0AvhSa8PA3rnobV+VRsnFGrzfkBPftrsVrGrFw5Ik3M8vXdA6/27/ftHFElQAH+49JUPihEM9+4+oi8aZX24/HAHABEROP2Qo+EMulbG0dMHBYapgf1acA0Qfplm8+7TXB0ibAWKfTa7w132gBz/S7G2T2fTyebjcR3KU 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: From: Hao Xu Enforce GFP_NOIO logic implicitly by set pflags if we are in nowait time update process. Nowait semantics means no waiting for IO, therefore GFP_NOIO is needed. Signed-off-by: Hao Xu --- fs/xfs/xfs_iops.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index bf1d4c31f009..5fa391083de9 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c @@ -1037,6 +1037,8 @@ xfs_vn_update_time( int log_flags = XFS_ILOG_TIMESTAMP; struct xfs_trans *tp; int error; + int old_pflags; + bool nowait = flags & S_NOWAIT; trace_xfs_update_time(ip); @@ -1049,13 +1051,18 @@ xfs_vn_update_time( log_flags |= XFS_ILOG_CORE; } + if (nowait) + old_pflags = memalloc_noio_save(); + error = xfs_trans_alloc(mp, &M_RES(mp)->tr_fsyncts, 0, 0, 0, &tp); if (error) - return error; + goto out; - if (flags & S_NOWAIT) { - if (!xfs_ilock_nowait(ip, XFS_ILOCK_EXCL)) - return -EAGAIN; + if (nowait) { + if (!xfs_ilock_nowait(ip, XFS_ILOCK_EXCL)) { + error = -EAGAIN; + goto out; + } } else { xfs_ilock(ip, XFS_ILOCK_EXCL); } @@ -1069,7 +1076,12 @@ xfs_vn_update_time( xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); xfs_trans_log_inode(tp, ip, log_flags); - return xfs_trans_commit(tp); + error = xfs_trans_commit(tp); + +out: + if (nowait) + memalloc_noio_restore(old_pflags); + return error; } STATIC int