[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200821085600.2395666-1-hch@lst.de>
Date: Fri, 21 Aug 2020 10:55:58 +0200
From: Christoph Hellwig <hch@....de>
To: Jens Axboe <axboe@...nel.dk>
Cc: Justin Sanders <justin@...aid.com>,
Josef Bacik <josef@...icpanda.com>,
Xianting Tian <xianting_tian@....com>,
linux-block@...r.kernel.org, dm-devel@...hat.com,
Stefan Haberland <sth@...ux.ibm.com>,
Jan Hoeppner <hoeppner@...ux.ibm.com>,
linux-kernel@...r.kernel.org, nbd@...er.debian.org,
linux-nvme@...ts.infradead.org, linux-s390@...r.kernel.org
Subject: fix block device size update serialization
Hi Jens,
this series fixes how we update i_size for the block device inodes (and
thus the block device). Different helpers use two different locks
(bd_mutex and i_rwsem) to protect the update, and it appears device
mapper uses yet another internal lock. A lot of the drivers do the
update handcrafted in often crufty ways. And in addition to that mess
it turns out that the "main" lock, bd_mutex is pretty dead lock prone
vs other spots in the block layer that acquire it during revalidation
operations, as reported by Xianting.
Fix all that by adding a dedicated spinlock just for the size updates.
Powered by blists - more mailing lists