From: Christoph Hellwig Date: Fri, 3 Jun 2016 13:42:17 +0000 (-0600) Subject: block: fix blk_rq_get_max_sectors for driver private requests X-Git-Tag: firefly_0821_release~176^2~4^2~31^2~77 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=f7cd8506b35cf5b357c25a6f052de61ff88a724e;p=firefly-linux-kernel-4.4.55.git block: fix blk_rq_get_max_sectors for driver private requests [ Upstream commit f21018427cb007a0894c36ad702990ab639cbbb4 ] Driver private request types should not get the artifical cap for the FS requests. This is important to use the full device capabilities for internal command or NVMe pass through commands. Signed-off-by: Christoph Hellwig Reported-by: Jeff Lien Tested-by: Jeff Lien Reviewed-by: Keith Busch Updated by me to use an explicit check for the one command type that does support extended checking, instead of relying on the ordering of the enum command values - as suggested by Keith. Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 168755791ec8..fe14382f9664 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -890,7 +890,7 @@ static inline unsigned int blk_rq_get_max_sectors(struct request *rq) { struct request_queue *q = rq->q; - if (unlikely(rq->cmd_type == REQ_TYPE_BLOCK_PC)) + if (unlikely(rq->cmd_type != REQ_TYPE_FS)) return q->limits.max_hw_sectors; if (!q->limits.chunk_sectors || (rq->cmd_flags & REQ_DISCARD))