[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 5/7] 9pfs: replace not_same_qid() by same_stat_id()
From: |
Christian Schoenebeck |
Subject: |
[PATCH v2 5/7] 9pfs: replace not_same_qid() by same_stat_id() |
Date: |
Fri, 4 Jun 2021 17:21:43 +0200 |
As we are actually only comparing the filesystem ID (i.e. device number
and inode number pair) let's use the POSIX stat buffer instead of QIDs,
because resolving QIDs requires to be done on 9p server's main thread
only as it might mutate the server state if inode remapping is enabled.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
---
hw/9pfs/9p.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index 0e3857798d..47b000d3a9 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -1696,9 +1696,9 @@ static bool name_is_illegal(const char *name)
return !*name || strchr(name, '/') != NULL;
}
-static bool not_same_qid(const V9fsQID *qid1, const V9fsQID *qid2)
+static bool same_stat_id(const struct stat *a, const struct stat *b)
{
- return qid1->path != qid2->path;
+ return a->st_dev == b->st_dev && a->st_ino == b->st_ino;
}
static void coroutine_fn v9fs_walk(void *opaque)
@@ -1771,7 +1771,7 @@ static void coroutine_fn v9fs_walk(void *opaque)
v9fs_path_copy(&dpath, &fidp->path);
v9fs_path_copy(&path, &fidp->path);
for (name_idx = 0; name_idx < nwnames; name_idx++) {
- if (not_same_qid(&pdu->s->root_qid, &qid) ||
+ if (!same_stat_id(&pdu->s->root_st, &stbuf) ||
strcmp("..", wnames[name_idx].data)) {
err = v9fs_co_name_to_path(pdu, &dpath, wnames[name_idx].data,
&path);
--
2.20.1
- [PATCH v2 0/7] 9pfs: Twalk optimization, Christian Schoenebeck, 2021/06/04
- Re: [PATCH v2 0/7] 9pfs: Twalk optimization, Greg Kurz, 2021/06/04
- [PATCH v2 2/7] 9pfs: Twalk benchmark, Christian Schoenebeck, 2021/06/04
- [PATCH v2 6/7] 9pfs: drop root_qid, Christian Schoenebeck, 2021/06/04
- [PATCH v2 4/7] 9pfs: drop fid_to_qid(), Christian Schoenebeck, 2021/06/04
- [PATCH v2 3/7] 9pfs: capture root stat, Christian Schoenebeck, 2021/06/04
- [PATCH v2 7/7] 9pfs: reduce latency of Twalk, Christian Schoenebeck, 2021/06/04
- [PATCH v2 1/7] 9pfs: fix not_same_qid(), Christian Schoenebeck, 2021/06/04
- [PATCH v2 5/7] 9pfs: replace not_same_qid() by same_stat_id(),
Christian Schoenebeck <=