From: George Kennedy <george.kennedy@oracle.com>
To: gregkh@linuxfoundation.org, axboe@kernel.dk, asml.silence@gmail.com
Cc: george.kennedy@oracle.com, linux-block@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH 1/2] Revert "block: avoid extra iter advance with async iocb"
Date: Tue, 7 Dec 2021 10:51:41 -0500 [thread overview]
Message-ID: <1638892302-14475-2-git-send-email-george.kennedy@oracle.com> (raw)
In-Reply-To: <1638892302-14475-1-git-send-email-george.kennedy@oracle.com>
This reverts commit 1bb6b81029456f4e2e6727c5167f43bdfc34bee5.
Revert this commit in order to be able to revert
commit 54a88eb838d3 ("block: add single bio async direct IO helper")
Reported-by: syzkaller <syzkaller@googlegroups.com>
Signed-off-by: George Kennedy <george.kennedy@oracle.com>
---
block/bio.c | 2 +-
block/fops.c | 20 +++++---------------
include/linux/bio.h | 1 -
3 files changed, 6 insertions(+), 17 deletions(-)
diff --git a/block/bio.c b/block/bio.c
index 15ab0d6..ead1f8a 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -1046,7 +1046,7 @@ void __bio_release_pages(struct bio *bio, bool mark_dirty)
}
EXPORT_SYMBOL_GPL(__bio_release_pages);
-void bio_iov_bvec_set(struct bio *bio, struct iov_iter *iter)
+static void bio_iov_bvec_set(struct bio *bio, struct iov_iter *iter)
{
size_t size = iov_iter_count(iter);
diff --git a/block/fops.c b/block/fops.c
index ad732a3..e73167b 100644
--- a/block/fops.c
+++ b/block/fops.c
@@ -329,21 +329,11 @@ static ssize_t __blkdev_direct_IO_async(struct kiocb *iocb,
bio->bi_end_io = blkdev_bio_end_io_async;
bio->bi_ioprio = iocb->ki_ioprio;
- if (iov_iter_is_bvec(iter)) {
- /*
- * Users don't rely on the iterator being in any particular
- * state for async I/O returning -EIOCBQUEUED, hence we can
- * avoid expensive iov_iter_advance(). Bypass
- * bio_iov_iter_get_pages() and set the bvec directly.
- */
- bio_iov_bvec_set(bio, iter);
- } else {
- ret = bio_iov_iter_get_pages(bio, iter);
- if (unlikely(ret)) {
- bio->bi_status = BLK_STS_IOERR;
- bio_endio(bio);
- return ret;
- }
+ ret = bio_iov_iter_get_pages(bio, iter);
+ if (unlikely(ret)) {
+ bio->bi_status = BLK_STS_IOERR;
+ bio_endio(bio);
+ return ret;
}
dio->size = bio->bi_iter.bi_size;
diff --git a/include/linux/bio.h b/include/linux/bio.h
index fe6bdfb..c88700d 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -417,7 +417,6 @@ int bio_add_zone_append_page(struct bio *bio, struct page *page,
void __bio_add_page(struct bio *bio, struct page *page,
unsigned int len, unsigned int off);
int bio_iov_iter_get_pages(struct bio *bio, struct iov_iter *iter);
-void bio_iov_bvec_set(struct bio *bio, struct iov_iter *iter);
void __bio_release_pages(struct bio *bio, bool mark_dirty);
extern void bio_set_pages_dirty(struct bio *bio);
extern void bio_check_pages_dirty(struct bio *bio);
--
1.8.3.1
next prev parent reply other threads:[~2021-12-07 15:53 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-07 15:51 [PATCH 0/2] Revert "block: add single bio async direct IO helper" to avoid UAF George Kennedy
2021-12-07 15:51 ` George Kennedy [this message]
2021-12-07 15:51 ` [PATCH 2/2] Revert "block: add single bio async direct IO helper" George Kennedy
2021-12-07 17:36 ` [PATCH 0/2] Revert "block: add single bio async direct IO helper" to avoid UAF Pavel Begunkov
2021-12-07 18:09 ` George Kennedy
2021-12-07 18:11 ` Pavel Begunkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1638892302-14475-2-git-send-email-george.kennedy@oracle.com \
--to=george.kennedy@oracle.com \
--cc=asml.silence@gmail.com \
--cc=axboe@kernel.dk \
--cc=gregkh@linuxfoundation.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.