|
Michal Kubecek |
ec8941 |
From 6d6467b88c009e228aece154b5d7550703125a62 Mon Sep 17 00:00:00 2001
|
|
Michal Kubecek |
ec8941 |
From: David Disseldorp <ddiss@suse.de>
|
|
Michal Kubecek |
ec8941 |
Date: Fri, 10 Jun 2016 19:30:08 +0200
|
|
Michal Kubecek |
ec8941 |
Subject: [PATCH 1/2] target/rbd: don't put snap_context twice
|
|
Michal Kubecek |
ec8941 |
Patch-mainline: Not yet, SES clustered LIO/RBD
|
|
Michal Kubecek |
ec8941 |
References: bsc#981143
|
|
Michal Kubecek |
ec8941 |
|
|
Michal Kubecek |
ec8941 |
Complimentary to the 70b16db86f564977df074072143284aec2cb1162 fix from
|
|
Michal Kubecek |
ec8941 |
upstream: rbd_img_request_put() puts the snap_context provided with
|
|
Michal Kubecek |
ec8941 |
rbd_img_request_create(), so do *not* call ceph_put_snap_context() with
|
|
Michal Kubecek |
ec8941 |
the same snap_context in the tcm_rbd_execute_cmp_and_write() and
|
|
Michal Kubecek |
ec8941 |
tcm_rbd_execute_cmd() error paths.
|
|
Michal Kubecek |
ec8941 |
|
|
Michal Kubecek |
ec8941 |
Signed-off-by: David Disseldorp <ddiss@suse.de>
|
|
Michal Kubecek |
ec8941 |
Reviewed-by: Jan Fajerski <jan.fajerski@suse.com>
|
|
Michal Kubecek |
ec8941 |
---
|
|
Michal Kubecek |
ec8941 |
drivers/target/target_core_rbd.c | 2 ++
|
|
Michal Kubecek |
ec8941 |
1 file changed, 2 insertions(+)
|
|
Michal Kubecek |
ec8941 |
|
|
Michal Kubecek |
ec8941 |
--- a/drivers/target/target_core_rbd.c
|
|
Michal Kubecek |
ec8941 |
+++ b/drivers/target/target_core_rbd.c
|
|
Michal Kubecek |
ec8941 |
@@ -308,6 +308,7 @@ tcm_rbd_execute_cmd(struct se_cmd *cmd,
|
|
Michal Kubecek |
ec8941 |
sense = TCM_OUT_OF_RESOURCES;
|
|
Michal Kubecek |
ec8941 |
goto free_snapc;
|
|
Michal Kubecek |
ec8941 |
}
|
|
Michal Kubecek |
ec8941 |
+ snapc = NULL; /* img_request consumes a ref */
|
|
Michal Kubecek |
ec8941 |
|
|
Michal Kubecek |
ec8941 |
ret = rbd_img_request_fill(img_request,
|
|
Michal Kubecek |
ec8941 |
sgl ? OBJ_REQUEST_SG : OBJ_REQUEST_NODATA,
|
|
Michal Kubecek |
ec8941 |
@@ -443,6 +444,7 @@ static sense_reason_t tcm_rbd_execute_cm
|
|
Michal Kubecek |
ec8941 |
sense = TCM_OUT_OF_RESOURCES;
|
|
Michal Kubecek |
ec8941 |
goto free_snapc;
|
|
Michal Kubecek |
ec8941 |
}
|
|
Michal Kubecek |
ec8941 |
+ snapc = NULL; /* img_request consumes a ref */
|
|
Michal Kubecek |
ec8941 |
|
|
Michal Kubecek |
ec8941 |
ret = down_interruptible(&dev->caw_sem);
|
|
Michal Kubecek |
ec8941 |
if (ret != 0) {
|