aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Elder <elder@inktank.com>2013-04-15 15:50:36 -0400
committerSage Weil <sage@inktank.com>2013-05-02 00:18:58 -0400
commit406e2c9f9286fc93ae2191a7abf477dea05aadc9 (patch)
tree121034644585b0171bfd436d77fe988ad1704753
parentac7f29bf2ee4a526efb68f947475ff77a43028de (diff)
libceph: kill off osd data write_request parameters
In the incremental move toward supporting distinct data items in an osd request some of the functions had "write_request" parameters to indicate, basically, whether the data belonged to in_data or the out_data. Now that we maintain the data fields in the op structure there is no need to indicate the direction, so get rid of the "write_request" parameters. Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-rw-r--r--drivers/block/rbd.c4
-rw-r--r--fs/ceph/addr.c9
-rw-r--r--fs/ceph/file.c4
-rw-r--r--include/linux/ceph/osd_client.h8
-rw-r--r--net/ceph/osd_client.c25
5 files changed, 23 insertions, 27 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 13a381b2a779..8e8b876e83c3 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -1779,7 +1779,7 @@ static int rbd_img_request_fill_bio(struct rbd_img_request *img_request,
1779 1779
1780 osd_req_op_extent_init(osd_req, 0, opcode, offset, length, 1780 osd_req_op_extent_init(osd_req, 0, opcode, offset, length,
1781 0, 0); 1781 0, 0);
1782 osd_req_op_extent_osd_data_bio(osd_req, 0, write_request, 1782 osd_req_op_extent_osd_data_bio(osd_req, 0,
1783 obj_request->bio_list, obj_request->length); 1783 obj_request->bio_list, obj_request->length);
1784 rbd_osd_req_format(obj_request, write_request); 1784 rbd_osd_req_format(obj_request, write_request);
1785 1785
@@ -2281,7 +2281,7 @@ static int rbd_obj_read_sync(struct rbd_device *rbd_dev,
2281 2281
2282 osd_req_op_extent_init(obj_request->osd_req, 0, CEPH_OSD_OP_READ, 2282 osd_req_op_extent_init(obj_request->osd_req, 0, CEPH_OSD_OP_READ,
2283 offset, length, 0, 0); 2283 offset, length, 0, 0);
2284 osd_req_op_extent_osd_data_pages(obj_request->osd_req, 0, false, 2284 osd_req_op_extent_osd_data_pages(obj_request->osd_req, 0,
2285 obj_request->pages, 2285 obj_request->pages,
2286 obj_request->length, 2286 obj_request->length,
2287 obj_request->offset & ~PAGE_MASK, 2287 obj_request->offset & ~PAGE_MASK,
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index 2d6466b5fe82..3e68ac101040 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -245,7 +245,7 @@ static void finish_read(struct ceph_osd_request *req, struct ceph_msg *msg)
245 dout("finish_read %p req %p rc %d bytes %d\n", inode, req, rc, bytes); 245 dout("finish_read %p req %p rc %d bytes %d\n", inode, req, rc, bytes);
246 246
247 /* unlock all pages, zeroing any data we didn't read */ 247 /* unlock all pages, zeroing any data we didn't read */
248 osd_data = osd_req_op_extent_osd_data(req, 0, false); 248 osd_data = osd_req_op_extent_osd_data(req, 0);
249 BUG_ON(osd_data->type != CEPH_OSD_DATA_TYPE_PAGES); 249 BUG_ON(osd_data->type != CEPH_OSD_DATA_TYPE_PAGES);
250 num_pages = calc_pages_for((u64)osd_data->alignment, 250 num_pages = calc_pages_for((u64)osd_data->alignment,
251 (u64)osd_data->length); 251 (u64)osd_data->length);
@@ -343,8 +343,7 @@ static int start_read(struct inode *inode, struct list_head *page_list, int max)
343 } 343 }
344 pages[i] = page; 344 pages[i] = page;
345 } 345 }
346 osd_req_op_extent_osd_data_pages(req, 0, false, pages, len, 0, 346 osd_req_op_extent_osd_data_pages(req, 0, pages, len, 0, false, false);
347 false, false);
348 req->r_callback = finish_read; 347 req->r_callback = finish_read;
349 req->r_inode = inode; 348 req->r_inode = inode;
350 349
@@ -571,7 +570,7 @@ static void writepages_finish(struct ceph_osd_request *req,
571 long writeback_stat; 570 long writeback_stat;
572 unsigned issued = ceph_caps_issued(ci); 571 unsigned issued = ceph_caps_issued(ci);
573 572
574 osd_data = osd_req_op_extent_osd_data(req, 0, true); 573 osd_data = osd_req_op_extent_osd_data(req, 0);
575 BUG_ON(osd_data->type != CEPH_OSD_DATA_TYPE_PAGES); 574 BUG_ON(osd_data->type != CEPH_OSD_DATA_TYPE_PAGES);
576 num_pages = calc_pages_for((u64)osd_data->alignment, 575 num_pages = calc_pages_for((u64)osd_data->alignment,
577 (u64)osd_data->length); 576 (u64)osd_data->length);
@@ -916,7 +915,7 @@ get_more_pages:
916 dout("writepages got %d pages at %llu~%llu\n", 915 dout("writepages got %d pages at %llu~%llu\n",
917 locked_pages, offset, len); 916 locked_pages, offset, len);
918 917
919 osd_req_op_extent_osd_data_pages(req, 0, true, pages, len, 0, 918 osd_req_op_extent_osd_data_pages(req, 0, pages, len, 0,
920 !!pool, false); 919 !!pool, false);
921 920
922 pages = NULL; /* request message now owns the pages array */ 921 pages = NULL; /* request message now owns the pages array */
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
index 7e94dcb66d92..d70830c66833 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -585,8 +585,8 @@ more:
585 own_pages = true; 585 own_pages = true;
586 } 586 }
587 } 587 }
588 osd_req_op_extent_osd_data_pages(req, 0, true, pages, len, 588 osd_req_op_extent_osd_data_pages(req, 0, pages, len, page_align,
589 page_align, false, own_pages); 589 false, own_pages);
590 590
591 /* BUG_ON(vino.snap != CEPH_NOSNAP); */ 591 /* BUG_ON(vino.snap != CEPH_NOSNAP); */
592 ceph_osdc_build_request(req, pos, snapc, vino.snap, &mtime); 592 ceph_osdc_build_request(req, pos, snapc, vino.snap, &mtime);
diff --git a/include/linux/ceph/osd_client.h b/include/linux/ceph/osd_client.h
index 0d3358ef5285..0e406934a551 100644
--- a/include/linux/ceph/osd_client.h
+++ b/include/linux/ceph/osd_client.h
@@ -241,22 +241,22 @@ extern void osd_req_op_extent_update(struct ceph_osd_request *osd_req,
241 241
242extern struct ceph_osd_data *osd_req_op_extent_osd_data( 242extern struct ceph_osd_data *osd_req_op_extent_osd_data(
243 struct ceph_osd_request *osd_req, 243 struct ceph_osd_request *osd_req,
244 unsigned int which, bool write_request); 244 unsigned int which);
245extern struct ceph_osd_data *osd_req_op_cls_response_data( 245extern struct ceph_osd_data *osd_req_op_cls_response_data(
246 struct ceph_osd_request *osd_req, 246 struct ceph_osd_request *osd_req,
247 unsigned int which); 247 unsigned int which);
248 248
249extern void osd_req_op_extent_osd_data_pages(struct ceph_osd_request *, 249extern void osd_req_op_extent_osd_data_pages(struct ceph_osd_request *,
250 unsigned int which, bool write_request, 250 unsigned int which,
251 struct page **pages, u64 length, 251 struct page **pages, u64 length,
252 u32 alignment, bool pages_from_pool, 252 u32 alignment, bool pages_from_pool,
253 bool own_pages); 253 bool own_pages);
254extern void osd_req_op_extent_osd_data_pagelist(struct ceph_osd_request *, 254extern void osd_req_op_extent_osd_data_pagelist(struct ceph_osd_request *,
255 unsigned int which, bool write_request, 255 unsigned int which,
256 struct ceph_pagelist *pagelist); 256 struct ceph_pagelist *pagelist);
257#ifdef CONFIG_BLOCK 257#ifdef CONFIG_BLOCK
258extern void osd_req_op_extent_osd_data_bio(struct ceph_osd_request *, 258extern void osd_req_op_extent_osd_data_bio(struct ceph_osd_request *,
259 unsigned int which, bool write_request, 259 unsigned int which,
260 struct bio *bio, size_t bio_length); 260 struct bio *bio, size_t bio_length);
261#endif /* CONFIG_BLOCK */ 261#endif /* CONFIG_BLOCK */
262 262
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index 0c5bf2fb5075..409c443c8d1f 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -117,7 +117,7 @@ static void ceph_osd_data_bio_init(struct ceph_osd_data *osd_data,
117 117
118struct ceph_osd_data * 118struct ceph_osd_data *
119osd_req_op_extent_osd_data(struct ceph_osd_request *osd_req, 119osd_req_op_extent_osd_data(struct ceph_osd_request *osd_req,
120 unsigned int which, bool write_request) 120 unsigned int which)
121{ 121{
122 BUG_ON(which >= osd_req->r_num_ops); 122 BUG_ON(which >= osd_req->r_num_ops);
123 123
@@ -156,37 +156,34 @@ osd_req_op_cls_response_data(struct ceph_osd_request *osd_req,
156EXPORT_SYMBOL(osd_req_op_cls_response_data); /* ??? */ 156EXPORT_SYMBOL(osd_req_op_cls_response_data); /* ??? */
157 157
158void osd_req_op_extent_osd_data_pages(struct ceph_osd_request *osd_req, 158void osd_req_op_extent_osd_data_pages(struct ceph_osd_request *osd_req,
159 unsigned int which, bool write_request, 159 unsigned int which, struct page **pages,
160 struct page **pages, u64 length, u32 alignment, 160 u64 length, u32 alignment,
161 bool pages_from_pool, bool own_pages) 161 bool pages_from_pool, bool own_pages)
162{ 162{
163 struct ceph_osd_data *osd_data; 163 struct ceph_osd_data *osd_data;
164 164
165 osd_data = osd_req_op_extent_osd_data(osd_req, which, write_request); 165 osd_data = osd_req_op_extent_osd_data(osd_req, which);
166 ceph_osd_data_pages_init(osd_data, pages, length, alignment, 166 ceph_osd_data_pages_init(osd_data, pages, length, alignment,
167 pages_from_pool, own_pages); 167 pages_from_pool, own_pages);
168} 168}
169EXPORT_SYMBOL(osd_req_op_extent_osd_data_pages); 169EXPORT_SYMBOL(osd_req_op_extent_osd_data_pages);
170 170
171void osd_req_op_extent_osd_data_pagelist(struct ceph_osd_request *osd_req, 171void osd_req_op_extent_osd_data_pagelist(struct ceph_osd_request *osd_req,
172 unsigned int which, bool write_request, 172 unsigned int which, struct ceph_pagelist *pagelist)
173 struct ceph_pagelist *pagelist)
174{ 173{
175 struct ceph_osd_data *osd_data; 174 struct ceph_osd_data *osd_data;
176 175
177 osd_data = osd_req_op_extent_osd_data(osd_req, which, write_request); 176 osd_data = osd_req_op_extent_osd_data(osd_req, which);
178 ceph_osd_data_pagelist_init(osd_data, pagelist); 177 ceph_osd_data_pagelist_init(osd_data, pagelist);
179} 178}
180EXPORT_SYMBOL(osd_req_op_extent_osd_data_pagelist); 179EXPORT_SYMBOL(osd_req_op_extent_osd_data_pagelist);
181 180
182#ifdef CONFIG_BLOCK 181#ifdef CONFIG_BLOCK
183void osd_req_op_extent_osd_data_bio(struct ceph_osd_request *osd_req, 182void osd_req_op_extent_osd_data_bio(struct ceph_osd_request *osd_req,
184 unsigned int which, bool write_request, 183 unsigned int which, struct bio *bio, size_t bio_length)
185 struct bio *bio, size_t bio_length)
186{ 184{
187 struct ceph_osd_data *osd_data; 185 struct ceph_osd_data *osd_data;
188 186 osd_data = osd_req_op_extent_osd_data(osd_req, which);
189 osd_data = osd_req_op_extent_osd_data(osd_req, which, write_request);
190 ceph_osd_data_bio_init(osd_data, bio, bio_length); 187 ceph_osd_data_bio_init(osd_data, bio, bio_length);
191} 188}
192EXPORT_SYMBOL(osd_req_op_extent_osd_data_bio); 189EXPORT_SYMBOL(osd_req_op_extent_osd_data_bio);
@@ -2284,7 +2281,7 @@ int ceph_osdc_readpages(struct ceph_osd_client *osdc,
2284 2281
2285 /* it may be a short read due to an object boundary */ 2282 /* it may be a short read due to an object boundary */
2286 2283
2287 osd_req_op_extent_osd_data_pages(req, 0, false, 2284 osd_req_op_extent_osd_data_pages(req, 0,
2288 pages, *plen, page_align, false, false); 2285 pages, *plen, page_align, false, false);
2289 2286
2290 dout("readpages final extent is %llu~%llu (%llu bytes align %d)\n", 2287 dout("readpages final extent is %llu~%llu (%llu bytes align %d)\n",
@@ -2327,7 +2324,7 @@ int ceph_osdc_writepages(struct ceph_osd_client *osdc, struct ceph_vino vino,
2327 return PTR_ERR(req); 2324 return PTR_ERR(req);
2328 2325
2329 /* it may be a short write due to an object boundary */ 2326 /* it may be a short write due to an object boundary */
2330 osd_req_op_extent_osd_data_pages(req, 0, true, pages, len, page_align, 2327 osd_req_op_extent_osd_data_pages(req, 0, pages, len, page_align,
2331 false, false); 2328 false, false);
2332 dout("writepages %llu~%llu (%llu bytes)\n", off, len, len); 2329 dout("writepages %llu~%llu (%llu bytes)\n", off, len, len);
2333 2330
@@ -2428,7 +2425,7 @@ static struct ceph_msg *get_reply(struct ceph_connection *con,
2428 * XXX page data. Probably OK for reads, but this 2425 * XXX page data. Probably OK for reads, but this
2429 * XXX ought to be done more generally. 2426 * XXX ought to be done more generally.
2430 */ 2427 */
2431 osd_data = osd_req_op_extent_osd_data(req, 0, false); 2428 osd_data = osd_req_op_extent_osd_data(req, 0);
2432 if (osd_data->type == CEPH_OSD_DATA_TYPE_PAGES) { 2429 if (osd_data->type == CEPH_OSD_DATA_TYPE_PAGES) {
2433 if (osd_data->pages && 2430 if (osd_data->pages &&
2434 unlikely(osd_data->length < data_len)) { 2431 unlikely(osd_data->length < data_len)) {