From fac475c7d3b59ec1f6a5d4fbb08d06e9ae6353cf Mon Sep 17 00:00:00 2001 From: "Bryn M. Reeves" Date: Mon, 3 Apr 2023 15:20:04 +0100 Subject: [PATCH 1/2] Add DmOptions::private() to set defaults for internal devices --- src/core/dm_options.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/core/dm_options.rs b/src/core/dm_options.rs index 89abff5d..67fb3d1f 100644 --- a/src/core/dm_options.rs +++ b/src/core/dm_options.rs @@ -34,4 +34,13 @@ impl DmOptions { pub fn udev_flags(&self) -> DmUdevFlags { self.udev_flags } + + /// Set default udev flags for a private (internal) device. + pub fn private() -> DmOptions { + DmOptions::default().set_udev_flags( + DmUdevFlags::DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG + | DmUdevFlags::DM_UDEV_DISABLE_DISK_RULES_FLAG + | DmUdevFlags::DM_UDEV_DISABLE_OTHER_RULES_FLAG, + ) + } } From e4c7089fe1f1e70fe18eca7c0cc4a6357cf6a5e4 Mon Sep 17 00:00:00 2001 From: "Bryn M. Reeves" Date: Mon, 3 Apr 2023 15:22:53 +0100 Subject: [PATCH 2/2] Make CacheDev, LinearDev and ThinPoolDev private --- src/cachedev.rs | 4 ++-- src/lineardev.rs | 2 +- src/thinpooldev.rs | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cachedev.rs b/src/cachedev.rs index f5c9b456..028b7f51 100644 --- a/src/cachedev.rs +++ b/src/cachedev.rs @@ -573,7 +573,7 @@ impl CacheDev { } let table = CacheDev::gen_default_table(&meta, &cache, &origin, cache_block_size); - let dev_info = device_create(dm, name, uuid, &table, DmOptions::default())?; + let dev_info = device_create(dm, name, uuid, &table, DmOptions::private())?; Ok(CacheDev { dev_info: Box::new(dev_info), @@ -607,7 +607,7 @@ impl CacheDev { device_match(dm, &dev, uuid)?; dev } else { - let dev_info = device_create(dm, name, uuid, &table, DmOptions::default())?; + let dev_info = device_create(dm, name, uuid, &table, DmOptions::private())?; CacheDev { dev_info: Box::new(dev_info), meta_dev: meta, diff --git a/src/lineardev.rs b/src/lineardev.rs index 958ac5da..eaa3acf9 100644 --- a/src/lineardev.rs +++ b/src/lineardev.rs @@ -539,7 +539,7 @@ impl LinearDev { device_match(dm, &dev, uuid)?; dev } else { - let dev_info = device_create(dm, name, uuid, &table, DmOptions::default())?; + let dev_info = device_create(dm, name, uuid, &table, DmOptions::private())?; LinearDev { dev_info: Box::new(dev_info), table, diff --git a/src/thinpooldev.rs b/src/thinpooldev.rs index f560c21c..f8a64ff7 100644 --- a/src/thinpooldev.rs +++ b/src/thinpooldev.rs @@ -457,7 +457,7 @@ impl ThinPoolDev { let table = ThinPoolDev::gen_table(&meta, &data, data_block_size, low_water_mark, feature_args); - let dev_info = device_create(dm, name, uuid, &table, DmOptions::default())?; + let dev_info = device_create(dm, name, uuid, &table, DmOptions::private())?; Ok(ThinPoolDev { dev_info: Box::new(dev_info), @@ -512,7 +512,7 @@ impl ThinPoolDev { device_match(dm, &dev, uuid)?; dev } else { - let dev_info = device_create(dm, name, uuid, &table, DmOptions::default())?; + let dev_info = device_create(dm, name, uuid, &table, DmOptions::private())?; ThinPoolDev { dev_info: Box::new(dev_info), meta_dev: meta,