]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
io_uring: replace s->needs_lock with s->in_async
authorJackie Liu <liuyun01@kylinos.cn>
Wed, 9 Oct 2019 01:19:59 +0000 (09:19 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 29 Oct 2019 16:22:47 +0000 (10:22 -0600)
There is no function change, just to clean up the code, use s->in_async
to make the code know where it is.

Signed-off-by: Jackie Liu <liuyun01@kylinos.cn>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index bc93bdfe40e29ac4b0dd8fbf6fcc0cc7611001a7..6bbca3d58941d2bd84ad5454390172d205fe5739 100644 (file)
@@ -271,7 +271,7 @@ struct sqe_submit {
        unsigned short                  index;
        u32                             sequence;
        bool                            has_user;
-       bool                            needs_lock;
+       bool                            in_async;
        bool                            needs_fixed_file;
 };
 
@@ -1474,13 +1474,9 @@ static int io_read(struct io_kiocb *req, const struct sqe_submit *s,
                        ret2 = -EAGAIN;
                /* Catch -EAGAIN return for forced non-blocking submission */
                if (!force_nonblock || ret2 != -EAGAIN) {
-                       kiocb_done(kiocb, ret2, nxt, s->needs_lock);
+                       kiocb_done(kiocb, ret2, nxt, s->in_async);
                } else {
-                       /*
-                        * If ->needs_lock is true, we're already in async
-                        * context.
-                        */
-                       if (!s->needs_lock)
+                       if (!s->in_async)
                                io_async_list_note(READ, req, iov_count);
                        ret = -EAGAIN;
                }
@@ -1518,8 +1514,7 @@ static int io_write(struct io_kiocb *req, const struct sqe_submit *s,
 
        ret = -EAGAIN;
        if (force_nonblock && !(kiocb->ki_flags & IOCB_DIRECT)) {
-               /* If ->needs_lock is true, we're already in async context. */
-               if (!s->needs_lock)
+               if (!s->in_async)
                        io_async_list_note(WRITE, req, iov_count);
                goto out_free;
        }
@@ -1548,13 +1543,9 @@ static int io_write(struct io_kiocb *req, const struct sqe_submit *s,
                else
                        ret2 = loop_rw_iter(WRITE, file, kiocb, &iter);
                if (!force_nonblock || ret2 != -EAGAIN) {
-                       kiocb_done(kiocb, ret2, nxt, s->needs_lock);
+                       kiocb_done(kiocb, ret2, nxt, s->in_async);
                } else {
-                       /*
-                        * If ->needs_lock is true, we're already in async
-                        * context.
-                        */
-                       if (!s->needs_lock)
+                       if (!s->in_async)
                                io_async_list_note(WRITE, req, iov_count);
                        ret = -EAGAIN;
                }
@@ -2152,10 +2143,10 @@ static int __io_submit_sqe(struct io_ring_ctx *ctx, struct io_kiocb *req,
                        return -EAGAIN;
 
                /* workqueue context doesn't hold uring_lock, grab it now */
-               if (s->needs_lock)
+               if (s->in_async)
                        mutex_lock(&ctx->uring_lock);
                io_iopoll_req_issued(req);
-               if (s->needs_lock)
+               if (s->in_async)
                        mutex_unlock(&ctx->uring_lock);
        }
 
@@ -2220,7 +2211,7 @@ static void io_sq_wq_submit_work(struct work_struct *work)
 
                if (!ret) {
                        s->has_user = cur_mm != NULL;
-                       s->needs_lock = true;
+                       s->in_async = true;
                        do {
                                ret = __io_submit_sqe(ctx, req, s, &nxt, false);
                                /*
@@ -2696,7 +2687,7 @@ static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr,
                                                -EFAULT);
                } else {
                        s.has_user = has_user;
-                       s.needs_lock = true;
+                       s.in_async = true;
                        s.needs_fixed_file = true;
                        io_submit_sqe(ctx, &s, statep, &link);
                        submitted++;
@@ -2883,7 +2874,7 @@ static int io_ring_submit(struct io_ring_ctx *ctx, unsigned int to_submit)
 
 out:
                s.has_user = true;
-               s.needs_lock = false;
+               s.in_async = false;
                s.needs_fixed_file = false;
                submit++;
                io_submit_sqe(ctx, &s, statep, &link);