diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2015-07-01 10:26:04 -0400 |
---|---|---|
committer | Miklos Szeredi <mszeredi@suse.cz> | 2015-07-01 10:26:04 -0400 |
commit | f377cb799e4f667d743886ee025f9987cbb6cd12 (patch) | |
tree | 2eaed3f736caf0d1ce3b3e4125fcefaa001b2d2e | |
parent | e96edd94d0887707fc41c5d21d5b488edcd31689 (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.c | 8 |
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 | } |