When reloading a device the ioctl interface was forgetting to drop a reference on the new table. --- diff/drivers/md/dm-ioctl.c 2003-06-17 10:06:19.000000000 +0100 +++ source/drivers/md/dm-ioctl.c 2003-06-17 10:06:58.000000000 +0100 @@ -894,6 +894,7 @@ dm_table_put(t); return r; } + dm_table_put(t); /* md will have taken its own reference */ dev = dm_kdev(md); set_device_ro(dev, (param->flags & DM_READONLY_FLAG));