[Devel] [PATCH vz7 16/46] fuse: simplify req states
Maxim Patlasov
mpatlasov at virtuozzo.com
Fri Mar 24 19:18:28 PDT 2017
Backport from ml:
commit 7a3b2c754749c73b4a255b2a1070c24dba589098
Author: Miklos Szeredi <mszeredi at suse.cz>
Date: Wed Jul 1 16:26:00 2015 +0200
fuse: simplify req states
FUSE_REQ_INIT is actually the same state as FUSE_REQ_PENDING and
FUSE_REQ_READING and FUSE_REQ_WRITING can be merged into a common
FUSE_REQ_IO state.
Signed-off-by: Miklos Szeredi <mszeredi at suse.cz>
Reviewed-by: Ashish Samant <ashish.samant at oracle.com>
Signed-off-by: Maxim Patlasov <mpatlasov at virtuozzo.com>
---
fs/fuse/dev.c | 5 ++---
fs/fuse/file.c | 2 +-
fs/fuse/fuse_i.h | 6 ++----
3 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index 016a854..79bc649 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -310,7 +310,6 @@ static void queue_request(struct fuse_conn *fc, struct fuse_req *req)
req->in.h.len = sizeof(struct fuse_in_header) +
len_args(req->in.numargs, (struct fuse_arg *) req->in.args);
list_add_tail(&req->list, &fc->pending);
- req->state = FUSE_REQ_PENDING;
wake_up(&fc->waitq);
kill_fasync(&fc->fasync, SIGIO, POLL_IN);
}
@@ -1238,7 +1237,7 @@ static ssize_t fuse_dev_do_read(struct fuse_conn *fc, struct file *file,
}
req = list_entry(fc->pending.next, struct fuse_req, list);
- req->state = FUSE_REQ_READING;
+ req->state = FUSE_REQ_IO;
list_move(&req->list, &fc->io);
in = &req->in;
@@ -1903,7 +1902,7 @@ static ssize_t fuse_dev_do_write(struct fuse_conn *fc,
return nbytes;
}
- req->state = FUSE_REQ_WRITING;
+ req->state = FUSE_REQ_IO;
list_move(&req->list, &fc->io);
req->out.h = oh;
set_bit(FR_LOCKED, &req->flags);
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 503e35c..bdb0e49 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -163,7 +163,7 @@ static void fuse_file_put(struct fuse_file *ff, bool sync)
__clear_bit(FR_BACKGROUND, &req->flags);
fuse_request_send(ff->fc, req);
if (req->out.h.error == -EINTR) {
- req->state = FUSE_REQ_INIT;
+ req->state = FUSE_REQ_PENDING;
req->out.h.error = 0;
goto async_fallback;
}
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index b96b6e7..93deda7 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -260,11 +260,9 @@ struct fuse_page_desc {
/** The request state */
enum fuse_req_state {
- FUSE_REQ_INIT = 0,
- FUSE_REQ_PENDING,
- FUSE_REQ_READING,
+ FUSE_REQ_PENDING = 0,
+ FUSE_REQ_IO,
FUSE_REQ_SENT,
- FUSE_REQ_WRITING,
FUSE_REQ_FINISHED
};
More information about the Devel
mailing list