mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
iomap: comment on atomic write checks in iomap_dio_bio_iter()
Help explain the code. Also clarify the comment for bio size check. Signed-off-by: John Garry <john.g.garry@oracle.com> Link: https://lore.kernel.org/r/20250320120250.4087011-3-john.g.garry@oracle.com Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
d279c80e0b
commit
aacd436e40
|
|
@ -350,6 +350,11 @@ static int iomap_dio_bio_iter(struct iomap_iter *iter, struct iomap_dio *dio)
|
|||
bio_opf |= REQ_OP_WRITE;
|
||||
|
||||
if (iter->flags & IOMAP_ATOMIC_HW) {
|
||||
/*
|
||||
* Ensure that the mapping covers the full write
|
||||
* length, otherwise it won't be submitted as a single
|
||||
* bio, which is required to use hardware atomics.
|
||||
*/
|
||||
if (length != iter->len)
|
||||
return -EINVAL;
|
||||
bio_opf |= REQ_ATOMIC;
|
||||
|
|
@ -449,7 +454,7 @@ static int iomap_dio_bio_iter(struct iomap_iter *iter, struct iomap_dio *dio)
|
|||
n = bio->bi_iter.bi_size;
|
||||
if (WARN_ON_ONCE((bio_opf & REQ_ATOMIC) && n != length)) {
|
||||
/*
|
||||
* This bio should have covered the complete length,
|
||||
* An atomic write bio must cover the complete length,
|
||||
* which it doesn't, so error. We may need to zero out
|
||||
* the tail (complete FS block), similar to when
|
||||
* bio_iov_iter_get_pages() returns an error, above.
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user