aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-17 19:03:12 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-17 19:03:12 -0500
commit57666509b70030a9483d13222bfec8eec5db07df (patch)
tree1e0021c2aabc2ce8832e8c816e2aa94b0b77a323 /drivers
parent87c31b39abcb6fb6bd7d111200c9627a594bf6a9 (diff)
parent0aeff37abada9f8c08d2b10481a43d3ae406c823 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client
Pull ceph updates from Sage Weil: "The big item here is support for inline data for CephFS and for message signatures from Zheng. There are also several bug fixes, including interrupted flock request handling, 0-length xattrs, mksnap, cached readdir results, and a message version compat field. Finally there are several cleanups from Ilya, Dan, and Markus. Note that there is another series coming soon that fixes some bugs in the RBD 'lingering' requests, but it isn't quite ready yet" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (27 commits) ceph: fix setting empty extended attribute ceph: fix mksnap crash ceph: do_sync is never initialized libceph: fixup includes in pagelist.h ceph: support inline data feature ceph: flush inline version ceph: convert inline data to normal data before data write ceph: sync read inline data ceph: fetch inline data when getting Fcr cap refs ceph: use getattr request to fetch inline data ceph: add inline data to pagecache ceph: parse inline data in MClientReply and MClientCaps libceph: specify position of extent operation libceph: add CREATE osd operation support libceph: add SETXATTR/CMPXATTR osd operations support rbd: don't treat CEPH_OSD_OP_DELETE as extent op ceph: remove unused stringification macros libceph: require cephx message signature by default ceph: introduce global empty snap context ceph: message versioning fixes ...
Diffstat (limited to 'drivers')
-rw-r--r--drivers/block/rbd.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 27b71a0b72d0..3ec85dfce124 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -2370,8 +2370,12 @@ static void rbd_img_obj_request_fill(struct rbd_obj_request *obj_request,
2370 opcode = CEPH_OSD_OP_READ; 2370 opcode = CEPH_OSD_OP_READ;
2371 } 2371 }
2372 2372
2373 osd_req_op_extent_init(osd_request, num_ops, opcode, offset, length, 2373 if (opcode == CEPH_OSD_OP_DELETE)
2374 0, 0); 2374 osd_req_op_init(osd_request, num_ops, opcode);
2375 else
2376 osd_req_op_extent_init(osd_request, num_ops, opcode,
2377 offset, length, 0, 0);
2378
2375 if (obj_request->type == OBJ_REQUEST_BIO) 2379 if (obj_request->type == OBJ_REQUEST_BIO)
2376 osd_req_op_extent_osd_data_bio(osd_request, num_ops, 2380 osd_req_op_extent_osd_data_bio(osd_request, num_ops,
2377 obj_request->bio_list, length); 2381 obj_request->bio_list, length);
@@ -3405,8 +3409,7 @@ err_rq:
3405 if (result) 3409 if (result)
3406 rbd_warn(rbd_dev, "%s %llx at %llx result %d", 3410 rbd_warn(rbd_dev, "%s %llx at %llx result %d",
3407 obj_op_name(op_type), length, offset, result); 3411 obj_op_name(op_type), length, offset, result);
3408 if (snapc) 3412 ceph_put_snap_context(snapc);
3409 ceph_put_snap_context(snapc);
3410 blk_end_request_all(rq, result); 3413 blk_end_request_all(rq, result);
3411} 3414}
3412 3415