1
0
Fork 0
alistair23-linux/block
Jan Kara f44f1ab5a2 block: Unhash block device inodes on gendisk destruction
Currently, block device inodes stay around after corresponding gendisk
hash died until memory reclaim finds them and frees them. Since we will
make block device inode pin the bdi, we want to free the block device
inode as soon as the device goes away so that bdi does not stay around
unnecessarily. Furthermore we need to avoid issues when new device with
the same major,minor pair gets created since reusing the bdi structure
would be rather difficult in this case.

Unhashing block device inode on gendisk destruction nicely deals with
these problems. Once last block device inode reference is dropped (which
may be directly in del_gendisk()), the inode gets evicted. Furthermore if
the major,minor pair gets reallocated, we are guaranteed to get new
block device inode even if old block device inode is not yet evicted and
thus we avoid issues with possible reuse of bdi.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-02-02 08:18:41 -07:00
..
partitions partitions/efi: Fix integer overflow in GPT size calculation 2017-01-17 09:02:31 -07:00
Kconfig block: make scsi_request and scsi ioctl support optional 2017-01-31 10:53:05 -07:00
Kconfig.iosched blk-mq-sched: allow setting of default IO scheduler 2017-01-17 10:04:31 -07:00
Makefile block: make scsi_request and scsi ioctl support optional 2017-01-31 10:53:05 -07:00
badblocks.c badblocks: badblocks_set/clear update unacked_exist 2016-10-21 15:45:47 -06:00
bio-integrity.c block: remove bio_is_rw 2016-10-28 08:45:17 -06:00
bio.c block: fold cmd_type into the REQ_OP_ space 2017-01-31 14:00:44 -07:00
blk-cgroup.c blk-cgroup: don't quiesce the queue on policy activate/deactivate 2017-01-18 15:37:27 -07:00
blk-core.c block: fold cmd_type into the REQ_OP_ space 2017-01-31 14:00:44 -07:00
blk-exec.c block: introduce blk_rq_is_passthrough 2017-01-31 14:00:34 -07:00
blk-flush.c block: fold cmd_type into the REQ_OP_ space 2017-01-31 14:00:44 -07:00
blk-integrity.c block, libnvdimm, nvme: provide a built-in blk_integrity nop profile 2015-10-21 14:43:45 -06:00
blk-ioc.c blk-mq-sched: add framework for MQ capable IO schedulers 2017-01-17 10:04:20 -07:00
blk-lib.c block: don't try to discard from __blkdev_issue_zeroout 2017-01-13 15:18:16 -07:00
blk-map.c block: fold cmd_type into the REQ_OP_ space 2017-01-31 14:00:44 -07:00
blk-merge.c blk-mq-sched: add framework for MQ capable IO schedulers 2017-01-17 10:04:20 -07:00
blk-mq-cpumap.c blk-mq: export blk_mq_map_queues 2016-11-08 17:30:00 -05:00
blk-mq-debugfs.c blk-mq-debug: Introduce debugfs_create_files() 2017-02-01 12:23:00 -07:00
blk-mq-pci.c blk_mq: linux/blk-mq.h does not include all the headers it depends on 2016-09-19 08:21:51 -06:00
blk-mq-sched.c block: cleanup remaining manual checks for PREFLUSH|FUA 2017-01-27 09:08:23 -07:00
blk-mq-sched.h blk-mq-sched: add flush insertion into blk_mq_sched_insert_request() 2017-01-27 09:03:14 -07:00
blk-mq-sysfs.c blk-mq: move hctx and ctx counters from sysfs to debugfs 2017-01-27 08:17:44 -07:00
blk-mq-tag.c blk-mq-sched: add flush insertion into blk_mq_sched_insert_request() 2017-01-27 09:03:14 -07:00
blk-mq-tag.h blk-mq: move tags and sched_tags info from sysfs to debugfs 2017-01-27 08:17:44 -07:00
blk-mq.c block: split scsi_request out of struct request 2017-01-27 15:08:35 -07:00
blk-mq.h blk-mq: fix debugfs compilation issues 2017-01-27 15:03:01 -07:00
blk-settings.c Merge branch 'for-4.10/block' of git://git.kernel.dk/linux-block 2016-12-13 10:19:16 -08:00
blk-softirq.c This adds a new gcc plugin named "latent_entropy". It is designed to 2016-10-15 10:03:15 -07:00
blk-stat.c blk-stat: fix a few cases of missing batch flushing 2016-12-09 13:08:35 -07:00
blk-stat.h block: add scalable completion tracking of requests 2016-11-10 13:53:26 -07:00
blk-sysfs.c block: allow specifying size for extra command data 2017-01-27 15:08:35 -07:00
blk-tag.c blk-mq-sched: add framework for MQ capable IO schedulers 2017-01-17 10:04:20 -07:00
blk-throttle.c blk-throttle: Adjust two function calls together with a variable assignment 2017-01-23 08:32:15 -07:00
blk-timeout.c block: remove REQ_NO_TIMEOUT flag 2015-12-22 09:38:34 -07:00
blk-wbt.c block: Avoid that sparse complains about context imbalance in __wbt_wait() 2017-01-02 09:48:47 -07:00
blk-wbt.h blk-wbt: allow wbt to be enabled always through sysfs 2016-11-28 10:27:03 -07:00
blk-zoned.c block: Rename blk_queue_zone_size and bdev_zone_size 2017-01-12 07:58:32 -07:00
blk.h block: introduce blk_rq_is_passthrough 2017-01-31 14:00:34 -07:00
bounce.c Merge branch 'for-linus' of git://git.kernel.dk/linux-block 2015-09-19 18:57:09 -07:00
bsg-lib.c block: split scsi_request out of struct request 2017-01-27 15:08:35 -07:00
bsg.c block: fold cmd_type into the REQ_OP_ space 2017-01-31 14:00:44 -07:00
cfq-iosched.c cfq-iosched: Adjust one function call together with a variable assignment 2017-01-23 08:32:18 -07:00
cmdline-parser.c block: remove unrelated header files and export symbol 2014-01-21 20:18:26 -08:00
compat_ioctl.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
deadline-iosched.c block: move existing elevator ops to union 2017-01-17 10:03:33 -07:00
elevator.c blk-mq-debug: Avoid that sparse complains about req_flags_t usage 2017-02-01 12:22:23 -07:00
genhd.c block: Unhash block device inodes on gendisk destruction 2017-02-02 08:18:41 -07:00
ioctl.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
ioprio.c block: fix use-after-free in sys_ioprio_get() 2016-07-01 08:39:24 -06:00
mq-deadline.c block: introduce blk_rq_is_passthrough 2017-01-31 14:00:34 -07:00
noop-iosched.c block: move existing elevator ops to union 2017-01-17 10:03:33 -07:00
partition-generic.c block: Rename blk_queue_zone_size and bdev_zone_size 2017-01-12 07:58:32 -07:00
scsi_ioctl.c block: fold cmd_type into the REQ_OP_ space 2017-01-31 14:00:44 -07:00
t10-pi.c block: Consolidate static integrity profile properties 2015-10-21 14:42:38 -06:00