diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2022-08-03 13:50:22 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2022-08-03 13:50:22 -0700 |
commit | 5264406cdb66c7003eb3edf53c9773b1b20611b9 (patch) | |
tree | e94f76f64a0b3b45dcb9f9bec85cce2ba78e1221 /fs/zonefs | |
parent | 200e340f2196d7fd427a5810d06e893b932f145a (diff) | |
parent | dd45ab9dd28c82fc495d98cd9788666fd8d76b99 (diff) | |
download | lwn-5264406cdb66c7003eb3edf53c9773b1b20611b9.tar.gz lwn-5264406cdb66c7003eb3edf53c9773b1b20611b9.zip |
Merge tag 'pull-work.iov_iter-base' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs iov_iter updates from Al Viro:
"Part 1 - isolated cleanups and optimizations.
One of the goals is to reduce the overhead of using ->read_iter() and
->write_iter() instead of ->read()/->write().
new_sync_{read,write}() has a surprising amount of overhead, in
particular inside iocb_flags(). That's the explanation for the
beginning of the series is in this pile; it's not directly
iov_iter-related, but it's a part of the same work..."
* tag 'pull-work.iov_iter-base' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
first_iovec_segment(): just return address
iov_iter: massage calling conventions for first_{iovec,bvec}_segment()
iov_iter: first_{iovec,bvec}_segment() - simplify a bit
iov_iter: lift dealing with maxpages out of first_{iovec,bvec}_segment()
iov_iter_get_pages{,_alloc}(): cap the maxsize with MAX_RW_COUNT
iov_iter_bvec_advance(): don't bother with bvec_iter
copy_page_{to,from}_iter(): switch iovec variants to generic
keep iocb_flags() result cached in struct file
iocb: delay evaluation of IS_SYNC(...) until we want to check IOCB_DSYNC
struct file: use anonymous union member for rcuhead and llist
btrfs: use IOMAP_DIO_NOSYNC
teach iomap_dio_rw() to suppress dsync
No need of likely/unlikely on calls of check_copy_size()
Diffstat (limited to 'fs/zonefs')
-rw-r--r-- | fs/zonefs/super.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c index c5fa8adfb7a6..fcdc4bad95c5 100644 --- a/fs/zonefs/super.c +++ b/fs/zonefs/super.c @@ -779,7 +779,7 @@ static ssize_t zonefs_file_dio_append(struct kiocb *iocb, struct iov_iter *from) REQ_OP_ZONE_APPEND | REQ_SYNC | REQ_IDLE, GFP_NOFS); bio->bi_iter.bi_sector = zi->i_zsector; bio->bi_ioprio = iocb->ki_ioprio; - if (iocb->ki_flags & IOCB_DSYNC) + if (iocb_is_dsync(iocb)) bio->bi_opf |= REQ_FUA; ret = bio_iov_iter_get_pages(bio, from); |