Displaying 18 results from an estimated 18 matches for "fuse_iqueue_op".
Did you mean:
fuse_iqueue_ops
2019 Nov 12
0
[PATCH v2] virtiofs: Use static const, not const static
...e/virtio_fs.c:692:1: warning: ?static? is not at beginning of declaration [-Wold-style-declaration]
> const static unsigned int feature_table[] = {};
> ^
> fs/fuse/virtio_fs.c:1029:1: warning: ?static? is not at beginning of declaration [-Wold-style-declaration]
> const static struct fuse_iqueue_ops virtio_fs_fiq_ops = {
>
> Reported-by: Hulk Robot <hulkci at huawei.com>
> Signed-off-by: zhengbin <zhengbin13 at huawei.com>
Acked-by: Vivek Goyal <vgoyal at redhat.com>
Vivek
> ---
> v1->v2: modify comment
> fs/fuse/virtio_fs.c | 6 +++---
> 1 file c...
2019 Sep 06
1
[PATCH 14/18] virtiofs: Add a fuse_iqueue operation to put() reference
On Thu, Sep 05, 2019 at 03:48:55PM -0400, Vivek Goyal wrote:
> diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
> index 85e2dcad68c1..04e2c000d63f 100644
> --- a/fs/fuse/fuse_i.h
> +++ b/fs/fuse/fuse_i.h
> @@ -479,6 +479,11 @@ struct fuse_iqueue_ops {
> */
> void (*wake_pending_and_unlock)(struct fuse_iqueue *fiq)
> __releases(fiq->waitq.lock);
> +
> + /**
> + * Put a reference on fiq_priv.
I'm a bit confused about fiq->priv's role in this. The callback takes
struct fuse_iqueue *fiq as the argument,...
2019 Nov 11
0
[PATCH] virtiofs: Use static const, not const static
...st static unsigned int feature_table[] = {};
> +static const unsigned int feature_table[] = {};
>
> static struct virtio_driver virtio_fs_driver = {
> .driver.name = KBUILD_MODNAME,
> @@ -1026,7 +1026,7 @@ __releases(fiq->lock)
> }
> }
>
> -const static struct fuse_iqueue_ops virtio_fs_fiq_ops = {
> +static const struct fuse_iqueue_ops virtio_fs_fiq_ops = {
> .wake_forget_and_unlock = virtio_fs_wake_forget_and_unlock,
> .wake_interrupt_and_unlock = virtio_fs_wake_interrupt_and_unlock,
> .wake_pending_and_unlock = virtio_fs_wake_pending_and_unlock,
&g...
2019 Nov 11
1
[PATCH -next] virtiofs: Fix old-style declaration
...D_FS, VIRTIO_DEV_ANY_ID },
{},
};
-const static unsigned int feature_table[] = {};
+static const unsigned int feature_table[] = {};
static struct virtio_driver virtio_fs_driver = {
.driver.name = KBUILD_MODNAME,
@@ -1026,7 +1026,7 @@ __releases(fiq->lock)
}
}
-const static struct fuse_iqueue_ops virtio_fs_fiq_ops = {
+static const struct fuse_iqueue_ops virtio_fs_fiq_ops = {
.wake_forget_and_unlock = virtio_fs_wake_forget_and_unlock,
.wake_interrupt_and_unlock = virtio_fs_wake_interrupt_and_unlock,
.wake_pending_and_unlock = virtio_fs_wake_pending_and_unlock,
--
2.7.4
2019 Sep 05
0
[PATCH 08/18] virtiofs: Drain all pending requests during ->remove time
...lock(&fsvq->lock);
-
- /* Wait for in flight requests to finish.*/
- while (1) {
- spin_lock(&fsvq->lock);
- if (!fsvq->in_flight) {
- spin_unlock(&fsvq->lock);
- break;
- }
- spin_unlock(&fsvq->lock);
- usleep_range(1000, 2000);
- }
-}
-
const static struct fuse_iqueue_ops virtio_fs_fiq_ops = {
.wake_forget_and_unlock = virtio_fs_wake_forget_and_unlock,
.wake_interrupt_and_unlock = virtio_fs_wake_interrupt_and_unlock,
@@ -988,7 +1007,7 @@ static void virtio_kill_sb(struct super_block *sb)
spin_lock(&fsvq->lock);
fsvq->connected = false;
spin_unl...
2019 Sep 05
0
[PATCH 14/18] virtiofs: Add a fuse_iqueue operation to put() reference
...ivek Goyal <vgoyal at redhat.com>
---
fs/fuse/fuse_i.h | 5 +++++
fs/fuse/inode.c | 6 ++++++
2 files changed, 11 insertions(+)
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index 85e2dcad68c1..04e2c000d63f 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -479,6 +479,11 @@ struct fuse_iqueue_ops {
*/
void (*wake_pending_and_unlock)(struct fuse_iqueue *fiq)
__releases(fiq->waitq.lock);
+
+ /**
+ * Put a reference on fiq_priv.
+ */
+ void (*put)(struct fuse_iqueue *fiq);
};
/** /dev/fuse input queue operations */
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 7fa0dcc6...
2019 Nov 12
0
[PATCH v2] virtiofs: Use static const, not const static
...e/virtio_fs.c:692:1: warning: ?static? is not at beginning of declaration [-Wold-style-declaration]
> const static unsigned int feature_table[] = {};
> ^
> fs/fuse/virtio_fs.c:1029:1: warning: ?static? is not at beginning of declaration [-Wold-style-declaration]
> const static struct fuse_iqueue_ops virtio_fs_fiq_ops = {
>
> Reported-by: Hulk Robot <hulkci at huawei.com>
> Signed-off-by: zhengbin <zhengbin13 at huawei.com>
> ---
> v1->v2: modify comment
> fs/fuse/virtio_fs.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Stefa...
2019 Sep 05
0
[PATCH 15/18] virtiofs: Make virtio_fs object refcounted
...mutex_lock(&virtio_fs_mutex);
- list_del(&fs->list);
- mutex_unlock(&virtio_fs_mutex);
-
vdev->priv = NULL;
- kfree(fs->vqs);
- kfree(fs);
+ /* Put device reference on virtio_fs object */
+ virtiofs_put(fs);
}
#ifdef CONFIG_PM_SLEEP
@@ -932,6 +957,7 @@ const static struct fuse_iqueue_ops virtio_fs_fiq_ops = {
.wake_forget_and_unlock = virtio_fs_wake_forget_and_unlock,
.wake_interrupt_and_unlock = virtio_fs_wake_interrupt_and_unlock,
.wake_pending_and_unlock = virtio_fs_wake_pending_and_unlock,
+ .put = virtio_fs_put,
};
static int virtio_fs_fill_super(struct super_bl...
2019 Sep 06
2
[PATCH 15/18] virtiofs: Make virtio_fs object refcounted
On Thu, Sep 05, 2019 at 03:48:56PM -0400, Vivek Goyal wrote:
> This object is used both by fuse_connection as well virt device. So make
> this object reference counted and that makes it easy to define life cycle
> of the object.
>
> Now deivce can be removed while filesystem is still mounted. This will
> cleanup all the virtqueues but virtio_fs object will still be around and
2019 Sep 06
2
[PATCH 15/18] virtiofs: Make virtio_fs object refcounted
On Thu, Sep 05, 2019 at 03:48:56PM -0400, Vivek Goyal wrote:
> This object is used both by fuse_connection as well virt device. So make
> this object reference counted and that makes it easy to define life cycle
> of the object.
>
> Now deivce can be removed while filesystem is still mounted. This will
> cleanup all the virtqueues but virtio_fs object will still be around and
2019 Sep 06
0
[PATCH 15/18] virtiofs: Make virtio_fs object refcounted
...utex_lock(&virtio_fs_mutex);
- list_del(&fs->list);
- mutex_unlock(&virtio_fs_mutex);
-
vdev->priv = NULL;
- kfree(fs->vqs);
- kfree(fs);
+ /* Put device reference on virtio_fs object */
+ virtio_fs_put(fs);
}
#ifdef CONFIG_PM_SLEEP
@@ -932,6 +957,7 @@ const static struct fuse_iqueue_ops virt
.wake_forget_and_unlock = virtio_fs_wake_forget_and_unlock,
.wake_interrupt_and_unlock = virtio_fs_wake_interrupt_and_unlock,
.wake_pending_and_unlock = virtio_fs_wake_pending_and_unlock,
+ .release = virtio_fs_fiq_release,
};
static int virtio_fs_fill_super(struct super_block *s...
2019 Sep 05
38
[PATCH 00/18] virtiofs: Fix various races and cleanups round 1
Hi,
Michael Tsirkin pointed out issues w.r.t various locking related TODO
items and races w.r.t device removal.
In this first round of cleanups, I have taken care of most pressing
issues.
These patches apply on top of following.
git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git#virtiofs-v4
I have tested these patches with mount/umount and device removal using
qemu monitor. For
2019 Sep 18
0
[PATCH v6] virtio-fs: add virtiofs filesystem
...iting for completion of request*/
> wait_queue_head_t waitq;
>
> +#if IS_ENABLED(CONFIG_VIRTIO_FS)
> + /** virtio-fs's physically contiguous buffer for in and out args */
> + void *argbuf;
> +#endif
> };
>
> struct fuse_iqueue;
> @@ -383,6 +387,11 @@ struct fuse_iqueue_ops {
> */
> void (*wake_pending_and_unlock)(struct fuse_iqueue *fiq)
> __releases(fiq->lock);
> +
> + /**
> + * Cleanup up when fuse_iqueue is destroyed
Cleanup up -> Clean up
> + */
> + void (*release)(struct fuse_iqueue *fiq);
> };
>
> /** /dev...
2019 Sep 05
0
[PATCH v4 15/16] virtio-fs: add virtiofs filesystem
...ock);
> > + break;
> > + }
> > + spin_unlock(&fsvq->lock);
> > + usleep_range(1000, 2000);
>
> Same thing here. Can we use e.g. a completion and not usleep?
Second round cleanup.
>
> > + }
> > +}
> > +
> > +const static struct fuse_iqueue_ops virtio_fs_fiq_ops = {
> > + .wake_forget_and_unlock = virtio_fs_wake_forget_and_unlock,
> > + .wake_interrupt_and_unlock = virtio_fs_wake_interrupt_and_unlock,
> > + .wake_pending_and_unlock = virtio_fs_wake_pending_and_unlock,
> > +};
> > +
> > +static int vir...
2019 Sep 03
2
[PATCH v3 00/13] virtio-fs: shared file system for virtual machines
...; > fuse: Use default_file_splice_read for direct IO
> >
> > Stefan Hajnoczi (6):
> > fuse: export fuse_end_request()
> > fuse: export fuse_len_args()
> > fuse: export fuse_get_unique()
> > fuse: extract fuse_fill_super_common()
> > fuse: add fuse_iqueue_ops callbacks
> > virtio_fs: add skeleton virtio_fs.ko module
> >
> > Vivek Goyal (5):
> > fuse: Export fuse_send_init_request()
> > Export fuse_dequeue_forget() function
> > fuse: Separate fuse device allocation and installation in fuse_conn
> > vir...
2019 Sep 03
2
[PATCH v3 00/13] virtio-fs: shared file system for virtual machines
...; > fuse: Use default_file_splice_read for direct IO
> >
> > Stefan Hajnoczi (6):
> > fuse: export fuse_end_request()
> > fuse: export fuse_len_args()
> > fuse: export fuse_get_unique()
> > fuse: extract fuse_fill_super_common()
> > fuse: add fuse_iqueue_ops callbacks
> > virtio_fs: add skeleton virtio_fs.ko module
> >
> > Vivek Goyal (5):
> > fuse: Export fuse_send_init_request()
> > Export fuse_dequeue_forget() function
> > fuse: Separate fuse device allocation and installation in fuse_conn
> > vir...
2019 Sep 03
4
[PATCH v4 15/16] virtio-fs: add virtiofs filesystem
...;lock);
> + if (!fsvq->in_flight) {
> + spin_unlock(&fsvq->lock);
> + break;
> + }
> + spin_unlock(&fsvq->lock);
> + usleep_range(1000, 2000);
Same thing here. Can we use e.g. a completion and not usleep?
> + }
> +}
> +
> +const static struct fuse_iqueue_ops virtio_fs_fiq_ops = {
> + .wake_forget_and_unlock = virtio_fs_wake_forget_and_unlock,
> + .wake_interrupt_and_unlock = virtio_fs_wake_interrupt_and_unlock,
> + .wake_pending_and_unlock = virtio_fs_wake_pending_and_unlock,
> +};
> +
> +static int virtio_fs_fill_super(struct super...
2019 Sep 03
4
[PATCH v4 15/16] virtio-fs: add virtiofs filesystem
...;lock);
> + if (!fsvq->in_flight) {
> + spin_unlock(&fsvq->lock);
> + break;
> + }
> + spin_unlock(&fsvq->lock);
> + usleep_range(1000, 2000);
Same thing here. Can we use e.g. a completion and not usleep?
> + }
> +}
> +
> +const static struct fuse_iqueue_ops virtio_fs_fiq_ops = {
> + .wake_forget_and_unlock = virtio_fs_wake_forget_and_unlock,
> + .wake_interrupt_and_unlock = virtio_fs_wake_interrupt_and_unlock,
> + .wake_pending_and_unlock = virtio_fs_wake_pending_and_unlock,
> +};
> +
> +static int virtio_fs_fill_super(struct super...