diff mbox

[5/5] rbd: use lock_on_read if set

Message ID 1476221815-17900-6-git-send-email-mchristi@redhat.com (mailing list archive)
State Not Applicable, archived
Delegated to: Mike Snitzer
Headers show

Commit Message

Mike Christie Oct. 11, 2016, 9:36 p.m. UTC
If lock_on_read is set initially, pass it as a map option
when remapping the image.

Signed-off-by: Mike Christie <mchristi@redhat.com>
---
 libmultipath/checkers/rbd.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/libmultipath/checkers/rbd.c b/libmultipath/checkers/rbd.c
index e516166..c920cbb 100644
--- a/libmultipath/checkers/rbd.c
+++ b/libmultipath/checkers/rbd.c
@@ -46,6 +46,7 @@  struct rbd_checker_context {
 	char *username;
 	int remapped;
 	int blacklisted;
+	int lock_on_read:1;
 
 	rados_t cluster;
 
@@ -142,6 +143,9 @@  int libcheck_init(struct checker * c)
 		goto free_addr;
 	}
 
+	if (strstr(config_info, "lock_on_read"))
+		ct->lock_on_read = 1;
+
 	ct->config_info = strdup(config_info);
 	if (!ct->config_info)
 		goto free_addr;
@@ -398,7 +402,10 @@  static int rbd_remap(struct rbd_checker_context *ct)
 	case 0:
 		argv[i++] = "rbd";
 		argv[i++] = "map";
-		argv[i++] = "-o noshare";
+		if (ct->lock_on_read)
+			argv[i++] = "-o noshare,lock_on_read";
+		else
+			argv[i++] = "-o noshare";
 		if (ct->username) {
 			argv[i++] = "--id";
 			argv[i++] = ct->username;