Blob Blame History Raw
From: Luis Henriques <lhenriques@suse.com>
Date: Fri, 23 Jun 2017 16:22:19 +0100
Subject: rbd: make sure pages are freed by libceph
Patch-mainline: Never, it fixes SUSE-specific code that has never been
   merged upstream
References: bsc#1045596

Changes made for FATE#321625 modified the rbd_dev_getxattr so that the
pages aren't tracked in a struct rbd_obj_request anymore, but in struct
ceph_osd_request instead.  By setting the 'own_pages' flag to true when
calling osd_req_op_xattr_response_data_pages ensures that libceph will
take care of freeing pages.

Signed-off-by: Luis Henriques <lhenriques@suse.com>
Acked-by: David Disseldorp <ddiss@suse.de>
---
 drivers/block/rbd.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -4883,7 +4883,7 @@ int rbd_dev_getxattr(struct rbd_device *
 
 	osd_req_op_xattr_response_data_pages(req, 0,
 					     pages, max_val_len,
-					     0, false, false);
+					     0, false, true);
 
 	ret = ceph_osdc_alloc_messages(req, GFP_KERNEL);
 	if (ret)