[lvm-devel] master - device: Fix an unpaired device close.

Alasdair Kergon agk at sourceware.org
Tue Dec 12 18:04:34 UTC 2017


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=e932c5da50a22e585a3cd08edb3d849e7715e244
Commit:        e932c5da50a22e585a3cd08edb3d849e7715e244
Parent:        b96862ee11e0291cc1101ff4e17e54f9fe8da666
Author:        Alasdair G Kergon <agk at redhat.com>
AuthorDate:    Tue Dec 12 17:56:58 2017 +0000
Committer:     Alasdair G Kergon <agk at redhat.com>
CommitterDate: Tue Dec 12 17:56:58 2017 +0000

device: Fix an unpaired device close.

dev_open_flags contains an unpaired dev_close_immediate so increment
open_count before calling it.
---
 lib/device/dev-io.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/device/dev-io.c b/lib/device/dev-io.c
index dc9ad13..c321e61 100644
--- a/lib/device/dev-io.c
+++ b/lib/device/dev-io.c
@@ -491,11 +491,12 @@ int dev_open_flags(struct device *dev, int flags, int direct, int quiet)
 			return 1;
 		}
 
-		if (dev->open_count && !need_excl) {
+		if (dev->open_count && !need_excl)
 			log_debug_devs("%s: Already opened read-only. Upgrading "
 				       "to read-write.", dev_name(dev));
-			dev->open_count++;
-		}
+
+		/* dev_close_immediate will decrement this */
+		dev->open_count++;
 
 		dev_close_immediate(dev);
 		// FIXME: dev with DEV_ALLOCED is released




More information about the lvm-devel mailing list