[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHk-=wgO9kMbiKLcD3fY0Yt5PJSPD=9NVH0cs=xQFSk8dU9Z1Q@mail.gmail.com>
Date: Tue, 10 Sep 2024 11:30:02 -0700
From: Linus Torvalds <torvalds@...uxfoundation.org>
To: Jesper Dangaard Brouer <hawk@...nel.org>
Cc: Damien Le Moal <dlemoal@...nel.org>, LKML <linux-kernel@...r.kernel.org>,
Christoph Hellwig <hch@...radead.org>, Netdev <netdev@...r.kernel.org>, Jens Axboe <axboe@...nel.dk>,
linux-ide@...r.kernel.org, cassel@...nel.org, handan.babu@...cle.com,
djwong@...nel.org, Linux-XFS <linux-xfs@...r.kernel.org>, hdegoede@...hat.com,
"David S. Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>,
kernel-team <kernel-team@...udflare.com>
Subject: Re: Regression v6.11 booting cannot mount harddisks (xfs)
On Tue, 10 Sept 2024 at 10:53, Jesper Dangaard Brouer <hawk@...nel.org> wrote:
>
> af2814149883e2c1851866ea2afcd8eadc040f79 is the first bad commit
Just for fun - can you test moving the queue freezing *inside* the
mutex, ie something like
--- a/block/blk-sysfs.c
+++ b/block/blk-sysfs.c
@@ -670,11 +670,11 @@ queue_attr_store(struct kobject *kobj, struct
attribute *attr,
if (!entry->store)
return -EIO;
- blk_mq_freeze_queue(q);
mutex_lock(&q->sysfs_lock);
+ blk_mq_freeze_queue(q);
res = entry->store(disk, page, length);
- mutex_unlock(&q->sysfs_lock);
blk_mq_unfreeze_queue(q);
+ mutex_unlock(&q->sysfs_lock);
return res;
}
(Just do it by hand, my patch is whitespace-damaged on purpose -
untested and not well thought through).
Because I'm wondering whether maybe some IO is done under the
sysfs_lock, and then you might have a deadlock?
Linus
Powered by blists - more mailing lists