Commit 08f0677d authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'for-6.9/dm-fixes-3' of...

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
parents 52034cae 48ef0ba1
...@@ -137,7 +137,7 @@ void murmurhash3_128(const void *key, const int len, const u32 seed, void *out) ...@@ -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, ...@@ -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 ...@@ -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);
/* Leverage async fput() if DMF_DEFERRED_REMOVE set */
if (unlikely(test_bit(DMF_DEFERRED_REMOVE, &md->flags)))
fput(td->dm_dev.bdev_file); 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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment