iov_iter: move iter_ubuf check inside restore WARN
authorKeith Busch <kbusch@kernel.org>
Thu, 5 Jan 2023 19:07:33 +0000 (11:07 -0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 9 Jan 2023 03:59:17 +0000 (20:59 -0700)
io_uring is using iter_ubuf types for single vector requests. We expect
state restore may happen for this type now, and it is already handled
correctly, so suppress the warning.

Signed-off-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Reviewed-by: Christoph Hellwig <hch@lst.de>
lib/iov_iter.c

index f036760b66e2d6d6b669e4ca5f20c9da88d068fe..d9b3332c8405668cedf42373411fd2880f6d26ad 100644 (file)
@@ -1902,8 +1902,8 @@ int import_ubuf(int rw, void __user *buf, size_t len, struct iov_iter *i)
  */
 void iov_iter_restore(struct iov_iter *i, struct iov_iter_state *state)
 {
-       if (WARN_ON_ONCE(!iov_iter_is_bvec(i) && !iter_is_iovec(i)) &&
-                        !iov_iter_is_kvec(i) && !iter_is_ubuf(i))
+       if (WARN_ON_ONCE(!iov_iter_is_bvec(i) && !iter_is_iovec(i) &&
+                        !iter_is_ubuf(i)) && !iov_iter_is_kvec(i))
                return;
        i->iov_offset = state->iov_offset;
        i->count = state->count;