fuse: simplify req states
authorMiklos Szeredi <mszeredi@suse.cz>
Wed, 1 Jul 2015 14:26:00 +0000 (16:26 +0200)
committerMiklos Szeredi <mszeredi@suse.cz>
Wed, 1 Jul 2015 14:26:00 +0000 (16:26 +0200)
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@suse.cz>
Reviewed-by: Ashish Samant <ashish.samant@oracle.com>
fs/fuse/dev.c
fs/fuse/file.c
fs/fuse/fuse_i.h

index 638aafde6e22c5c9b5ec2721168a37f339b69770..e5c541b7c7af268ad9ee4c2983e748c59d84d46b 100644 (file)
@@ -327,7 +327,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);
 }
@@ -1274,7 +1273,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;
@@ -1905,7 +1904,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);
index bf272263c1a27edd3feb3aeea86571f7aa726c04..d0c23d075427f2eeaf00625778bd2310ea5a04af 100644 (file)
@@ -1743,8 +1743,7 @@ static bool fuse_writepage_in_flight(struct fuse_req *new_req,
                }
        }
 
-       if (old_req->num_pages == 1 && (old_req->state == FUSE_REQ_INIT ||
-                                       old_req->state == FUSE_REQ_PENDING)) {
+       if (old_req->num_pages == 1 && old_req->state == FUSE_REQ_PENDING) {
                struct backing_dev_info *bdi = inode_to_bdi(page->mapping->host);
 
                copy_highpage(old_req->pages[0], page);
index 7257adba7ecdad77a6017c8a0dca82e75742af4b..3fd65f613515fa2927ab71e699e811fb2ca7c5e8 100644 (file)
@@ -243,11 +243,9 @@ struct fuse_args {
 
 /** 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
 };