summaryrefslogtreecommitdiff
path: root/lib/device/dev-io.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/device/dev-io.c')
-rw-r--r--lib/device/dev-io.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/device/dev-io.c b/lib/device/dev-io.c
index 2846cafd9..be8523f36 100644
--- a/lib/device/dev-io.c
+++ b/lib/device/dev-io.c
@@ -623,6 +623,18 @@ int dev_close_immediate(struct device *dev)
return _dev_close(dev, 1);
}
+void dev_close_vg(const char *vgname)
+{
+ struct dm_list *doh, *doht;
+ struct device *dev;
+
+ dm_list_iterate_safe(doh, doht, &_open_devices) {
+ dev = dm_list_struct_base(doh, struct device, open_list);
+ if (dev->open_count < 1 && lvmcache_pvid_is_in_vg(dev->pvid, vgname))
+ _close(dev);
+ }
+}
+
void dev_close_all(void)
{
struct dm_list *doh, *doht;