summaryrefslogtreecommitdiffstats
path: root/fs/fuse
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2024-11-27 22:11:58 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2024-11-27 22:11:58 +0100
commit2a50b1e766a09f1a2da5f291956b8dceb58b5d54 (patch)
tree1e2caa0e70be0211811aba442ce4bc6c143af585 /fs/fuse
parentMerge tag 'vfio-v6.13-rc1' of https://github.com/awilliam/linux-vfio (diff)
parentvirtio_vdpa: remove redundant check on desc (diff)
downloadlinux-2a50b1e766a09f1a2da5f291956b8dceb58b5d54.tar.xz
linux-2a50b1e766a09f1a2da5f291956b8dceb58b5d54.zip
Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
Pull virtio updates from Michael Tsirkin: "A small number of improvements all over the place" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: virtio_vdpa: remove redundant check on desc virtio_fs: store actual queue index in mq_map virtio_fs: add informative log for new tag discovery virtio: Make vring_new_virtqueue support packed vring virtio_pmem: Add freeze/restore callbacks vdpa/mlx5: Fix suboptimal range on iotlb iteration
Diffstat (limited to 'fs/fuse')
-rw-r--r--fs/fuse/virtio_fs.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c
index d88d3fc5306a..82afe78ec542 100644
--- a/fs/fuse/virtio_fs.c
+++ b/fs/fuse/virtio_fs.c
@@ -243,7 +243,7 @@ static ssize_t cpu_list_show(struct kobject *kobj,
qid = fsvq->vq->index;
for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
- if (qid < VQ_REQUEST || (fs->mq_map[cpu] == qid - VQ_REQUEST)) {
+ if (qid < VQ_REQUEST || (fs->mq_map[cpu] == qid)) {
if (first)
ret = snprintf(buf + pos, size - pos, "%u", cpu);
else
@@ -522,6 +522,7 @@ static int virtio_fs_read_tag(struct virtio_device *vdev, struct virtio_fs *fs)
return -EINVAL;
}
+ dev_info(&vdev->dev, "discovered new tag: %s\n", fs->tag);
return 0;
}
@@ -875,23 +876,23 @@ static void virtio_fs_map_queues(struct virtio_device *vdev, struct virtio_fs *f
goto fallback;
for_each_cpu(cpu, mask)
- fs->mq_map[cpu] = q;
+ fs->mq_map[cpu] = q + VQ_REQUEST;
}
return;
fallback:
/* Attempt to map evenly in groups over the CPUs */
masks = group_cpus_evenly(fs->num_request_queues);
- /* If even this fails we default to all CPUs use queue zero */
+ /* If even this fails we default to all CPUs use first request queue */
if (!masks) {
for_each_possible_cpu(cpu)
- fs->mq_map[cpu] = 0;
+ fs->mq_map[cpu] = VQ_REQUEST;
return;
}
for (q = 0; q < fs->num_request_queues; q++) {
for_each_cpu(cpu, &masks[q])
- fs->mq_map[cpu] = q;
+ fs->mq_map[cpu] = q + VQ_REQUEST;
}
kfree(masks);
}
@@ -1487,7 +1488,7 @@ static void virtio_fs_send_req(struct fuse_iqueue *fiq, struct fuse_req *req)
clear_bit(FR_PENDING, &req->flags);
fs = fiq->priv;
- queue_id = VQ_REQUEST + fs->mq_map[raw_smp_processor_id()];
+ queue_id = fs->mq_map[raw_smp_processor_id()];
pr_debug("%s: opcode %u unique %#llx nodeid %#llx in.len %u out.len %u queue_id %u\n",
__func__, req->in.h.opcode, req->in.h.unique,