Thread (6 messages) 6 messages, 4 authors, 2021-09-20

Re: [syzbot] WARNING in __init_work

From: "Paul E. McKenney" <paulmck@kernel.org>
Date: 2021-09-20 12:54:34
Also in: linux-fsdevel, linux-mm, lkml

On Mon, Sep 20, 2021 at 02:45:57PM +0200, Christoph Hellwig wrote:
On Mon, Sep 20, 2021 at 05:38:59AM -0700, Paul E. McKenney wrote:
quoted
quoted
Well, the block code already does a bdi_unregister in del_gendisk.
So if we end up freeing the whole device bdev with a registered bdi
something is badly going wrong.  Unfortunately the log in this report
isn't much help on how we got there.  IIRC syzbot will eventually spew
out a reproducer, so it might be worth to wait for that.
If it does turn out that you need to block in an RCU callback,
queue_rcu_work() can be helpful.  This schedules a workqueue from the RCU
callback, allowing the function passed to the preceding INIT_RCU_WORK()
to block.
In this case we really should not block here.  The problem is that
we are hitting the strange bdi auto-unregister misfeature due to a bug
elsewhere.  Which reminds that I have a patch series to remove this
auto unregistration which I need to bring bag once this is fixed.

That being said queue_rcu_work would have been really useful in a few
places I touched in that past.
Glad it helped elsewhere and apologies for the noise here!

							Thanx, Paul
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help