Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Disseldorp <ddiss@suse.de>2016-06-10 13:17:07 +0200
committerDavid Disseldorp <ddiss@suse.de>2016-06-10 13:29:41 +0200
commit4617da35a28ad45e911afba955da822a41057d07 (patch)
treec03d34f3a5395f56348aeb786f55614da2ddb62d
parentaaa1045fbe447b37a788a27f50a08a1277d5aa0e (diff)
rbd: handle OBJ_REQUEST_SG types for copyup (bsc#983394).
-rw-r--r--patches.fixes/rbd-handle-OBJ_REQUEST_SG-types-for-copyup.patch34
-rw-r--r--series.conf1
2 files changed, 35 insertions, 0 deletions
diff --git a/patches.fixes/rbd-handle-OBJ_REQUEST_SG-types-for-copyup.patch b/patches.fixes/rbd-handle-OBJ_REQUEST_SG-types-for-copyup.patch
new file mode 100644
index 0000000000..1b88b16ffd
--- /dev/null
+++ b/patches.fixes/rbd-handle-OBJ_REQUEST_SG-types-for-copyup.patch
@@ -0,0 +1,34 @@
+From a4d6daf53e9a46f34b4ba5cc51f8d9a3ab6edcae Mon Sep 17 00:00:00 2001
+From: David Disseldorp <ddiss@suse.de>
+Date: Fri, 10 Jun 2016 02:15:45 +0200
+Subject: [PATCH] rbd: handle OBJ_REQUEST_SG types for copyup
+Patch-mainline: Not yet, SES clustered LIO/RBD
+References: bsc#983394
+
+When handling an LIO layered write with cloned parent overlap,
+rbd_osd_copyup_callback() can be invoked with an OBJ_REQUEST_SG type.
+
+rbd_osd_copyup_callback() handles the release of the copyup page vector,
+and triggers regular OSD/RBD image request cleanup, so OBJ_REQUEST_SG
+types should be accepted here.
+
+This bug was introduced with rbd scatterlist support via suse-commit
+78f11929850b38b6d39f47786bff086d3813a6fa.
+
+Signed-off-by: David Disseldorp <ddiss@suse.de>
+---
+ drivers/block/rbd.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/block/rbd.c
++++ b/drivers/block/rbd.c
+@@ -2710,7 +2710,8 @@ rbd_osd_copyup_callback(struct rbd_obj_r
+ dout("%s: obj %p\n", __func__, obj_request);
+
+ rbd_assert(obj_request->type == OBJ_REQUEST_BIO ||
+- obj_request->type == OBJ_REQUEST_NODATA);
++ obj_request->type == OBJ_REQUEST_NODATA ||
++ obj_request->type == OBJ_REQUEST_SG);
+ rbd_assert(obj_request_img_data_test(obj_request));
+ img_request = obj_request->img_request;
+ rbd_assert(img_request);
diff --git a/series.conf b/series.conf
index 87ebc85873..8ef2b75415 100644
--- a/series.conf
+++ b/series.conf
@@ -2357,6 +2357,7 @@
patches.fixes/rbd-don-t-log-miscompare-as-an-error.patch
patches.fixes/rbd-report-unsupported-features-to-syslog.patch
patches.suse/libceph-handle-writefull-for-OSD-op-extent-init.patch
+ patches.fixes/rbd-handle-OBJ_REQUEST_SG-types-for-copyup.patch
# mlx5 SLE12-SP1 update (bsc#923036 fate#318772)