Blob Blame History Raw
From 38b5cab9d243cf39561912fd7eacb0ba376be8eb Mon Sep 17 00:00:00 2001
From: David Disseldorp <ddiss@suse.de>
Date: Fri, 27 May 2016 02:07:00 +0200
Subject: [PATCH] libceph: handle writefull for OSD op extent init
Patch-mainline: Not yet, SES2 clustered LIO/RBD
References: bsc#980706

As of e30b7577bf1d338ca8a273bd2f881de5a41572b7, RBD dispatches OSD
writefull ops for RADOS object size IOs. The OSD op extent
initialisation functions need to handle this opcode.

Signed-off-by: David Disseldorp <ddiss@suse.de>
---
 net/ceph/osd_client.c |    4 ++++
 1 file changed, 4 insertions(+)

--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -199,6 +199,7 @@ void osd_req_op_extent_osd_data_pages(st
 					 own_pages);
 		break;
 	case CEPH_OSD_OP_WRITE:
+	case CEPH_OSD_OP_WRITEFULL:
 		ceph_osd_data_pages_init(&op->extent.request_data, pages,
 					  length, alignment, pages_from_pool,
 					  own_pages);
@@ -222,6 +223,7 @@ void osd_req_op_extent_osd_data_pagelist
 					    pagelist);
 		break;
 	case CEPH_OSD_OP_WRITE:
+	case CEPH_OSD_OP_WRITEFULL:
 		ceph_osd_data_pagelist_init(&op->extent.request_data,
 					    pagelist);
 		break;
@@ -245,6 +247,7 @@ void osd_req_op_extent_osd_data_bio(stru
 				       bio_length);
 		break;
 	case CEPH_OSD_OP_WRITE:
+	case CEPH_OSD_OP_WRITEFULL:
 		ceph_osd_data_bio_init(&op->extent.request_data, bio,
 				       bio_length);
 		break;
@@ -270,6 +273,7 @@ void osd_req_op_extent_osd_data_sg(struc
 		break;
 	case CEPH_OSD_OP_WRITE:
 	case CEPH_OSD_OP_CMPEXT:
+	case CEPH_OSD_OP_WRITEFULL:
 		ceph_osd_data_sg_init(&op->extent.request_data,
 				      sgl, init_sg_offset, length);
 		break;