Home Home > GIT Browse > vanilla
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2016-06-10 14:21:40 +0200
committerTakashi Iwai <tiwai@suse.de>2016-06-10 14:21:40 +0200
commit28b7a48b726dd1c8084ab72407cc39b389f8e692 (patch)
tree25773faabb0ef4d133bb49a8b55fee043e986ac0
parent9d3cc3d9e3e8ba7107ccf7c45024d8e32e51bd3a (diff)
parent4617da35a28ad45e911afba955da822a41057d07 (diff)
Merge branch 'users/ddiss/SLE12-SP2/for-next' into SLE12-SP2rpm-4.4.13-44
Pull rbd fix from David Disseldorp.
-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 e19cde1523..b9a7192224 100644
--- a/series.conf
+++ b/series.conf
@@ -2358,6 +2358,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)