[PATCH] Do not wait for event on device without table.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If there is DM device with no table present, do not
try to wait for change event. Otherwise it can
wait forever and block already removed device.

Simple reproducible:
  dmsetup create x --notable
  dmsetup wait x 0 &
  dmsetup remove x

Now it waits for device, which is no longer accesible through dm-ioctl.

Signed-off-by: Milan Broz <mbroz@xxxxxxxxxx>
---
 drivers/md/dm-ioctl.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
index 1d66932..a0ac379 100644
--- a/drivers/md/dm-ioctl.c
+++ b/drivers/md/dm-ioctl.c
@@ -1023,6 +1023,15 @@ static int dev_wait(struct dm_ioctl *param, size_t param_size)
 		return -ENXIO;
 
 	/*
+	 * Do not wait if no table present
+	 */
+	if (!(table = dm_get_live_or_inactive_table(md, param))) {
+		r = -ENXIO;
+		goto out;
+	}
+	dm_table_put(table);
+
+	/*
 	 * Wait for a notification event
 	 */
 	if (dm_wait_event(md, param->event_nr)) {
-- 
1.6.6

--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel

[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux