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@suse.cz>
Reviewed-by: Ashish Samant <ashish.samant@oracle.com>
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index 638aafd..e5c541b 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -327,7 +327,6 @@
 	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 @@
 	}
 
 	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 @@
 		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 bf27226..d0c23d0 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -1743,8 +1743,7 @@
 		}
 	}
 
-	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);
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index 7257adb..3fd65f61 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -243,11 +243,9 @@
 
 /** 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
 };