Revert "io_uring: add zc notification flush requests"
authorPavel Begunkov <asml.silence@gmail.com>
Thu, 1 Sep 2022 10:54:01 +0000 (11:54 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 1 Sep 2022 15:13:33 +0000 (09:13 -0600)
This reverts commit 492dddb4f6e3a5839c27d41ff1fecdbe6c3ab851.

Soon we won't have the very notion of notification flushing, so remove
notification flushing requests.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/8850334ca56e65b413cb34fd158db81d7b2865a3.1662027856.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/uapi/linux/io_uring.h
io_uring/rsrc.c

index 9e0b5c8..18ae5ca 100644 (file)
@@ -301,7 +301,6 @@ enum io_uring_op {
  */
 enum {
        IORING_RSRC_UPDATE_FILES,
-       IORING_RSRC_UPDATE_NOTIF,
 };
 
 /*
index 71359a4..048f748 100644 (file)
@@ -15,7 +15,6 @@
 #include "io_uring.h"
 #include "openclose.h"
 #include "rsrc.h"
-#include "notif.h"
 
 struct io_rsrc_update {
        struct file                     *file;
@@ -741,41 +740,6 @@ static int io_files_update(struct io_kiocb *req, unsigned int issue_flags)
        return IOU_OK;
 }
 
-static int io_notif_update(struct io_kiocb *req, unsigned int issue_flags)
-{
-       struct io_rsrc_update *up = io_kiocb_to_cmd(req, struct io_rsrc_update);
-       struct io_ring_ctx *ctx = req->ctx;
-       unsigned len = up->nr_args;
-       unsigned idx_end, idx = up->offset;
-       int ret = 0;
-
-       io_ring_submit_lock(ctx, issue_flags);
-       if (unlikely(check_add_overflow(idx, len, &idx_end))) {
-               ret = -EOVERFLOW;
-               goto out;
-       }
-       if (unlikely(idx_end > ctx->nr_notif_slots)) {
-               ret = -EINVAL;
-               goto out;
-       }
-
-       for (; idx < idx_end; idx++) {
-               struct io_notif_slot *slot = &ctx->notif_slots[idx];
-
-               if (!slot->notif)
-                       continue;
-               if (up->arg)
-                       slot->tag = up->arg;
-               io_notif_slot_flush_submit(slot, issue_flags);
-       }
-out:
-       io_ring_submit_unlock(ctx, issue_flags);
-       if (ret < 0)
-               req_set_fail(req);
-       io_req_set_res(req, ret, 0);
-       return IOU_OK;
-}
-
 int io_rsrc_update(struct io_kiocb *req, unsigned int issue_flags)
 {
        struct io_rsrc_update *up = io_kiocb_to_cmd(req, struct io_rsrc_update);
@@ -783,8 +747,6 @@ int io_rsrc_update(struct io_kiocb *req, unsigned int issue_flags)
        switch (up->type) {
        case IORING_RSRC_UPDATE_FILES:
                return io_files_update(req, issue_flags);
-       case IORING_RSRC_UPDATE_NOTIF:
-               return io_notif_update(req, issue_flags);
        }
        return -EINVAL;
 }