VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   32 Branches   54 Tags
author: Pavel Begunkov <asml.silence@gmail.com> 2021-01-09 16:02:59 +0000 committer: Jens Axboe <axboe@kernel.dk> 2021-01-25 08:58:24 -0700 commit: 0cf41e5e9bafc185490624c3e321c915885a91f3 parent: 9b2e0016d04c6542ace0128eb82ecb3b10c97e43
Commit Summary:
block/psi: remove PSI annotations from direct IO
Diffstat:
1 file changed, 5 insertions, 0 deletions
diff --git a/block/bio.c b/block/bio.c
index 56a06f94fb63..1cd8a2e79048 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -1081,6 +1081,9 @@ static int __bio_iov_append_get_pages(struct bio *bio, struct iov_iter *iter)
  * fit into the bio, or are requested in @iter, whatever is smaller. If
  * MM encounters an error pinning the requested pages, it stops. Error
  * is returned only if 0 pages could be pinned.
+ *
+ * It's intended for direct IO, so doesn't do PSI tracking, the caller is
+ * responsible for setting BIO_WORKINGSET if necessary.
  */
 int bio_iov_iter_get_pages(struct bio *bio, struct iov_iter *iter)
 {
@@ -1105,6 +1108,9 @@ int bio_iov_iter_get_pages(struct bio *bio, struct iov_iter *iter)
 
 	if (is_bvec)
 		bio_set_flag(bio, BIO_NO_PAGE_REF);
+
+	/* don't account direct I/O as memory stall */
+	bio_clear_flag(bio, BIO_WORKINGSET);
 	return bio->bi_vcnt ? 0 : ret;
 }
 EXPORT_SYMBOL_GPL(bio_iov_iter_get_pages);