Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- fs/fuse/dev.c | 89 +++++++++++++++++++++++++-----------------------
- fs/fuse/fuse_i.h | 3 ++
- fs/fuse/inode.c | 1 +
- 3 files changed, 50 insertions(+), 43 deletions(-)
+ fs/fuse/dev.c | 91 ++++++++++++++++++++++++++++---------------------------
+ fs/fuse/fuse_i.h | 3 +
+ fs/fuse/inode.c | 1
+ 3 files changed, 51 insertions(+), 44 deletions(-)
-diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
-index 6ee471b72a34d..c0d59a86ada2e 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
-@@ -331,7 +331,7 @@ static void queue_request(struct fuse_iqueue *fiq, struct fuse_req *req)
+@@ -331,7 +331,7 @@ static void queue_request(struct fuse_iq
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, &fiq->pending);
kill_fasync(&fiq->fasync, SIGIO, POLL_IN);
}
-@@ -343,16 +343,16 @@ void fuse_queue_forget(struct fuse_conn *fc, struct fuse_forget_link *forget,
+@@ -343,16 +343,16 @@ void fuse_queue_forget(struct fuse_conn
forget->forget_one.nodeid = nodeid;
forget->forget_one.nlookup = nlookup;
}
static void flush_bg_queue(struct fuse_conn *fc)
-@@ -365,10 +365,10 @@ static void flush_bg_queue(struct fuse_conn *fc)
+@@ -365,10 +365,10 @@ static void flush_bg_queue(struct fuse_c
req = list_entry(fc->bg_queue.next, struct fuse_req, list);
list_del(&req->list);
fc->active_background++;
}
}
-@@ -387,9 +387,9 @@ static void request_end(struct fuse_conn *fc, struct fuse_req *req)
+@@ -387,9 +387,9 @@ static void request_end(struct fuse_conn
if (test_and_set_bit(FR_FINISHED, &req->flags))
goto put_request;
WARN_ON(test_bit(FR_PENDING, &req->flags));
WARN_ON(test_bit(FR_SENT, &req->flags));
if (test_bit(FR_BACKGROUND, &req->flags)) {
-@@ -427,16 +427,16 @@ static void request_end(struct fuse_conn *fc, struct fuse_req *req)
+@@ -427,16 +427,16 @@ put_request:
static void queue_interrupt(struct fuse_iqueue *fiq, struct fuse_req *req)
{
}
if (list_empty(&req->intr_entry)) {
list_add_tail(&req->intr_entry, &fiq->interrupts);
- wake_up_locked(&fiq->waitq);
+- wake_up_locked(&fiq->waitq);
++ wake_up(&fiq->waitq);
}
- spin_unlock(&fiq->waitq.lock);
+ spin_unlock(&fiq->lock);
kill_fasync(&fiq->fasync, SIGIO, POLL_IN);
}
-@@ -466,16 +466,16 @@ static void request_wait_answer(struct fuse_conn *fc, struct fuse_req *req)
+@@ -466,16 +466,16 @@ static void request_wait_answer(struct f
if (!err)
return;
}
/*
-@@ -490,9 +490,9 @@ static void __fuse_request_send(struct fuse_conn *fc, struct fuse_req *req)
+@@ -490,9 +490,9 @@ static void __fuse_request_send(struct f
struct fuse_iqueue *fiq = &fc->iq;
BUG_ON(test_bit(FR_BACKGROUND, &req->flags));
req->out.h.error = -ENOTCONN;
} else {
req->in.h.unique = fuse_get_unique(fiq);
-@@ -500,7 +500,7 @@ static void __fuse_request_send(struct fuse_conn *fc, struct fuse_req *req)
+@@ -500,7 +500,7 @@ static void __fuse_request_send(struct f
/* acquire extra reference, since request is still needed
after request_end() */
__fuse_get_request(req);
request_wait_answer(fc, req);
/* Pairs with smp_wmb() in request_end() */
-@@ -633,12 +633,12 @@ static int fuse_request_send_notify_reply(struct fuse_conn *fc,
+@@ -633,12 +633,12 @@ static int fuse_request_send_notify_repl
__clear_bit(FR_ISREPLY, &req->flags);
req->in.h.unique = unique;
return err;
}
-@@ -1082,12 +1082,12 @@ static int request_pending(struct fuse_iqueue *fiq)
+@@ -1082,12 +1082,12 @@ static int request_pending(struct fuse_i
* Unlike other requests this is assembled on demand, without a need
* to allocate a separate fuse_req structure.
*
if (nbytes < reqsize)
return -EINVAL;
-@@ -1140,7 +1140,7 @@ static struct fuse_forget_link *dequeue_forget(struct fuse_iqueue *fiq,
+@@ -1140,7 +1140,7 @@ static struct fuse_forget_link *dequeue_
static int fuse_read_single_forget(struct fuse_iqueue *fiq,
struct fuse_copy_state *cs,
size_t nbytes)
{
if (fc->minor < 16 || fiq->forget_list_head.next->next == NULL)
return fuse_read_single_forget(fiq, cs, nbytes);
-@@ -1251,16 +1251,19 @@ static ssize_t fuse_dev_do_read(struct fuse_dev *fud, struct file *file,
+@@ -1251,16 +1251,19 @@ static ssize_t fuse_dev_do_read(struct f
unsigned reqsize;
restart:
if (!fiq->connected) {
err = (fc->aborted && fc->abort_err) ? -ECONNABORTED : -ENODEV;
-@@ -1284,7 +1287,7 @@ static ssize_t fuse_dev_do_read(struct fuse_dev *fud, struct file *file,
+@@ -1284,7 +1287,7 @@ static ssize_t fuse_dev_do_read(struct f
req = list_entry(fiq->pending.next, struct fuse_req, list);
clear_bit(FR_PENDING, &req->flags);
list_del_init(&req->list);
in = &req->in;
reqsize = in->h.len;
-@@ -1341,7 +1344,7 @@ static ssize_t fuse_dev_do_read(struct fuse_dev *fud, struct file *file,
+@@ -1341,7 +1344,7 @@ out_end:
return err;
err_unlock:
return err;
}
-@@ -2054,12 +2057,12 @@ static __poll_t fuse_dev_poll(struct file *file, poll_table *wait)
+@@ -2054,12 +2057,12 @@ static __poll_t fuse_dev_poll(struct fil
fiq = &fud->fc->iq;
poll_wait(file, &fiq->waitq, wait);
return mask;
}
-@@ -2150,15 +2153,15 @@ void fuse_abort_conn(struct fuse_conn *fc, bool is_abort)
+@@ -2150,15 +2153,15 @@ void fuse_abort_conn(struct fuse_conn *f
fc->max_background = UINT_MAX;
flush_bg_queue(fc);
kill_fasync(&fiq->fasync, SIGIO, POLL_IN);
end_polls(fc);
wake_up_all(&fc->blocked_waitq);
-diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
-index cec8b8e749695..900bdcf79bfc0 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -388,6 +388,9 @@ struct fuse_iqueue {
/** Readers of the connection are waiting on this */
wait_queue_head_t waitq;
-diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
-index db9e60b7eb691..cb018315ecaf5 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
-@@ -585,6 +585,7 @@ static int fuse_show_options(struct seq_file *m, struct dentry *root)
+@@ -585,6 +585,7 @@ static int fuse_show_options(struct seq_
static void fuse_iqueue_init(struct fuse_iqueue *fiq)
{
memset(fiq, 0, sizeof(struct fuse_iqueue));
init_waitqueue_head(&fiq->waitq);
INIT_LIST_HEAD(&fiq->pending);
INIT_LIST_HEAD(&fiq->interrupts);
---
-2.20.1
-