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 859E5EB64DD for ; Mon, 7 Aug 2023 09:34:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 19A1C6B0075; Mon, 7 Aug 2023 05:34:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 14A806B0078; Mon, 7 Aug 2023 05:34:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F2F688D0002; Mon, 7 Aug 2023 05:34:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E1E686B0075 for ; Mon, 7 Aug 2023 05:34:56 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id ADD58A08C9 for ; Mon, 7 Aug 2023 09:34:56 +0000 (UTC) X-FDA: 81096799392.11.7568977 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf05.hostedemail.com (Postfix) with ESMTP id 0FE14100016 for ; Mon, 7 Aug 2023 09:34:54 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=DJugEg3+; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf05.hostedemail.com: domain of brauner@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=brauner@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691400895; a=rsa-sha256; cv=none; b=BxiW0gQeKkH7F1QBrvaS2InKc/ISPrYmdFJYtOZsR6f2efCqTHdTBGi8rIXz+04dfl0iHe yyi8TbfWTsO+McwAFpDvUEy4YhRDxVkph85v9MznFU50YVEY2riZ3eQQhMLAz2KB04gZ66 SRgrioGGlIq8LDfINSxCiIMSJSUHjo8= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=DJugEg3+; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf05.hostedemail.com: domain of brauner@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=brauner@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691400895; 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=dAtfFm0pycrdc8LlYbcAGIP5fKPZ+Rm1IS9+tkiLo+8=; b=hUtt4ab4Q2APd6o1mIwZMbAMUXSGr/u32hpKrm+miUpeLjlCYE/HGOicnkNIlQGHiVrxOS pjBkEYAFhWZrTuU4C1T4xBdbmwKitCCTGlgfHcQr6TzpxQ+hJlpJQqYeGK4gn+zrj4PGtI VD5A+A0Lou1j/cvonh7sckgypyMGxTA= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 3F8E461713; Mon, 7 Aug 2023 09:34:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 05C8DC433C8; Mon, 7 Aug 2023 09:34:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1691400893; bh=3SfiyW6E+RYUHCU/WAvrqX/20S2uFqTMiqg8tb47xOQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=DJugEg3+SRBmJ0PAVl5xYwdDH/bFmaulsaRFnKFZJnh2U9g10XoyDNvlXKjv7e+oN daWuND06FU5GTLrEaRNcW/JQf4c1RcgzkzsiLNgNbuTWzDidz9dVe6P+udI9JRVSHS /m9nde6/S0rMwbuR+6eWHvl2UA7XFewQjFqM4C5EbfZoveYkFhAcFChLY2sp6acvEF fFH2sUJ2IXFsQVyaUzatZyxYZvQp+juuetGIuJ8ykgAjgXSkDiHQqdu+JubhpXBLbF /sYmMRsCPgjq/fg6nAkm/6c46mSWblGX6VaD7Iu2HPre4jLDjAry9DmdkrneBVdr29 /IVQETymEh07Q== Date: Mon, 7 Aug 2023 11:34:49 +0200 From: Christian Brauner To: Jan Kara Cc: Hugh Dickins , Carlos Maiolino , Dan Carpenter , Andrew Morton , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH vfs.tmpfs] shmem: move spinlock into shmem_recalc_inode() to fix quota support Message-ID: <20230807-zuschauen-wachpersonal-6ce2b6002dac@brauner> References: <29f48045-2cb5-7db-ecf1-72462f1bef5@google.com> <20230807092030.krout2mwwa3yesd4@quack3> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20230807092030.krout2mwwa3yesd4@quack3> X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 0FE14100016 X-Stat-Signature: sjb8auxxkta16kjxmxsiaawhbby7pi1c X-HE-Tag: 1691400894-503901 X-HE-Meta: U2FsdGVkX1/zbHqVqPIR4tnoYGcqaeGjKzVNYxZmXrq2VCTc7ThDH1oIG40SoPxMxydkU+L3uIXkCXODY/NUNgykGB+DaW/+gD7AUA2lHOeHdg9rHNmdm4rnQH0y0sV2bxVzB5dQg38QDkwHjuOIt0ZTQan/E8kIYR9+WtwCrdH4cln2q/F0hdDB43Q3qPFse8a48+zh8lVs8umx66QtRHCvsxtidcmjxZJSKgJoMPc/gJkGECARy6vykfd3dlnokllHRVNzaSQIc0WZJZH7hHHpblGtOjNTxXl704mZHkswgyXw6AjYjW4SEUok76CGgkc1C5EhNdO0Y3ktCCi4yl4Cj5SegVs/44fonvUvFsvssy3SoamEt5YIKqetiRMs/3u6j467+BdKnsY9w7tK1JbOMqIjMBLkoMIoLQQp4fLy7DM+vtlNzjR0Czl1r23jqB8Ha/nN4VqxDnZFWSHXEVS3oVPSsTdTP6epc02H17eyD4z47e/pmvzGj/sZxuO6cyV8ofqIh7+Xyzhma1QcQ1qO1ykSHGi6xeVGTy7d7W0ifK8MTGgjIsegYIEwzkx+7FKZKGI3xV24aQGAHob/D2LWME+/AW+S1u1PBuynrYeQTcCdw1P+U/OPp7eywATgM9Tqv8Ncb5GNSBHD4tUJHJvjmeDlZML/tzcE9hZIaRQ1FnqOkzlR9NtzqMXgDxHRvLkE1+QRSiwzjrz4wwFPal3XV7EFOsKCH5DAIZbumrmTO7gQ5mkkxwaFDdi7D0hbTggR9AkarVr/NFZNRHZMEYW14cB00PCDPcemPRED22iO6fSRzTEiGT4NcgRCLr5owoFFvZfZkxzSBMqBs4xxa+jAM2DzrVQ2Go5YL3BICsE7CzZMU7IZurtmLgT6xMraxJXhejtCFgc5OJaZGcLcF3a0VKiu7JwSrcCZf65ooQwfAhT0C7YeVKpTQvQcCskSpmU+lBZLyd6uDW56Y3E VMjwG2jR XsfswWQ/Nkt7LAJY+EDgopNEBX+WAxEZYMUYh2zsQ67JWGT24NllyPN1e528d97xBmYZ8CnyzFydB6/iuRN5V30d/I4CuJokiPsa6dZxpCMIl15FXuHyv6e3AYaoGt9ZTuyO1hTMd9O2c4NZ9zIElQlh+QW9rEhM79QNV8cAfEoQswlJLU/b6hbMCoL0t9MovoPMHILl4Pch31TxvnjdPf0+4rQNkAtzt2yPP58yDLrjVlHaGwIYrvFI2VswjdGiYgqmuFCUrqxzOLb+SshH5A5jUwHrwKIcD0BZHr9M8No2ANbQ89Px3T+xcSfb9wix34J/MWoANnHm3RS3TbtPW0TjERTvEiEElP+Y0ROAzcrV60eyLXA98JIgbbxwIktmDsB6ld+FxwS+KuS/6v6Di+8wfG+keeoVNPyjO3q17+9UPBpopaVnhpI0tibbJM0TINRSRPEGgCEGaHjglaoBR6XUIrx9WlVc+jHYo 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: On Mon, Aug 07, 2023 at 11:20:30AM +0200, Jan Kara wrote: > On Thu 03-08-23 22:46:11, Hugh Dickins wrote: > > Commit "shmem: fix quota lock nesting in huge hole handling" was not so > > good: Smatch caught shmem_recalc_inode()'s shmem_inode_unacct_blocks() > > descending into quota_send_warning(): where blocking GFP_NOFS is used, > > yet shmem_recalc_inode() is called holding the shmem inode's info->lock. > > > > Yes, both __dquot_alloc_space() and __dquot_free_space() are commented > > "This operation can block, but only after everything is updated" - when > > calling flush_warnings() at the end - both its print_warning() and its > > quota_send_warning() may block. > > > > Rework shmem_recalc_inode() to take the shmem inode's info->lock inside, > > and drop it before calling shmem_inode_unacct_blocks(). > > > > And why were the spin_locks disabling interrupts? That was just a relic > > from when shmem_charge() and shmem_uncharge() were called while holding > > i_pages xa_lock: stop disabling interrupts for info->lock now. > > > > To help stop me from making the same mistake again, add a might_sleep() > > into shmem_inode_acct_block() and shmem_inode_unacct_blocks(); and those > > functions have grown, so let the compiler decide whether to inline them. > > > > Reported-by: Dan Carpenter > > Closes: https://lore.kernel.org/linux-fsdevel/ffd7ca34-7f2a-44ee-b05d-b54d920ce076@moroto.mountain/ > > Signed-off-by: Hugh Dickins > > Thanks for the fix Hugh! The patch looks good to me so feel free to add: > > Reviewed-by: Jan Kara Added, thank you!