[{"id":3675739,"web_url":"http://patchwork.ozlabs.org/comment/3675739/","msgid":"<zyzdcmnkvrqgqzslms4ba3vrnk7gsbry3z2dgkpto3a2vidngx@2i4i36ndeebi>","list_archive_url":null,"date":"2026-04-10T08:52:16","subject":"Re: [PATCH v2] jbd2: fix deadlock in jbd2_journal_cancel_revoke()","submitter":{"id":363,"url":"http://patchwork.ozlabs.org/api/people/363/","name":"Jan Kara","email":"jack@suse.cz"},"content":"On Thu 09-04-26 19:42:03, Zhang Yi wrote:\n> From: Zhang Yi <yi.zhang@huawei.com>\n> \n> Commit f76d4c28a46a (\"fs/jbd2: use sleeping version of\n> __find_get_block()\") changed jbd2_journal_cancel_revoke() to use\n> __find_get_block_nonatomic() which holds the folio lock instead of\n> i_private_lock. This breaks the lock ordering (folio -> buffer) and\n> causes an ABBA deadlock when the filesystem blocksize < pagesize:\n> \n>      T1                                T2\n> ext4_mkdir()\n>  ext4_init_new_dir()\n>   ext4_append()\n>    ext4_getblk()\n>     lock_buffer()    <- A\n>                                    sync_blockdev()\n>                                     blkdev_writepages()\n>                                      writeback_iter()\n>                                       writeback_get_folio()\n>                                        folio_lock()   <- B\n>      ext4_journal_get_create_access()\n>       jbd2_journal_cancel_revoke()\n>        __find_get_block_nonatomic()\n>         folio_lock()  <- B\n>                                      block_write_full_folio()\n>                                       lock_buffer()   <- A\n> \n> This can occasionally cause generic/013 to hang.\n> \n> Fix by only calling __find_get_block_nonatomic() when the passed\n> buffer_head doesn't belong to the bdev, which is the only case that we\n> need to look up its bdev alias. Otherwise, the lookup is redundant since\n> the found buffer_head is equal to the one we passed in.\n> \n> Fixes: f76d4c28a46a (\"fs/jbd2: use sleeping version of __find_get_block()\")\n> Signed-off-by: Zhang Yi <yi.zhang@huawei.com>\n\nIndeed, good catch! Sadly, lockep didn't tell us about this as it tracks\nneither buffer locks nor folio locks... The patch looks good. Feel free to\nadd:\n\nReviewed-by: Jan Kara <jack@suse.cz>\n\n\t\t\t\t\t\t\t\tHonza\n> ---\n> v1->v2:\n>  - Switch to using sb_is_blkdev_sb() to check whether the bh belongs to\n>    the bdev.\n> \n>  fs/jbd2/revoke.c | 8 +++++---\n>  1 file changed, 5 insertions(+), 3 deletions(-)\n> \n> diff --git a/fs/jbd2/revoke.c b/fs/jbd2/revoke.c\n> index 9016ddb82447..e4c2fbd381f1 100644\n> --- a/fs/jbd2/revoke.c\n> +++ b/fs/jbd2/revoke.c\n> @@ -428,6 +428,7 @@ void jbd2_journal_cancel_revoke(handle_t *handle, struct journal_head *jh)\n>  \tjournal_t *journal = handle->h_transaction->t_journal;\n>  \tint need_cancel;\n>  \tstruct buffer_head *bh = jh2bh(jh);\n> +\tstruct address_space *bh_mapping = bh->b_folio->mapping;\n>  \n>  \tjbd2_debug(4, \"journal_head %p, cancelling revoke\\n\", jh);\n>  \n> @@ -464,13 +465,14 @@ void jbd2_journal_cancel_revoke(handle_t *handle, struct journal_head *jh)\n>  \t * buffer_head?  If so, we'd better make sure we clear the\n>  \t * revoked status on any hashed alias too, otherwise the revoke\n>  \t * state machine will get very upset later on. */\n> -\tif (need_cancel) {\n> +\tif (need_cancel && !sb_is_blkdev_sb(bh_mapping->host->i_sb)) {\n>  \t\tstruct buffer_head *bh2;\n> +\n>  \t\tbh2 = __find_get_block_nonatomic(bh->b_bdev, bh->b_blocknr,\n>  \t\t\t\t\t\t bh->b_size);\n>  \t\tif (bh2) {\n> -\t\t\tif (bh2 != bh)\n> -\t\t\t\tclear_buffer_revoked(bh2);\n> +\t\t\tWARN_ON_ONCE(bh2 == bh);\n> +\t\t\tclear_buffer_revoked(bh2);\n>  \t\t\t__brelse(bh2);\n>  \t\t}\n>  \t}\n> -- \n> 2.52.0\n>","headers":{"Return-Path":"\n <SRS0=wdgT=CJ=vger.kernel.org=linux-ext4+bounces-15734-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256\n header.s=susede2_rsa header.b=umvHFZ9d;\n\tdkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=LHBWfGxJ;\n\tdkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz\n header.a=rsa-sha256 header.s=susede2_rsa header.b=1FFuLjaj;\n\tdkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=Naqda7/5;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=wdgt=cj=vger.kernel.org=linux-ext4+bounces-15734-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c0a:e001:db::12fc:5321\"\n arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=none (p=none dis=none) header.from=suse.cz","gandalf.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256\n header.s=susede2_rsa header.b=umvHFZ9d;\n\tdkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=LHBWfGxJ;\n\tdkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz\n header.a=rsa-sha256 header.s=susede2_rsa header.b=1FFuLjaj;\n\tdkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=Naqda7/5;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15734-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz\n header.b=\"umvHFZ9d\";\n\tdkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz\n header.b=\"LHBWfGxJ\";\n\tdkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz\n header.b=\"1FFuLjaj\";\n\tdkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz\n header.b=\"Naqda7/5\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=195.135.223.131","smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=suse.cz","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=suse.cz","smtp-out2.suse.de;\n\tdkim=pass header.d=suse.cz header.s=susede2_rsa header.b=1FFuLjaj;\n\tdkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=\"Naqda7/5\""],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fsVvt6wLWz1yGb\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 18:53:46 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fsVvn3CqGz4wJS\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 18:53:41 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4fsVvn2v3Xz4wSq; Fri, 10 Apr 2026 18:53:41 +1000 (AEST)","from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fsVvk065Fz4wJS\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 10 Apr 2026 18:53:37 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 16A4B3037437\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 10 Apr 2026 08:52:22 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 652133AA4FE;\n\tFri, 10 Apr 2026 08:52:21 +0000 (UTC)","from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id AB8BA3AB290\n\tfor <linux-ext4@vger.kernel.org>; Fri, 10 Apr 2026 08:52:19 +0000 (UTC)","from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org\n [IPv6:2a07:de40:b281:104:10:150:64:97])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby smtp-out2.suse.de (Postfix) with ESMTPS id ACF0C5BCD9;\n\tFri, 10 Apr 2026 08:52:16 +0000 (UTC)","from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 9F0B94A0B2;\n\tFri, 10 Apr 2026 08:52:16 +0000 (UTC)","from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])\n\tby imap1.dmz-prg2.suse.org with ESMTPSA\n\tid 5RrOJkC62GkHGgAAD6G6ig\n\t(envelope-from <jack@suse.cz>); Fri, 10 Apr 2026 08:52:16 +0000","by quack3.suse.cz (Postfix, from userid 1000)\n\tid 5504AA0A81; Fri, 10 Apr 2026 10:52:16 +0200 (CEST)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1775811221; cv=pass;\n\tb=wrNAN70ZWfCwjSD7jAbQDlNTz51Dd3uOV6/uByuMpfjbVb7vyjOGAHFeEeo+AcIlUC9Axb28pqXjoT4SRJmYgIsh6lmco15ZXENPtCotf6f2bxknRIOLWrX0mPc4NyQ+2RzzgcxAVnWrG8bHujBVa/Upxt4/hFdvz+kKb6XqUY6VMkHZMiHl+mskelTKv3mvydBjjZ1MWmoN3s5/ansdwXF4QQKYGO10xVvtfI24RN9xwURP9T3lRiQTlH5f2yW8pwHXjqPzISXljXo/w0602qPoD3gbYuQ/d2fUsdTqKpp3/0TG9PPhepLBOLquNHleH4xVBYJLNUKzXYm6b/lt+g==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775811141; cv=none;\n b=qBnfJRtfbhpz1qf03yqrrBJTTYHeOdw0E/mB7fJBWSeP2XRBk1881Usx70JimKqWeourww5UqSX4kX0T/zWg810Fae7Kqy3NT/R5fkfRsRuQLpTqon/UxWxznKcsvpuLSE/wNzS3LOGoC66GYLi0s7rolpoKXLbLnm/GBj4VpjU="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1775811221; c=relaxed/relaxed;\n\tbh=ZDyO4k9B0CglAcYyPRfUWEeqKYLsjkgP04eByE2FkcA=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=UGD0RW04vyPd/jJyORRa84pHS8HCQGvLG7v6fUudejxjOOhm4pIVoRgIGoz2XX1EylHjoeoO0h5uy8nnRrz+X8erKRhKWyoK0UTCcOqOB2Oj25NmC19CllC5ws1FNplJMKEH0Q480FGWHGPZjGZElLP8ncFm1z2zdVVIz6qTgD8OZwkLGCKPHXDSCquQhAEhHsC48yncbufaZRL86xDTUjPD+48EkxCtuVgVO0ezyCYJuJX4PS+tcmLsNmbLRV5Fo8dsZa6Yg9lLTojd9r1WjOPsz6/4FggK7Z9jphPctvP2SnxMltzDyMdwuer6irxzvCQlDa8MgbPu52z55kDgaQ==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775811141; c=relaxed/simple;\n\tbh=2NF4CMzdVYJS+90CHEA+68ig7xbItwmKkaLQrQS1wX4=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=FxzaHdMlZGA86CLs6SjlvG/PW5YFFB6tiDk2Sa9zwfOaHXIwsaMTxq5C9RTd4vkTZNz1+cX2txDkYvmjAe8AapS4axV6MVJzBC0JLrtoPrvmMvEBsGrHRdxtgfkltBCpMJfNgIfQI80DxCRfTewfmb5/MIvEyyLQ+406e5S5yYU="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=none (p=none dis=none) header.from=suse.cz; dkim=pass (1024-bit key;\n unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256\n header.s=susede2_rsa header.b=umvHFZ9d;\n dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=LHBWfGxJ;\n dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz\n header.a=rsa-sha256 header.s=susede2_rsa header.b=1FFuLjaj;\n dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=Naqda7/5; dkim-atps=neutral;\n spf=pass (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15734-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=suse.cz;\n spf=pass smtp.mailfrom=suse.cz;\n dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz\n header.b=umvHFZ9d;\n dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz\n header.b=LHBWfGxJ;\n dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz\n header.b=1FFuLjaj;\n dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz\n header.b=Naqda7/5; arc=none smtp.client-ip=195.135.223.131"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz;\n s=susede2_rsa;\n\tt=1775811138;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n\t mime-version:mime-version:content-type:content-type:\n\t in-reply-to:in-reply-to:references:references;\n\tbh=ZDyO4k9B0CglAcYyPRfUWEeqKYLsjkgP04eByE2FkcA=;\n\tb=umvHFZ9dbM79L/u1GPpnISgGAua5NIjD7hsJNubBpb1IookyAxuACcikQ5LbIhiCltqKod\n\tstYRQtgfzn0Ogb4UyNtrVLOkPWhk0fq73oMt4QvJZWRdVlhr4740fkl+ZOo8z8uzxOLAOM\n\t+uf0f2jIE4on35RidnnB46jBsF+DccQ=","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;\n\ts=susede2_ed25519; t=1775811138;\n\th=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n\t mime-version:mime-version:content-type:content-type:\n\t in-reply-to:in-reply-to:references:references;\n\tbh=ZDyO4k9B0CglAcYyPRfUWEeqKYLsjkgP04eByE2FkcA=;\n\tb=LHBWfGxJsiDgNRnuZNxod/Mr96o/5slXWuHB4L3JCa70l+pQiRRMOsAZayGjbJ0vqJtK/I\n\tsuFMC7++ESc53GDA==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz;\n s=susede2_rsa;\n\tt=1775811136;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n\t mime-version:mime-version:content-type:content-type:\n\t in-reply-to:in-reply-to:references:references;\n\tbh=ZDyO4k9B0CglAcYyPRfUWEeqKYLsjkgP04eByE2FkcA=;\n\tb=1FFuLjajZeVxCt6zWo8qPGXAEQf9DghIUO8grmrQqAlEYp1O2/JdbB0om0NO3AAmEiVO9t\n\tfXZL2gWXIzDR5x/D69WFqWjRUTMyiKdy5DBtaBeeCZSSznK0DobauDMidN5Sy7Gzgzb49+\n\tCq8JRWiVcT2NdXJtD3aMLfutXH55LY0=","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;\n\ts=susede2_ed25519; t=1775811136;\n\th=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n\t mime-version:mime-version:content-type:content-type:\n\t in-reply-to:in-reply-to:references:references;\n\tbh=ZDyO4k9B0CglAcYyPRfUWEeqKYLsjkgP04eByE2FkcA=;\n\tb=Naqda7/5VfnHTbpWWUa3Ba1WFDXlZN6StPp866IhPGqvP6zg6oLsD3zvB35c9pI9UXDbnS\n\t3tWRPhx7XATN2DAw=="],"Date":"Fri, 10 Apr 2026 10:52:16 +0200","From":"Jan Kara <jack@suse.cz>","To":"Zhang Yi <yi.zhang@huaweicloud.com>","Cc":"linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org, dave@stgolabs.net, tytso@mit.edu,\n adilger.kernel@dilger.ca,\n\tjack@suse.cz, ojaswin@linux.ibm.com, ritesh.list@gmail.com,\n\tlibaokun@linux.alibaba.com, yi.zhang@huawei.com, yizhang089@gmail.com,\n yangerkun@huawei.com,\n\tyukuai@fnnas.com","Subject":"Re: [PATCH v2] jbd2: fix deadlock in jbd2_journal_cancel_revoke()","Message-ID":"<zyzdcmnkvrqgqzslms4ba3vrnk7gsbry3z2dgkpto3a2vidngx@2i4i36ndeebi>","References":"<20260409114204.917154-1-yi.zhang@huaweicloud.com>","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20260409114204.917154-1-yi.zhang@huaweicloud.com>","X-Spamd-Result":"default: False [-2.51 / 50.00];\n\tBAYES_HAM(-3.00)[100.00%];\n\tSUSPICIOUS_RECIPS(1.50)[];\n\tNEURAL_HAM_LONG(-1.00)[-1.000];\n\tMID_RHS_NOT_FQDN(0.50)[];\n\tR_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];\n\tNEURAL_HAM_SHORT(-0.20)[-1.000];\n\tMIME_GOOD(-0.10)[text/plain];\n\tMX_GOOD(-0.01)[];\n\tDKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];\n\tRCVD_COUNT_THREE(0.00)[3];\n\tFUZZY_RATELIMITED(0.00)[rspamd.com];\n\tARC_NA(0.00)[];\n\tRBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];\n\tRCPT_COUNT_TWELVE(0.00)[15];\n\tMIME_TRACE(0.00)[0:+];\n\tRCVD_TLS_LAST(0.00)[];\n\tFREEMAIL_ENVRCPT(0.00)[gmail.com];\n\tTO_DN_SOME(0.00)[];\n\tSPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];\n\tRECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];\n\tFROM_EQ_ENVFROM(0.00)[];\n\tFROM_HAS_DN(0.00)[];\n\tTO_MATCH_ENVRCPT_ALL(0.00)[];\n\tTAGGED_RCPT(0.00)[];\n\tMISSING_XM_UA(0.00)[];\n\tRCVD_VIA_SMTP_AUTH(0.00)[];\n\tFREEMAIL_CC(0.00)[vger.kernel.org,stgolabs.net,mit.edu,dilger.ca,suse.cz,linux.ibm.com,gmail.com,linux.alibaba.com,huawei.com,fnnas.com];\n\tDKIM_TRACE(0.00)[suse.cz:+];\n\tDBL_BLOCKED_OPENRESOLVER(0.00)[suse.cz:dkim,suse.cz:email,huawei.com:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:email]","X-Rspamd-Action":"no action","X-Spam-Score":"-2.51","X-Spam-Level":"","X-Rspamd-Server":"rspamd1.dmz-prg2.suse.org","X-Rspamd-Queue-Id":"ACF0C5BCD9","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_MISSING,\n\tHEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,\n\tSPF_PASS autolearn=disabled version=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"}},{"id":3675955,"web_url":"http://patchwork.ozlabs.org/comment/3675955/","msgid":"<177583430882.2758959.611441015890613081.b4-ty@b4>","list_archive_url":null,"date":"2026-04-10T15:18:43","subject":"Re: [PATCH v2] jbd2: fix deadlock in jbd2_journal_cancel_revoke()","submitter":{"id":350,"url":"http://patchwork.ozlabs.org/api/people/350/","name":"Theodore Ts'o","email":"tytso@mit.edu"},"content":"On Thu, 09 Apr 2026 19:42:03 +0800, Zhang Yi wrote:\n> Commit f76d4c28a46a (\"fs/jbd2: use sleeping version of\n> __find_get_block()\") changed jbd2_journal_cancel_revoke() to use\n> __find_get_block_nonatomic() which holds the folio lock instead of\n> i_private_lock. This breaks the lock ordering (folio -> buffer) and\n> causes an ABBA deadlock when the filesystem blocksize < pagesize:\n> \n>      T1                                T2\n> ext4_mkdir()\n>  ext4_init_new_dir()\n>   ext4_append()\n>    ext4_getblk()\n>     lock_buffer()    <- A\n>                                    sync_blockdev()\n>                                     blkdev_writepages()\n>                                      writeback_iter()\n>                                       writeback_get_folio()\n>                                        folio_lock()   <- B\n>      ext4_journal_get_create_access()\n>       jbd2_journal_cancel_revoke()\n>        __find_get_block_nonatomic()\n>         folio_lock()  <- B\n>                                      block_write_full_folio()\n>                                       lock_buffer()   <- A\n> \n> [...]\n\nApplied, thanks!\n\n[1/1] jbd2: fix deadlock in jbd2_journal_cancel_revoke()\n      commit: 981fcc5674e67158d24d23e841523eccba19d0e7\n\nBest regards,","headers":{"Return-Path":"\n <SRS0=gBsa=CJ=vger.kernel.org=linux-ext4+bounces-15788-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=mit.edu header.i=@mit.edu header.a=rsa-sha256\n header.s=outgoing header.b=fgQfACIM;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=150.107.74.76; helo=mail.ozlabs.org;\n envelope-from=srs0=gbsa=cj=vger.kernel.org=linux-ext4+bounces-15788-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c0a:e001:db::12fc:5321\"\n arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=mit.edu","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=mit.edu header.i=@mit.edu header.a=rsa-sha256\n header.s=outgoing header.b=fgQfACIM;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15788-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=mit.edu header.i=@mit.edu\n header.b=\"fgQfACIM\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=18.9.28.11","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=mit.edu","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=mit.edu"],"Received":["from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fshCF5F4hz1yGS\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 11 Apr 2026 01:52:41 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fshCF468sz4wJT\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 11 Apr 2026 01:52:41 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4fshCF4217z4wTL; Sat, 11 Apr 2026 01:52:41 +1000 (AEST)","from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fshCB1G0Kz4wJT\n\tfor <patchwork-incoming@ozlabs.org>; Sat, 11 Apr 2026 01:52:38 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id E6ABF316DE90\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 10 Apr 2026 15:24:43 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 059C53E4C74;\n\tFri, 10 Apr 2026 15:19:46 +0000 (UTC)","from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 900843DA7FB\n\tfor <linux-ext4@vger.kernel.org>; Fri, 10 Apr 2026 15:19:44 +0000 (UTC)","from trampoline.thunk.org\n (pool-173-48-116-90.bstnma.fios.verizon.net [173.48.116.90])\n\t(authenticated bits=0)\n        (User authenticated as tytso@ATHENA.MIT.EDU)\n\tby outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 63AFIpV0015865\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tFri, 10 Apr 2026 11:18:51 -0400","by trampoline.thunk.org (Postfix, from userid 15806)\n\tid 1707E2E00E4; Fri, 10 Apr 2026 11:18:48 -0400 (EDT)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1775836361; cv=pass;\n\tb=Uec3o74BP/L4he5pnM9DFm9C77Zr9/nvMS30BfChxIVKs+IWETbBIvAvEcNpmEHMr2knK9utZVkAdzPguyhzvN5Xg2a4Np58I48xgiEenqAqWM9Vek8A1JsoASm/gHcz1WUHdEW0DTtNnAi8L9eeTpNx5P/3lBJoMuxNz68+9LwHvcA+47+Fe1WyNgg1M+UQOYSH6u6QkfuvjO2yRQ0zvuyhjWpca41rChr9bKj41t4mt9HdzYUHWPqa2wrULoDc/BiSlV4jLHtnI3JWTZlSuPGVW8X/T7IX+xdLZXYVJWWpQEXrOqj6az7Ks+M1mcTXz1Kh8LtbofugLTEYJdJbIg==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775834385; cv=none;\n b=QCcOU74pEWZrUkDPcwXTp2P7ELIBxII2Lu9mW+V4xS1NEoCiVt6gZksN+TpKzs/fSa3dm5Z2GgHZqpJybM6Ffxo9V20qL0Ud94blb+U+F7aIgqpbjZbGSo9M+eZKDUARp2HcN4HDvFt9kN+VObRyLv9lBJsBppi1hO5+4ErazZs="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1775836361; c=relaxed/relaxed;\n\tbh=KCJyLDlkgxxXOGw52CgIeTXHhpsxVFvdbVlsfGif5ms=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=NDRKGVz0bAA2awouTK4zwsJ1bctpzwVnAEyzdEK5zqiBK2vqcqEBmy6iUA/LeGYDaF4FDejtmuY3Cb1XsGO6OKHvWSgFedG6tRbEJ5ZeCC31FcwEOvzbEy32ZaVUmRkrE2IwWr15ULCdg/ySkV3Kmkp+tdsQdE+J/s36a+Mg5pdO/iA8m8uGYt3IdBX629KfA2xd/m9mmuIvySC41KAgBmvBM/kOXUugV2hOfT0Marr6U2ayC7E5e6ifB1ZF2m8yvcptRuQoiX5H/Bjb2RbDeGpx64cEVYSlxqm9wgQoxgXB5CZ08sRN4bIgsgNrJ5qLG4B+oZNw57+Z8VyYdEUCjQ==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775834385; c=relaxed/simple;\n\tbh=//HP5SJdnHw3p6KsSod76rUki4tafeOBN7PynjPtcWw=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=U6TLGz0nU2+xZs5B/JVIDhFTN3JiPJYfQX197UYj8lvJJG1zjcvHd/WDUbj7l47NMxMOs1EVG97Nu1/8ad3j/E6KnrLUl4QtP23VIfS1hEvIg1v9+YGetXXnazlJoP0so+E4f8V83PHTSxhDj1Q8ZRtS1VOM7t4MptOb3GBYYhk="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=mit.edu; dkim=pass (2048-bit key;\n unprotected) header.d=mit.edu header.i=@mit.edu header.a=rsa-sha256\n header.s=outgoing header.b=fgQfACIM; dkim-atps=neutral;\n spf=pass (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15788-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=mit.edu;\n spf=pass smtp.mailfrom=mit.edu;\n dkim=pass (2048-bit key) header.d=mit.edu header.i=@mit.edu\n header.b=fgQfACIM; arc=none smtp.client-ip=18.9.28.11"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=outgoing;\n\tt=1775834334; bh=KCJyLDlkgxxXOGw52CgIeTXHhpsxVFvdbVlsfGif5ms=;\n\th=From:Subject:Date:Message-ID:MIME-Version:Content-Type;\n\tb=fgQfACIMFlxD6kigpJ4Htj3sKvMMYuCHzi5stsNZk8O6kM++eZledQT6Pk3pDqZDZ\n\t e8zByo2dfvo1DpLs8ocgsK/f460zimIfLxrod59j9qxOK2/jkV2gPMebyE8EIEvCgS\n\t tv4732V7qvsz/+O7GnubM303uJOzWB43qYP4elVmBUwG0JRefQB4SHCcMHiysEAre6\n\t z1DClUz6S5M/zEXsNcpopRJ1nTe1Smt/V91QlGBih5NEVzeWyCYO0fXxR8zJKmvvpA\n\t jlkZeRd+CBU8DXc7hdSRlH+MMmnIEyAYlo5kyPqodJRzqBCnlVHAomR/gqA86q4FRw\n\t Tf5eJ8kAXiUPg==","From":"\"Theodore Ts'o\" <tytso@mit.edu>","To":"linux-ext4@vger.kernel.org, Zhang Yi <yi.zhang@huaweicloud.com>","Cc":"\"Theodore Ts'o\" <tytso@mit.edu>, linux-fsdevel@vger.kernel.org,\n        linux-kernel@vger.kernel.org, dave@stgolabs.net,\n        adilger.kernel@dilger.ca, jack@suse.cz, ojaswin@linux.ibm.com,\n        ritesh.list@gmail.com, libaokun@linux.alibaba.com,\n yi.zhang@huawei.com,\n        yizhang089@gmail.com, yangerkun@huawei.com,\n        yukuai@alb-78bjiv52429oh8qptp.cn-shenzhen.alb.aliyuncs.com","Subject":"Re: [PATCH v2] jbd2: fix deadlock in jbd2_journal_cancel_revoke()","Date":"Fri, 10 Apr 2026 11:18:43 -0400","Message-ID":"<177583430882.2758959.611441015890613081.b4-ty@b4>","X-Mailer":"git-send-email 2.51.0","In-Reply-To":"<20260409114204.917154-1-yi.zhang@huaweicloud.com>","References":"<20260409114204.917154-1-yi.zhang@huaweicloud.com>","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"8bit","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tHEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,\n\tSPF_PASS autolearn=disabled version=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"}}]