diff options
author | Alex Elder <elder@inktank.com> | 2013-01-20 15:44:42 -0500 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-02-13 21:29:09 -0500 |
commit | 9f20e02a53b944a54a35b9f0db1243cd64872f7d (patch) | |
tree | 415489668f41d37ffaa0ef99699ee001f4ec140d /drivers/block | |
parent | 36be9a761844e186f629f463b665945df4f67766 (diff) |
rbd: get rid of rbd_req_sync_exec()
Get rid rbd_req_sync_exec() because it is no longer used. That
eliminates the last use of rbd_req_sync_op(), so get rid of that
too. And finally, that leaves rbd_do_request() unreferenced, so get
rid of that.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/rbd.c | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index d10649f2e346..4ea89917bb92 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c | |||
@@ -1162,126 +1162,6 @@ static void rbd_osd_req_op_destroy(struct ceph_osd_req_op *op) | |||
1162 | kfree(op); | 1162 | kfree(op); |
1163 | } | 1163 | } |
1164 | 1164 | ||
1165 | /* | ||
1166 | * Send ceph osd request | ||
1167 | */ | ||
1168 | static int rbd_do_request(struct request *rq, | ||
1169 | struct rbd_device *rbd_dev, | ||
1170 | struct ceph_snap_context *snapc, | ||
1171 | u64 snapid, | ||
1172 | const char *object_name, u64 ofs, u64 len, | ||
1173 | struct bio *bio, | ||
1174 | struct page **pages, | ||
1175 | int num_pages, | ||
1176 | int flags, | ||
1177 | struct ceph_osd_req_op *op, | ||
1178 | void (*rbd_cb)(struct ceph_osd_request *, | ||
1179 | struct ceph_msg *), | ||
1180 | u64 *ver) | ||
1181 | { | ||
1182 | struct ceph_osd_client *osdc; | ||
1183 | struct ceph_osd_request *osd_req; | ||
1184 | struct timespec mtime = CURRENT_TIME; | ||
1185 | int ret; | ||
1186 | |||
1187 | dout("rbd_do_request object_name=%s ofs=%llu len=%llu\n", | ||
1188 | object_name, (unsigned long long) ofs, | ||
1189 | (unsigned long long) len); | ||
1190 | |||
1191 | osdc = &rbd_dev->rbd_client->client->osdc; | ||
1192 | osd_req = ceph_osdc_alloc_request(osdc, snapc, 1, false, GFP_NOIO); | ||
1193 | if (!osd_req) | ||
1194 | return -ENOMEM; | ||
1195 | |||
1196 | osd_req->r_flags = flags; | ||
1197 | osd_req->r_pages = pages; | ||
1198 | if (bio) { | ||
1199 | osd_req->r_bio = bio; | ||
1200 | bio_get(osd_req->r_bio); | ||
1201 | } | ||
1202 | |||
1203 | osd_req->r_callback = rbd_cb; | ||
1204 | osd_req->r_priv = NULL; | ||
1205 | |||
1206 | strncpy(osd_req->r_oid, object_name, sizeof(osd_req->r_oid)); | ||
1207 | osd_req->r_oid_len = strlen(osd_req->r_oid); | ||
1208 | |||
1209 | osd_req->r_file_layout = rbd_dev->layout; /* struct */ | ||
1210 | osd_req->r_num_pages = calc_pages_for(ofs, len); | ||
1211 | osd_req->r_page_alignment = ofs & ~PAGE_MASK; | ||
1212 | |||
1213 | ceph_osdc_build_request(osd_req, ofs, len, 1, op, | ||
1214 | snapc, snapid, &mtime); | ||
1215 | |||
1216 | if (op->op == CEPH_OSD_OP_WATCH && op->watch.flag) { | ||
1217 | ceph_osdc_set_request_linger(osdc, osd_req); | ||
1218 | rbd_dev->watch_request = osd_req; | ||
1219 | } | ||
1220 | |||
1221 | ret = ceph_osdc_start_request(osdc, osd_req, false); | ||
1222 | if (ret < 0) | ||
1223 | goto done_err; | ||
1224 | |||
1225 | if (!rbd_cb) { | ||
1226 | u64 version; | ||
1227 | |||
1228 | ret = ceph_osdc_wait_request(osdc, osd_req); | ||
1229 | version = le64_to_cpu(osd_req->r_reassert_version.version); | ||
1230 | if (ver) | ||
1231 | *ver = version; | ||
1232 | dout("reassert_ver=%llu\n", (unsigned long long) version); | ||
1233 | ceph_osdc_put_request(osd_req); | ||
1234 | } | ||
1235 | return ret; | ||
1236 | |||
1237 | done_err: | ||
1238 | if (bio) | ||
1239 | bio_chain_put(osd_req->r_bio); | ||
1240 | ceph_osdc_put_request(osd_req); | ||
1241 | |||
1242 | return ret; | ||
1243 | } | ||
1244 | |||
1245 | /* | ||
1246 | * Do a synchronous ceph osd operation | ||
1247 | */ | ||
1248 | static int rbd_req_sync_op(struct rbd_device *rbd_dev, | ||
1249 | int flags, | ||
1250 | struct ceph_osd_req_op *op, | ||
1251 | const char *object_name, | ||
1252 | u64 ofs, u64 inbound_size, | ||
1253 | char *inbound, | ||
1254 | u64 *ver) | ||
1255 | { | ||
1256 | int ret; | ||
1257 | struct page **pages; | ||
1258 | int num_pages; | ||
1259 | |||
1260 | rbd_assert(op != NULL); | ||
1261 | |||
1262 | num_pages = calc_pages_for(ofs, inbound_size); | ||
1263 | pages = ceph_alloc_page_vector(num_pages, GFP_KERNEL); | ||
1264 | if (IS_ERR(pages)) | ||
1265 | return PTR_ERR(pages); | ||
1266 | |||
1267 | ret = rbd_do_request(NULL, rbd_dev, NULL, CEPH_NOSNAP, | ||
1268 | object_name, ofs, inbound_size, NULL, | ||
1269 | pages, num_pages, | ||
1270 | flags, | ||
1271 | op, | ||
1272 | NULL, | ||
1273 | ver); | ||
1274 | if (ret < 0) | ||
1275 | goto done; | ||
1276 | |||
1277 | if ((flags & CEPH_OSD_FLAG_READ) && inbound) | ||
1278 | ret = ceph_copy_from_page_vector(pages, inbound, ofs, ret); | ||
1279 | |||
1280 | done: | ||
1281 | ceph_release_page_vector(pages, num_pages); | ||
1282 | return ret; | ||
1283 | } | ||
1284 | |||
1285 | static int rbd_obj_request_submit(struct ceph_osd_client *osdc, | 1165 | static int rbd_obj_request_submit(struct ceph_osd_client *osdc, |
1286 | struct rbd_obj_request *obj_request) | 1166 | struct rbd_obj_request *obj_request) |
1287 | { | 1167 | { |
@@ -1317,45 +1197,6 @@ static void rbd_obj_request_complete(struct rbd_obj_request *obj_request) | |||
1317 | complete_all(&obj_request->completion); | 1197 | complete_all(&obj_request->completion); |
1318 | } | 1198 | } |
1319 | 1199 | ||
1320 | /* | ||
1321 | * Synchronous osd object method call | ||
1322 | */ | ||
1323 | static int rbd_req_sync_exec(struct rbd_device *rbd_dev, | ||
1324 | const char *object_name, | ||
1325 | const char *class_name, | ||
1326 | const char *method_name, | ||
1327 | const char *outbound, | ||
1328 | size_t outbound_size, | ||
1329 | char *inbound, | ||
1330 | size_t inbound_size, | ||
1331 | u64 *ver) | ||
1332 | { | ||
1333 | struct ceph_osd_req_op *op; | ||
1334 | int ret; | ||
1335 | |||
1336 | /* | ||
1337 | * Any input parameters required by the method we're calling | ||
1338 | * will be sent along with the class and method names as | ||
1339 | * part of the message payload. That data and its size are | ||
1340 | * supplied via the indata and indata_len fields (named from | ||
1341 | * the perspective of the server side) in the OSD request | ||
1342 | * operation. | ||
1343 | */ | ||
1344 | op = rbd_osd_req_op_create(CEPH_OSD_OP_CALL, class_name, | ||
1345 | method_name, outbound, outbound_size); | ||
1346 | if (!op) | ||
1347 | return -ENOMEM; | ||
1348 | |||
1349 | ret = rbd_req_sync_op(rbd_dev, CEPH_OSD_FLAG_READ, op, | ||
1350 | object_name, 0, inbound_size, inbound, | ||
1351 | ver); | ||
1352 | |||
1353 | rbd_osd_req_op_destroy(op); | ||
1354 | |||
1355 | dout("cls_exec returned %d\n", ret); | ||
1356 | return ret; | ||
1357 | } | ||
1358 | |||
1359 | static void rbd_osd_read_callback(struct rbd_obj_request *obj_request, | 1200 | static void rbd_osd_read_callback(struct rbd_obj_request *obj_request, |
1360 | struct ceph_osd_op *op) | 1201 | struct ceph_osd_op *op) |
1361 | { | 1202 | { |
@@ -2831,7 +2672,6 @@ static int _rbd_dev_v2_snap_size(struct rbd_device *rbd_dev, u64 snap_id, | |||
2831 | __le64 size; | 2672 | __le64 size; |
2832 | } __attribute__ ((packed)) size_buf = { 0 }; | 2673 | } __attribute__ ((packed)) size_buf = { 0 }; |
2833 | 2674 | ||
2834 | (void) rbd_req_sync_exec; /* Avoid a warning */ | ||
2835 | ret = rbd_obj_method_sync(rbd_dev, rbd_dev->header_name, | 2675 | ret = rbd_obj_method_sync(rbd_dev, rbd_dev->header_name, |
2836 | "rbd", "get_size", | 2676 | "rbd", "get_size", |
2837 | (char *) &snapid, sizeof (snapid), | 2677 | (char *) &snapid, sizeof (snapid), |