iomap: support REQ_OP_ZONE_APPEND
authorNaohiro Aota <naohiro.aota@wdc.com>
Thu, 4 Feb 2021 10:21:41 +0000 (19:21 +0900)
committerDavid Sterba <dsterba@suse.com>
Mon, 8 Feb 2021 23:52:19 +0000 (00:52 +0100)
commitc3b0e880bbfafab6beed92b1ee6db2cdaf4bc54c
treefbcaa3845b00376fada539356d4bf43328d1ac3c
parentae29333fa644679b96d88c9dd3afbef25cbac0f6
iomap: support REQ_OP_ZONE_APPEND

A ZONE_APPEND bio must follow hardware restrictions (e.g. not exceeding
max_zone_append_sectors) not to be split. bio_iov_iter_get_pages builds
such restricted bio using __bio_iov_append_get_pages if bio_op(bio) ==
REQ_OP_ZONE_APPEND.

To utilize it, we need to set the bio_op before calling
bio_iov_iter_get_pages(). This commit introduces IOMAP_F_ZONE_APPEND, so
that iomap user can set the flag to indicate they want REQ_OP_ZONE_APPEND
and restricted bio.

Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/iomap/direct-io.c
include/linux/iomap.h