Lines Matching defs:req

104 static void nbd_end_request(struct request *req)
106 int error = req->errors ? -EIO : 0;
107 struct request_queue *q = req->q;
110 dprintk(DBG_BLKDEV, "%s: request %p: %s\n", req->rq_disk->disk_name,
111 req, error ? "failed" : "done");
114 __blk_end_request_all(req, error);
233 static int nbd_send_req(struct nbd_device *nbd, struct request *req)
237 unsigned long size = blk_rq_bytes(req);
240 request.type = htonl(nbd_cmd(req));
241 request.from = cpu_to_be64((u64)blk_rq_pos(req) << 9);
243 memcpy(request.handle, &req, sizeof(req));
246 nbd->disk->disk_name, req,
247 nbdcmd_to_ascii(nbd_cmd(req)),
248 (unsigned long long)blk_rq_pos(req) << 9,
249 blk_rq_bytes(req));
251 (nbd_cmd(req) == NBD_CMD_WRITE) ? MSG_MORE : 0);
258 if (nbd_cmd(req) == NBD_CMD_WRITE) {
265 rq_for_each_segment(bvec, req, iter) {
267 if (!rq_iter_last(req, iter))
270 nbd->disk->disk_name, req, bvec->bv_len);
289 struct request *req, *tmp;
297 list_for_each_entry_safe(req, tmp, &nbd->queue_head, queuelist) {
298 if (req != xreq)
300 list_del_init(&req->queuelist);
302 return req;
327 struct request *req;
344 req = nbd_find_request(nbd, *(struct request **)reply.handle);
345 if (IS_ERR(req)) {
346 result = PTR_ERR(req);
359 req->errors++;
360 return req;
364 nbd->disk->disk_name, req);
365 if (nbd_cmd(req) == NBD_CMD_READ) {
369 rq_for_each_segment(bvec, req, iter) {
374 req->errors++;
375 return req;
378 nbd->disk->disk_name, req, bvec->bv_len);
381 return req;
403 struct request *req;
416 while ((req = nbd_read_stat(nbd)) != NULL)
417 nbd_end_request(req);
426 struct request *req;
442 req = list_entry(nbd->queue_head.next, struct request,
444 list_del_init(&req->queuelist);
445 req->errors++;
446 nbd_end_request(req);
451 static void nbd_handle_req(struct nbd_device *nbd, struct request *req)
453 if (req->cmd_type != REQ_TYPE_FS)
456 nbd_cmd(req) = NBD_CMD_READ;
457 if (rq_data_dir(req) == WRITE) {
458 nbd_cmd(req) = NBD_CMD_WRITE;
466 req->errors = 0;
476 nbd->active_req = req;
478 if (nbd_send_req(nbd, req) != 0) {
480 req->errors++;
481 nbd_end_request(req);
484 list_add(&req->queuelist, &nbd->queue_head);
495 req->errors++;
496 nbd_end_request(req);
502 struct request *req;
516 req = list_entry(nbd->waiting_queue.next, struct request,
518 list_del_init(&req->queuelist);
522 nbd_handle_req(nbd, req);
530 * if ((rq_data_dir(req) == WRITE) && (nbd->flags & NBD_WRITE_NOCHK))
531 * { printk( "Warning: Ignoring result!\n"); nbd_end_request( req ); }
536 struct request *req;
538 while ((req = blk_fetch_request(q)) != NULL) {
544 req->rq_disk->disk_name, req, req->cmd_type);
546 nbd = req->rq_disk->private_data;
553 req->errors++;
554 nbd_end_request(req);
560 list_add_tail(&req->queuelist, &nbd->waiting_queue);