dm-mpath.c (4813577f932050f33c29e2a35a01431814437700) dm-mpath.c (6599c84e4ce6e428180f9958c7c40aa4202d8072)
1/*
2 * Copyright (C) 2003 Sistina Software Limited.
3 * Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved.
4 *
5 * This file is released under the GPL.
6 */
7
8#include <linux/device-mapper.h>

--- 566 unchanged lines hidden (view full) ---

575 clone->rq_disk = bdev->bd_disk;
576 clone->cmd_flags |= REQ_FAILFAST_TRANSPORT;
577 } else {
578 /*
579 * blk-mq request-based interface; used by both:
580 * .request_fn stacked on blk-mq path(s) and
581 * blk-mq stacked on blk-mq path(s).
582 */
1/*
2 * Copyright (C) 2003 Sistina Software Limited.
3 * Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved.
4 *
5 * This file is released under the GPL.
6 */
7
8#include <linux/device-mapper.h>

--- 566 unchanged lines hidden (view full) ---

575 clone->rq_disk = bdev->bd_disk;
576 clone->cmd_flags |= REQ_FAILFAST_TRANSPORT;
577 } else {
578 /*
579 * blk-mq request-based interface; used by both:
580 * .request_fn stacked on blk-mq path(s) and
581 * blk-mq stacked on blk-mq path(s).
582 */
583 *__clone = blk_mq_alloc_request(bdev_get_queue(bdev),
584 rq_data_dir(rq), BLK_MQ_REQ_NOWAIT);
585 if (IS_ERR(*__clone)) {
586 /* ENOMEM, requeue */
583 clone = blk_mq_alloc_request(bdev_get_queue(bdev),
584 rq_data_dir(rq), BLK_MQ_REQ_NOWAIT);
585 if (IS_ERR(clone)) {
586 /* EBUSY, ENODEV or EWOULDBLOCK: requeue */
587 clear_request_fn_mpio(m, map_context);
588 return r;
589 }
587 clear_request_fn_mpio(m, map_context);
588 return r;
589 }
590 (*__clone)->bio = (*__clone)->biotail = NULL;
591 (*__clone)->rq_disk = bdev->bd_disk;
592 (*__clone)->cmd_flags |= REQ_FAILFAST_TRANSPORT;
590 clone->bio = clone->biotail = NULL;
591 clone->rq_disk = bdev->bd_disk;
592 clone->cmd_flags |= REQ_FAILFAST_TRANSPORT;
593 *__clone = clone;
593 }
594
595 if (pgpath->pg->ps.type->start_io)
596 pgpath->pg->ps.type->start_io(&pgpath->pg->ps,
597 &pgpath->path,
598 nr_bytes);
599 return DM_MAPIO_REMAPPED;
600}

--- 1537 unchanged lines hidden ---
594 }
595
596 if (pgpath->pg->ps.type->start_io)
597 pgpath->pg->ps.type->start_io(&pgpath->pg->ps,
598 &pgpath->path,
599 nr_bytes);
600 return DM_MAPIO_REMAPPED;
601}

--- 1537 unchanged lines hidden ---