@@ -567,10 +567,8 @@ static void v9fs_rflush(P9Req *req)
v9fs_req_free(req);
}
-static void fs_version(void *obj, void *data, QGuestAllocator *t_alloc)
+static void do_version(QVirtio9P *v9p)
{
- QVirtio9P *v9p = obj;
- alloc = t_alloc;
const char *version = "9P2000.L";
uint16_t server_len;
char *server_version;
@@ -585,13 +583,19 @@ static void fs_version(void *obj, void *data, QGuestAllocator *t_alloc)
g_free(server_version);
}
+static void fs_version(void *obj, void *data, QGuestAllocator *t_alloc)
+{
+ alloc = t_alloc;
+ do_version(obj);
+}
+
static void fs_attach(void *obj, void *data, QGuestAllocator *t_alloc)
{
QVirtio9P *v9p = obj;
alloc = t_alloc;
P9Req *req;
- fs_version(v9p, NULL, t_alloc);
+ do_version(v9p);
req = v9fs_tattach(v9p, 0, getuid(), 0);
v9fs_req_wait_for_reply(req, NULL);
v9fs_rattach(req, NULL);
@@ -831,7 +835,7 @@ static void fs_walk_dotdot(void *obj, void *data, QGuestAllocator *t_alloc)
v9fs_qid root_qid, *wqid;
P9Req *req;
- fs_version(v9p, NULL, t_alloc);
+ do_version(v9p);
req = v9fs_tattach(v9p, 0, getuid(), 0);
v9fs_req_wait_for_reply(req, NULL);
v9fs_rattach(req, &root_qid);