linux_dsm_epyc7002/drivers/md
Christoph Hellwig c2b4bb8cb3 block: fix locking for struct block_device size updates
Two different callers use two different mutexes for updating the
block device size, which obviously doesn't help to actually protect
against concurrent updates from the different callers.  In addition
one of the locks, bd_mutex is rather prone to deadlocks with other
parts of the block stack that use it for high level synchronization.

Switch to using a new spinlock protecting just the size updates, as
that is all we need, and make sure everyone does the update through
the proper helper.

This fixes a bug reported with the nvme revalidating disks during a
hot removal operation, which can currently deadlock on bd_mutex.

Reported-by: Xianting Tian <xianting_tian@126.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2020-09-01 16:49:25 -06:00
..
bcache treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
persistent-data treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
dm-bio-prison-v1.c
dm-bio-prison-v1.h
dm-bio-prison-v2.c
dm-bio-prison-v2.h
dm-bio-record.h
dm-bufio.c dm bufio: do buffer cleanup from a workqueue 2020-07-20 11:17:43 -04:00
dm-builtin.c
dm-cache-background-tracker.c
dm-cache-background-tracker.h
dm-cache-block-types.h
dm-cache-metadata.c
dm-cache-metadata.h
dm-cache-policy-internal.h
dm-cache-policy-smq.c
dm-cache-policy.c
dm-cache-policy.h
dm-cache-target.c writeback: remove bdi->congested_fn 2020-07-08 17:20:46 -06:00
dm-clone-metadata.c
dm-clone-metadata.h
dm-clone-target.c writeback: remove bdi->congested_fn 2020-07-08 17:20:46 -06:00
dm-core.h
dm-crypt.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
dm-delay.c block: rename generic_make_request to submit_bio_noacct 2020-07-01 07:27:24 -06:00
dm-dust.c dm dust: add interface to list all badblocks 2020-07-20 11:17:41 -04:00
dm-ebs-target.c dm ebs: Fix incorrect checking for REQ_OP_FLUSH 2020-08-04 16:01:40 -04:00
dm-era-target.c writeback: remove bdi->congested_fn 2020-07-08 17:20:46 -06:00
dm-exception-store.c
dm-exception-store.h
dm-flakey.c
dm-historical-service-time.c dm mpath: add Historical Service Time Path Selector 2020-05-15 10:29:36 -04:00
dm-init.c dm init: Set file local variable static 2020-08-04 15:51:28 -04:00
dm-integrity.c mm, treewide: rename kzfree() to kfree_sensitive() 2020-08-07 11:33:22 -07:00
dm-io.c treewide: Remove uninitialized_var() usage 2020-07-16 12:35:15 -07:00
dm-ioctl.c - DM multipath locking fixes around m->flags tests and improvements to 2020-08-07 13:08:09 -07:00
dm-kcopyd.c
dm-linear.c
dm-log-userspace-base.c
dm-log-userspace-transfer.c
dm-log-userspace-transfer.h
dm-log-writes.c dm: replace zero-length array with flexible-array 2020-05-20 17:09:44 -04:00
dm-log.c
dm-mpath.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
dm-mpath.h
dm-path-selector.c
dm-path-selector.h dm mpath: pass IO start time to path selector 2020-05-15 10:29:36 -04:00
dm-queue-length.c dm mpath: pass IO start time to path selector 2020-05-15 10:29:36 -04:00
dm-raid1.c block: rename generic_make_request to submit_bio_noacct 2020-07-01 07:27:24 -06:00
dm-raid.c - DM multipath locking fixes around m->flags tests and improvements to 2020-08-07 13:08:09 -07:00
dm-region-hash.c
dm-round-robin.c
dm-rq.c - DM multipath locking fixes around m->flags tests and improvements to 2020-08-07 13:08:09 -07:00
dm-rq.h
dm-service-time.c dm mpath: pass IO start time to path selector 2020-05-15 10:29:36 -04:00
dm-snap-persistent.c Remove uninitialized_var() macro for v5.9-rc1 2020-08-04 13:49:43 -07:00
dm-snap-transient.c
dm-snap.c block: rename generic_make_request to submit_bio_noacct 2020-07-01 07:27:24 -06:00
dm-stats.c dm: replace zero-length array with flexible-array 2020-05-20 17:09:44 -04:00
dm-stats.h
dm-stripe.c dm: replace zero-length array with flexible-array 2020-05-20 17:09:44 -04:00
dm-switch.c dm: replace zero-length array with flexible-array 2020-05-20 17:09:44 -04:00
dm-sysfs.c
dm-table.c for-5.9/block-merge-20200804 2020-08-05 11:12:34 -07:00
dm-target.c
dm-thin-metadata.c
dm-thin-metadata.h
dm-thin.c writeback: remove bdi->congested_fn 2020-07-08 17:20:46 -06:00
dm-uevent.c
dm-uevent.h
dm-unstripe.c
dm-verity-fec.c dm verity fec: fix hash block number in verity_fec_decode 2020-04-16 16:16:38 -04:00
dm-verity-fec.h
dm-verity-target.c - DM multipath locking fixes around m->flags tests and improvements to 2020-08-07 13:08:09 -07:00
dm-verity-verify-sig.c
dm-verity-verify-sig.h dm verity: Fix compilation warning 2020-08-04 15:48:13 -04:00
dm-verity.h dm verity: add "panic_on_corruption" error handling mode 2020-07-13 11:47:33 -04:00
dm-writecache.c powerpc updates for 5.9 2020-08-07 10:33:50 -07:00
dm-zero.c
dm-zoned-metadata.c dm zoned: Fix zone reclaim trigger 2020-07-08 12:21:53 -04:00
dm-zoned-reclaim.c dm zoned: Fix zone reclaim trigger 2020-07-08 12:21:53 -04:00
dm-zoned-target.c for-5.9/block-20200802 2020-08-03 11:57:03 -07:00
dm-zoned.h dm zoned: select reclaim zone based on device index 2020-06-05 14:59:53 -04:00
dm.c block: fix locking for struct block_device size updates 2020-09-01 16:49:25 -06:00
dm.h writeback: remove bdi->congested_fn 2020-07-08 17:20:46 -06:00
Kconfig Replace HTTP links with HTTPS ones: LVM 2020-07-05 14:28:27 -06:00
Makefile md: move the early init autodetect code to drivers/md/ 2020-07-16 15:34:47 +02:00
md-autodetect.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
md-bitmap.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
md-bitmap.h
md-cluster.c md-cluster: Fix potential error pointer dereference in resize_bitmaps() 2020-08-05 17:07:48 -07:00
md-cluster.h
md-faulty.c block: rename generic_make_request to submit_bio_noacct 2020-07-01 07:27:24 -06:00
md-linear.c writeback: remove bdi->congested_fn 2020-07-08 17:20:46 -06:00
md-linear.h md/raid1: Replace zero-length array with flexible-array 2020-05-13 12:02:23 -07:00
md-multipath.c writeback: remove bdi->congested_fn 2020-07-08 17:20:46 -06:00
md-multipath.h
md.c block-5.9-2020-08-14 2020-08-15 20:36:42 -07:00
md.h Merge branch 'hch.init_path' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-08-07 09:40:34 -07:00
raid0.c writeback: remove bdi->congested_fn 2020-07-08 17:20:46 -06:00
raid0.h
raid1-10.c
raid1.c writeback: remove bdi->congested_fn 2020-07-08 17:20:46 -06:00
raid1.h md/raid1: Replace zero-length array with flexible-array 2020-05-13 12:02:23 -07:00
raid5-cache.c raid5-cache: hold spinlock instead of mutex in r5c_journal_mode_show 2020-08-02 23:03:52 -07:00
raid5-log.h
raid5-ppl.c md/raid456: convert macro STRIPE_* to RAID5_STRIPE_* 2020-07-21 17:18:12 -07:00
raid5.c block-5.9-2020-08-28 2020-08-28 16:38:29 -07:00
raid5.h A set of locking fixes and updates: 2020-08-10 19:07:44 -07:00
raid10.c for-5.9/drivers-20200803 2020-08-05 10:51:40 -07:00
raid10.h md/raid1: Replace zero-length array with flexible-array 2020-05-13 12:02:23 -07:00