Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96d86834 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull Ceph fix from Sage Weil:
 "It's a simple fix for a hard to hit race, but low-risk and clearly
  correct"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
  rbd: do a safe list traversal in rbd_img_request_submit()
parents 15bbc1b2 46faeed4
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -1742,9 +1742,10 @@ static int rbd_img_request_submit(struct rbd_img_request *img_request)
	struct rbd_device *rbd_dev = img_request->rbd_dev;
	struct rbd_device *rbd_dev = img_request->rbd_dev;
	struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc;
	struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc;
	struct rbd_obj_request *obj_request;
	struct rbd_obj_request *obj_request;
	struct rbd_obj_request *next_obj_request;


	dout("%s: img %p\n", __func__, img_request);
	dout("%s: img %p\n", __func__, img_request);
	for_each_obj_request(img_request, obj_request) {
	for_each_obj_request_safe(img_request, obj_request, next_obj_request) {
		int ret;
		int ret;


		obj_request->callback = rbd_img_obj_callback;
		obj_request->callback = rbd_img_obj_callback;