• B
    block: Document how blk_update_request() handles RQF_SPECIAL_PAYLOAD requests · 1954e9a9
    Bart Van Assche 提交于
    The payload of struct request is stored in the request.bio chain if
    the RQF_SPECIAL_PAYLOAD flag is not set and in request.special_vec if
    RQF_SPECIAL_PAYLOAD has been set. However, blk_update_request()
    iterates over req->bio whether or not RQF_SPECIAL_PAYLOAD has been
    set. Additionally, the RQF_SPECIAL_PAYLOAD flag is ignored by
    blk_rq_bytes() which means that the value returned by that function
    is incorrect if the RQF_SPECIAL_PAYLOAD flag has been set. It is not
    clear to me whether this is an oversight or whether this happened on
    purpose. Anyway, document that it is known that both functions ignore
    RQF_SPECIAL_PAYLOAD. See also commit f9d03f96 ("block: improve
    handling of the magic discard payload").
    Reviewed-by: NChristoph Hellwig <hch@lst.de>
    Signed-off-by: NBart Van Assche <bart.vanassche@wdc.com>
    Cc: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    1954e9a9
blk-core.c 104.9 KB