block: move GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE to disk->event_flags
[ Upstream commit1545e0b419
] GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE is all about the event reporting mechanism, so move it to the event_flags field. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20211122130625.1136848-3-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk> Stable-dep-of:1a721de848
("block: don't add or resize partition on the disk with GENHD_FL_NO_PART") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
8247ff0d50
Коммит
6c06a7f6b4
|
@ -835,7 +835,7 @@ struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode, void *holder)
|
|||
* used in blkdev_get/put().
|
||||
*/
|
||||
if ((mode & FMODE_WRITE) && !bdev->bd_write_holder &&
|
||||
(disk->flags & GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE)) {
|
||||
(disk->event_flags & DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE)) {
|
||||
bdev->bd_write_holder = true;
|
||||
unblock_events = false;
|
||||
}
|
||||
|
|
|
@ -929,8 +929,8 @@ static int pcd_init_unit(struct pcd_unit *cd, bool autoprobe, int port,
|
|||
disk->minors = 1;
|
||||
strcpy(disk->disk_name, cd->name); /* umm... */
|
||||
disk->fops = &pcd_bdops;
|
||||
disk->flags = GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE;
|
||||
disk->events = DISK_EVENT_MEDIA_CHANGE;
|
||||
disk->event_flags = DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE;
|
||||
|
||||
if (!pi_init(cd->pi, autoprobe, port, mode, unit, protocol, delay,
|
||||
pcd_buffer, PI_PCD, verbose, cd->name))
|
||||
|
|
|
@ -684,9 +684,10 @@ static int sr_probe(struct device *dev)
|
|||
disk->minors = 1;
|
||||
sprintf(disk->disk_name, "sr%d", minor);
|
||||
disk->fops = &sr_bdops;
|
||||
disk->flags = GENHD_FL_CD | GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE;
|
||||
disk->flags = GENHD_FL_CD;
|
||||
disk->events = DISK_EVENT_MEDIA_CHANGE | DISK_EVENT_EJECT_REQUEST;
|
||||
disk->event_flags = DISK_EVENT_FLAG_POLL | DISK_EVENT_FLAG_UEVENT;
|
||||
disk->event_flags = DISK_EVENT_FLAG_POLL | DISK_EVENT_FLAG_UEVENT |
|
||||
DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE;
|
||||
|
||||
blk_queue_rq_timeout(sdev->request_queue, SR_TIMEOUT);
|
||||
|
||||
|
|
|
@ -60,9 +60,6 @@ struct partition_meta_info {
|
|||
* (``BLOCK_EXT_MAJOR``).
|
||||
* This affects the maximum number of partitions.
|
||||
*
|
||||
* ``GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE`` (0x0100): event polling is
|
||||
* blocked whenever a writer holds an exclusive lock.
|
||||
*
|
||||
* ``GENHD_FL_NO_PART_SCAN`` (0x0200): partition scanning is disabled.
|
||||
* Used for loop devices in their default settings and some MMC
|
||||
* devices.
|
||||
|
@ -80,7 +77,6 @@ struct partition_meta_info {
|
|||
#define GENHD_FL_CD 0x0008
|
||||
#define GENHD_FL_SUPPRESS_PARTITION_INFO 0x0020
|
||||
#define GENHD_FL_EXT_DEVT 0x0040
|
||||
#define GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE 0x0100
|
||||
#define GENHD_FL_NO_PART_SCAN 0x0200
|
||||
#define GENHD_FL_HIDDEN 0x0400
|
||||
|
||||
|
@ -94,6 +90,8 @@ enum {
|
|||
DISK_EVENT_FLAG_POLL = 1 << 0,
|
||||
/* Forward events to udev */
|
||||
DISK_EVENT_FLAG_UEVENT = 1 << 1,
|
||||
/* Block event polling when open for exclusive write */
|
||||
DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 1 << 2,
|
||||
};
|
||||
|
||||
struct disk_events;
|
||||
|
|
Загрузка…
Ссылка в новой задаче