diff options
| author | Ingo Molnar <mingo@kernel.org> | 2020-03-21 09:35:44 +0100 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2020-03-21 09:35:44 +0100 |
| commit | df10846ff2ac3b0a7b295be2de2e9215877982f3 (patch) | |
| tree | 9e5ff5583aa1547afd3c577815af81c2f328e288 /fs/fuse/dev.c | |
| parent | a4654e9bde4ecedb4921e6c8fe2088114bdff1b3 (diff) | |
| parent | 5ad0ec0b86525d0c5d3d250d3cfad7f183b00cfa (diff) | |
| download | lwn-df10846ff2ac3b0a7b295be2de2e9215877982f3.tar.gz lwn-df10846ff2ac3b0a7b295be2de2e9215877982f3.zip | |
Merge branch 'linus' into locking/kcsan, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'fs/fuse/dev.c')
| -rw-r--r-- | fs/fuse/dev.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index 8e02d76fe104..97eec7522bf2 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -276,12 +276,10 @@ static void flush_bg_queue(struct fuse_conn *fc) void fuse_request_end(struct fuse_conn *fc, struct fuse_req *req) { struct fuse_iqueue *fiq = &fc->iq; - bool async; if (test_and_set_bit(FR_FINISHED, &req->flags)) goto put_request; - async = req->args->end; /* * test_and_set_bit() implies smp_mb() between bit * changing and below intr_entry check. Pairs with @@ -324,7 +322,7 @@ void fuse_request_end(struct fuse_conn *fc, struct fuse_req *req) wake_up(&req->waitq); } - if (async) + if (test_bit(FR_ASYNC, &req->flags)) req->args->end(fc, req->args, req->out.h.error); put_request: fuse_put_request(fc, req); @@ -471,6 +469,8 @@ static void fuse_args_to_req(struct fuse_req *req, struct fuse_args *args) req->in.h.opcode = args->opcode; req->in.h.nodeid = args->nodeid; req->args = args; + if (args->end) + __set_bit(FR_ASYNC, &req->flags); } ssize_t fuse_simple_request(struct fuse_conn *fc, struct fuse_args *args) |
