projects
/
linux-2.6-microblaze.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
2b7a8dc
)
block: grab a device refcount in disk_uevent
author
Christoph Hellwig
<hch@lst.de>
Thu, 1 Jul 2021 08:16:37 +0000
(10:16 +0200)
committer
Jens Axboe
<axboe@kernel.dk>
Thu, 1 Jul 2021 16:21:24 +0000
(10:21 -0600)
Sending uevents requires the struct device to be alive. To
ensure that grab the device refcount instead of just an inode
reference.
Fixes:
bc359d03c7ec
("block: add a disk_uevent helper")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link:
https://lore.kernel.org/r/20210701081638.246552-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/genhd.c
patch
|
blob
|
history
diff --git
a/block/genhd.c
b/block/genhd.c
index
79aa40b
..
af4d2ab
100644
(file)
--- a/
block/genhd.c
+++ b/
block/genhd.c
@@
-365,12
+365,12
@@
void disk_uevent(struct gendisk *disk, enum kobject_action action)
xa_for_each(&disk->part_tbl, idx, part) {
if (bdev_is_partition(part) && !bdev_nr_sectors(part))
continue;
- if (!
bdgrab(part
))
+ if (!
kobject_get_unless_zero(&part->bd_device.kobj
))
continue;
rcu_read_unlock();
kobject_uevent(bdev_kobj(part), action);
-
bdput(part
);
+
put_device(&part->bd_device
);
rcu_read_lock();
}
rcu_read_unlock();