search for: fuse_iqueue_ops

Displaying 18 results from an estimated 18 matches for "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 ch...
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, n...
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, &gt...
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_unlo...
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 7fa0dcc6f...
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: Stefan...
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_blo...
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 *sb...
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 virt...
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 > > virt...
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 > > virt...
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_...