aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2015-07-01 10:26:04 -0400
committerMiklos Szeredi <mszeredi@suse.cz>2015-07-01 10:26:04 -0400
commitf377cb799e4f667d743886ee025f9987cbb6cd12 (patch)
tree2eaed3f736caf0d1ce3b3e4125fcefaa001b2d2e
parente96edd94d0887707fc41c5d21d5b488edcd31689 (diff)
fuse: move list_del_init() from request_end() into callers
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
-rw-r--r--fs/fuse/dev.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index 6321d761c3c3..98568bd2d81b 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -385,7 +385,6 @@ __releases(fc->lock)
385 struct fuse_iqueue *fiq = &fc->iq; 385 struct fuse_iqueue *fiq = &fc->iq;
386 void (*end) (struct fuse_conn *, struct fuse_req *) = req->end; 386 void (*end) (struct fuse_conn *, struct fuse_req *) = req->end;
387 req->end = NULL; 387 req->end = NULL;
388 list_del_init(&req->list);
389 spin_lock(&fiq->waitq.lock); 388 spin_lock(&fiq->waitq.lock);
390 list_del_init(&req->intr_entry); 389 list_del_init(&req->intr_entry);
391 spin_unlock(&fiq->waitq.lock); 390 spin_unlock(&fiq->waitq.lock);
@@ -1291,6 +1290,7 @@ static ssize_t fuse_dev_do_read(struct fuse_conn *fc, struct file *file,
1291 /* SETXATTR is special, since it may contain too large data */ 1290 /* SETXATTR is special, since it may contain too large data */
1292 if (in->h.opcode == FUSE_SETXATTR) 1291 if (in->h.opcode == FUSE_SETXATTR)
1293 req->out.h.error = -E2BIG; 1292 req->out.h.error = -E2BIG;
1293 list_del_init(&req->list);
1294 request_end(fc, req); 1294 request_end(fc, req);
1295 goto restart; 1295 goto restart;
1296 } 1296 }
@@ -1304,15 +1304,18 @@ static ssize_t fuse_dev_do_read(struct fuse_conn *fc, struct file *file,
1304 spin_lock(&fc->lock); 1304 spin_lock(&fc->lock);
1305 clear_bit(FR_LOCKED, &req->flags); 1305 clear_bit(FR_LOCKED, &req->flags);
1306 if (!fpq->connected) { 1306 if (!fpq->connected) {
1307 list_del_init(&req->list);
1307 request_end(fc, req); 1308 request_end(fc, req);
1308 return -ENODEV; 1309 return -ENODEV;
1309 } 1310 }
1310 if (err) { 1311 if (err) {
1311 req->out.h.error = -EIO; 1312 req->out.h.error = -EIO;
1313 list_del_init(&req->list);
1312 request_end(fc, req); 1314 request_end(fc, req);
1313 return err; 1315 return err;
1314 } 1316 }
1315 if (!test_bit(FR_ISREPLY, &req->flags)) { 1317 if (!test_bit(FR_ISREPLY, &req->flags)) {
1318 list_del_init(&req->list);
1316 request_end(fc, req); 1319 request_end(fc, req);
1317 } else { 1320 } else {
1318 list_move_tail(&req->list, &fpq->processing); 1321 list_move_tail(&req->list, &fpq->processing);
@@ -1932,6 +1935,7 @@ static ssize_t fuse_dev_do_write(struct fuse_conn *fc,
1932 err = -ENOENT; 1935 err = -ENOENT;
1933 else if (err) 1936 else if (err)
1934 req->out.h.error = -EIO; 1937 req->out.h.error = -EIO;
1938 list_del_init(&req->list);
1935 request_end(fc, req); 1939 request_end(fc, req);
1936 1940
1937 return err ? err : nbytes; 1941 return err ? err : nbytes;
@@ -2073,6 +2077,7 @@ __acquires(fc->lock)
2073 req->out.h.error = -ECONNABORTED; 2077 req->out.h.error = -ECONNABORTED;
2074 clear_bit(FR_PENDING, &req->flags); 2078 clear_bit(FR_PENDING, &req->flags);
2075 clear_bit(FR_SENT, &req->flags); 2079 clear_bit(FR_SENT, &req->flags);
2080 list_del_init(&req->list);
2076 request_end(fc, req); 2081 request_end(fc, req);
2077 spin_lock(&fc->lock); 2082 spin_lock(&fc->lock);
2078 } 2083 }
@@ -2150,6 +2155,7 @@ void fuse_abort_conn(struct fuse_conn *fc)
2150 while (!list_empty(&to_end1)) { 2155 while (!list_empty(&to_end1)) {
2151 req = list_first_entry(&to_end1, struct fuse_req, list); 2156 req = list_first_entry(&to_end1, struct fuse_req, list);
2152 __fuse_get_request(req); 2157 __fuse_get_request(req);
2158 list_del_init(&req->list);
2153 request_end(fc, req); 2159 request_end(fc, req);
2154 spin_lock(&fc->lock); 2160 spin_lock(&fc->lock);
2155 } 2161 }