search for: fuse_len_args

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