[lvm-devel] [PATCH 15/21] Add write mode to vg_open(), calling the new vg_read API with READ_FOR_UPDATE.

Dave Wysochanski dwysocha at redhat.com
Mon Feb 9 04:22:03 UTC 2009


Signed-off-by: Dave Wysochanski <dwysocha at redhat.com>
---
 lib/lvm2.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/lib/lvm2.c b/lib/lvm2.c
index cf4e603..e58f7e8 100644
--- a/lib/lvm2.c
+++ b/lib/lvm2.c
@@ -49,14 +49,17 @@ vg_t *lvm_vg_open(lvm_handle_t libh, const char *vg_name, mode_t mode)
 {
 	vg_t *vg;
 
-	if ((mode & O_ACCMODE) != O_RDONLY) {
+	if ((mode & O_ACCMODE) == O_RDONLY) {
+		vg = vg_read(libh->cmd, vg_name, NULL, 0);
+	} else if ((mode & O_ACCMODE) == O_RDWR) {
+		vg = vg_read(libh->cmd, vg_name, NULL, READ_FOR_UPDATE);
+	} else {
 		log_error("Invalid access mode 0x%x for lvm_vg_read()\n",
 			  mode);
 		libh->lvm_errno = EPERM;
 		return NULL;
 	}
-	vg = vg_read(libh->cmd, vg_name, NULL, 0);
-
+	
 	if (vg_read_error(vg)) {
 		/* FIXME: fill in vg->errno */
 		return NULL;
-- 
1.6.0.5




More information about the lvm-devel mailing list