Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9fd097b1 authored by Tejun Heo's avatar Tejun Heo Committed by Jens Axboe
Browse files

block: unexport DISK_EVENT_MEDIA_CHANGE for legacy/fringe drivers



In-kernel disk event polling doesn't matter for legacy/fringe drivers
and may lead to infinite event loop if ->check_events() implementation
generates events on level condition instead of edge.

Now that block layer supports suppressing exporting unlisted events,
simply leaving disk->events cleared allows these drivers to keep the
internal revalidation behavior intact while avoiding weird
interactions with userland event handler.

Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
parent 91e8549b
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -2547,7 +2547,6 @@ static bool DAC960_RegisterBlockDevice(DAC960_Controller_T *Controller)
	disk->major = MajorNumber;
	disk->first_minor = n << DAC960_MaxPartitionsBits;
	disk->fops = &DAC960_BlockDeviceOperations;
	disk->events = DISK_EVENT_MEDIA_CHANGE;
   }
  /*
    Indicate the Block Device Registration completed successfully,
+0 −1
Original line number Diff line number Diff line
@@ -1736,7 +1736,6 @@ static int __init fd_probe_drives(void)
		disk->major = FLOPPY_MAJOR;
		disk->first_minor = drive;
		disk->fops = &floppy_fops;
		disk->events = DISK_EVENT_MEDIA_CHANGE;
		sprintf(disk->disk_name, "fd%d", drive);
		disk->private_data = &unit[drive];
		set_capacity(disk, 880*2);
+0 −1
Original line number Diff line number Diff line
@@ -1964,7 +1964,6 @@ static int __init atari_floppy_init (void)
		unit[i].disk->first_minor = i;
		sprintf(unit[i].disk->disk_name, "fd%d", i);
		unit[i].disk->fops = &floppy_fops;
		unit[i].disk->events = DISK_EVENT_MEDIA_CHANGE;
		unit[i].disk->private_data = &unit[i];
		unit[i].disk->queue = blk_init_queue(do_fd_request,
					&ataflop_lock);
+0 −1
Original line number Diff line number Diff line
@@ -4205,7 +4205,6 @@ static int __init floppy_init(void)
		disks[dr]->major = FLOPPY_MAJOR;
		disks[dr]->first_minor = TOMINOR(dr);
		disks[dr]->fops = &floppy_fops;
		disks[dr]->events = DISK_EVENT_MEDIA_CHANGE;
		sprintf(disks[dr]->disk_name, "fd%d", dr);

		init_timer(&motor_off_timer[dr]);
+0 −1
Original line number Diff line number Diff line
@@ -320,7 +320,6 @@ static void pcd_init_units(void)
		disk->first_minor = unit;
		strcpy(disk->disk_name, cd->name);	/* umm... */
		disk->fops = &pcd_bdops;
		disk->events = DISK_EVENT_MEDIA_CHANGE;
	}
}

Loading