Displaying 10 results from an estimated 10 matches for "fuse_len_args".
2019 Sep 05
0
[PATCH 13/18] virtiofs: Do not access virtqueue in request submission path
...ck)
fs = fiq->priv;
fc = fs->vqs[queue_id].fud->fc;
- dev_dbg(&fs->vqs[queue_id].vq->vdev->dev,
- "%s: opcode %u unique %#llx nodeid %#llx in.len %u out.len %u\n",
- __func__, req->in.h.opcode, req->in.h.unique, req->in.h.nodeid,
- req->in.h.len, fuse_len_args(req->out.numargs, req->out.args));
+ pr_debug("%s: opcode %u unique %#llx nodeid %#llx in.len %u out.len %u"
+ "\n", __func__, req->in.h.opcode, req->in.h.unique,
+ req->in.h.nodeid, req->in.h.len,
+ fuse_len_args(req->out.numargs, req->out.args));...
2019 Sep 03
4
[PATCH v4 15/16] virtio-fs: add virtiofs filesystem
...fuse_req *req)
> +{
> + unsigned int offset = 0;
> + unsigned int num_in;
> + unsigned int num_out;
> + unsigned int len;
> + unsigned int i;
> +
> + num_in = req->in.numargs - req->in.argpages;
> + num_out = req->out.numargs - req->out.argpages;
> + len = fuse_len_args(num_in, (struct fuse_arg *)req->in.args) +
> + fuse_len_args(num_out, req->out.args);
> +
> + req->argbuf = kmalloc(len, GFP_ATOMIC);
> + if (!req->argbuf)
> + return -ENOMEM;
> +
> + for (i = 0; i < num_in; i++) {
> + memcpy(req->argbuf + offset,
&...
2019 Sep 03
4
[PATCH v4 15/16] virtio-fs: add virtiofs filesystem
...fuse_req *req)
> +{
> + unsigned int offset = 0;
> + unsigned int num_in;
> + unsigned int num_out;
> + unsigned int len;
> + unsigned int i;
> +
> + num_in = req->in.numargs - req->in.argpages;
> + num_out = req->out.numargs - req->out.argpages;
> + len = fuse_len_args(num_in, (struct fuse_arg *)req->in.args) +
> + fuse_len_args(num_out, req->out.args);
> +
> + req->argbuf = kmalloc(len, GFP_ATOMIC);
> + if (!req->argbuf)
> + return -ENOMEM;
> +
> + for (i = 0; i < num_in; i++) {
> + memcpy(req->argbuf + offset,
&...
2019 Sep 18
0
[PATCH v6] virtio-fs: add virtiofs filesystem
...rgs *args = req->args;
> + unsigned int offset = 0;
> + unsigned int num_in;
> + unsigned int num_out;
> + unsigned int len;
> + unsigned int i;
> +
> + num_in = args->in_numargs - args->in_pages;
> + num_out = args->out_numargs - args->out_pages;
> + len = fuse_len_args(num_in, (struct fuse_arg *) args->in_args) +
> + fuse_len_args(num_out, args->out_args);
> +
> + req->argbuf = kmalloc(len, GFP_ATOMIC);
> + if (!req->argbuf)
> + return -ENOMEM;
> +
> + for (i = 0; i < num_in; i++) {
> + memcpy(req->argbuf + offset...
2019 Sep 06
1
[PATCH v4 15/16] virtio-fs: add virtiofs filesystem
...> +
> > > + dev_dbg(&fs->vqs[queue_id].vq->vdev->dev,
> > > + "%s: opcode %u unique %#llx nodeid %#llx in.len %u out.len %u\n",
> > > + __func__, req->in.h.opcode, req->in.h.unique, req->in.h.nodeid,
> > > + req->in.h.len, fuse_len_args(req->out.numargs, req->out.args));
> > > +
> > > + fpq = &fs->vqs[queue_id].fud->pq;
> > > + spin_lock(&fpq->lock);
> > > + if (!fpq->connected) {
> > > + spin_unlock(&fpq->lock);
> > > + req->out.h.error =...
2019 Oct 15
7
[PATCH 0/5] virtiofs: Fix couple of deadlocks
Hi,
We have couple of places which can result in deadlock. This patch series
fixes these.
We can be called with fc->bg_lock (for background requests) while
submitting a request. This leads to two constraints.
- We can't end requests in submitter's context and call fuse_end_request()
as it tries to take fc->bg_lock as well. So queue these requests on a
list and use a worker to
2019 Sep 05
0
[PATCH v4 15/16] virtio-fs: add virtiofs filesystem
...d].fud->fc;
> > +
> > + dev_dbg(&fs->vqs[queue_id].vq->vdev->dev,
> > + "%s: opcode %u unique %#llx nodeid %#llx in.len %u out.len %u\n",
> > + __func__, req->in.h.opcode, req->in.h.unique, req->in.h.nodeid,
> > + req->in.h.len, fuse_len_args(req->out.numargs, req->out.args));
> > +
> > + fpq = &fs->vqs[queue_id].fud->pq;
> > + spin_lock(&fpq->lock);
> > + if (!fpq->connected) {
> > + spin_unlock(&fpq->lock);
> > + req->out.h.error = -ENODEV;
> > + pr_err(&...
2019 Sep 03
2
[PATCH v3 00/13] virtio-fs: shared file system for virtual machines
...>
> > Thanks
> > Vivek
> >
> > Miklos Szeredi (2):
> > fuse: delete dentry if timeout is zero
> > 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()
> >...
2019 Sep 03
2
[PATCH v3 00/13] virtio-fs: shared file system for virtual machines
...>
> > Thanks
> > Vivek
> >
> > Miklos Szeredi (2):
> > fuse: delete dentry if timeout is zero
> > 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()
> >...
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