- Fix 6.9 regression so that DM device removal is performed
synchronously by default. Asynchronous removal has always been possible but it isn't the default. It is important that synchronous removal be preserved, otherwise it is an interface change that breaks lvm2. - Remove errant semicolon in drivers/md/dm-vdo/murmurhash3.c -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEJfWUX4UqZ4x1O2wixSPxCi2dA1oFAmYr08wACgkQxSPxCi2d A1qSXAgAsmfo5nV8/tNsrG3aBYN/rbGyEQaKl+m3eGK3T874WyrbW/On5qfGzEO1 09O5jNEMhkEHBQq6tKu/Gp87xLVJroIOMLTYpmCg6nnlwVIifFy1uuaBFA1xgM9U xf7myg6fRj66Yjwv0y1WmTaQTX30s9alJ7f/PZQT1MJFhGIuHPIns3bsyZ43RcOl pNkS9jjdHkDpXK/cWseb9mz6TAISa8Fn2NYkDPvq6r/J/aIxhRiHlhlzFuQnnfkH Rg5GVg2R/yCZiGQpuA6IqfEX6eqc4HlZa5Ty2zj9BjUhmj+YbuLEKj+uMEB6wMPd uK7uWfkxZYvsBAdaFfSpU8XyTumaAA== =zK77 -----END PGP SIGNATURE----- Merge tag 'for-6.9/dm-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fixes from Mike Snitzer: - Fix 6.9 regression so that DM device removal is performed synchronously by default. Asynchronous removal has always been possible but it isn't the default. It is important that synchronous removal be preserved, otherwise it is an interface change that breaks lvm2. - Remove errant semicolon in drivers/md/dm-vdo/murmurhash3.c * tag 'for-6.9/dm-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm: restore synchronous close of device mapper block device dm vdo murmurhash: remove unneeded semicolon
This commit is contained in:
commit
08f0677dfc
|
@ -137,7 +137,7 @@ void murmurhash3_128(const void *key, const int len, const u32 seed, void *out)
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
/* finalization */
|
/* finalization */
|
||||||
|
|
||||||
|
|
|
@ -765,7 +765,7 @@ static struct table_device *open_table_device(struct mapped_device *md,
|
||||||
return td;
|
return td;
|
||||||
|
|
||||||
out_blkdev_put:
|
out_blkdev_put:
|
||||||
fput(bdev_file);
|
__fput_sync(bdev_file);
|
||||||
out_free_td:
|
out_free_td:
|
||||||
kfree(td);
|
kfree(td);
|
||||||
return ERR_PTR(r);
|
return ERR_PTR(r);
|
||||||
|
@ -778,7 +778,13 @@ static void close_table_device(struct table_device *td, struct mapped_device *md
|
||||||
{
|
{
|
||||||
if (md->disk->slave_dir)
|
if (md->disk->slave_dir)
|
||||||
bd_unlink_disk_holder(td->dm_dev.bdev, md->disk);
|
bd_unlink_disk_holder(td->dm_dev.bdev, md->disk);
|
||||||
fput(td->dm_dev.bdev_file);
|
|
||||||
|
/* Leverage async fput() if DMF_DEFERRED_REMOVE set */
|
||||||
|
if (unlikely(test_bit(DMF_DEFERRED_REMOVE, &md->flags)))
|
||||||
|
fput(td->dm_dev.bdev_file);
|
||||||
|
else
|
||||||
|
__fput_sync(td->dm_dev.bdev_file);
|
||||||
|
|
||||||
put_dax(td->dm_dev.dax_dev);
|
put_dax(td->dm_dev.dax_dev);
|
||||||
list_del(&td->list);
|
list_del(&td->list);
|
||||||
kfree(td);
|
kfree(td);
|
||||||
|
|
Loading…
Reference in New Issue