Commit e2735b77 authored by Eric Van Hensbergen's avatar Eric Van Hensbergen Committed by Eric Van Hensbergen

9p: block-based virtio client

This replaces the console-based virto client with a block-based
client using a single request queue.
Signed-off-by: default avatarEric Van Hensbergen <ericvh@gmail.com>
parent 043aba40
...@@ -40,7 +40,7 @@ struct p9_trans { ...@@ -40,7 +40,7 @@ struct p9_trans {
void (*close) (struct p9_trans *); void (*close) (struct p9_trans *);
unsigned int (*poll)(struct p9_trans *, struct poll_table_struct *); unsigned int (*poll)(struct p9_trans *, struct poll_table_struct *);
int (*rpc) (struct p9_trans *t, struct p9_fcall *tc, int (*rpc) (struct p9_trans *t, struct p9_fcall *tc,
struct p9_fcall **rc); struct p9_fcall **rc, int msize, int dotu);
}; };
struct p9_trans_module { struct p9_trans_module {
......
...@@ -51,7 +51,7 @@ p9_client_rpc(struct p9_client *c, struct p9_fcall *tc, ...@@ -51,7 +51,7 @@ p9_client_rpc(struct p9_client *c, struct p9_fcall *tc,
struct p9_fcall **rc) struct p9_fcall **rc)
{ {
if (c->trans->rpc) if (c->trans->rpc)
return c->trans->rpc(c->trans, tc, rc); return c->trans->rpc(c->trans, tc, rc, c->msize, c->dotu);
else else
return p9_conn_rpc(c->conn, tc, rc); return p9_conn_rpc(c->conn, tc, rc);
} }
...@@ -99,7 +99,7 @@ struct p9_client *p9_client_create(struct p9_trans *trans, int msize, ...@@ -99,7 +99,7 @@ struct p9_client *p9_client_create(struct p9_trans *trans, int msize,
goto error; goto error;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto error; goto error;
...@@ -191,7 +191,7 @@ struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid, ...@@ -191,7 +191,7 @@ struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid,
goto error; goto error;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto error; goto error;
...@@ -236,7 +236,7 @@ struct p9_fid *p9_client_auth(struct p9_client *clnt, char *uname, ...@@ -236,7 +236,7 @@ struct p9_fid *p9_client_auth(struct p9_client *clnt, char *uname,
goto error; goto error;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto error; goto error;
...@@ -287,7 +287,7 @@ struct p9_fid *p9_client_walk(struct p9_fid *oldfid, int nwname, char **wnames, ...@@ -287,7 +287,7 @@ struct p9_fid *p9_client_walk(struct p9_fid *oldfid, int nwname, char **wnames,
goto error; goto error;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) { if (err) {
if (rc && rc->id == P9_RWALK) if (rc && rc->id == P9_RWALK)
goto clunk_fid; goto clunk_fid;
...@@ -322,7 +322,7 @@ struct p9_fid *p9_client_walk(struct p9_fid *oldfid, int nwname, char **wnames, ...@@ -322,7 +322,7 @@ struct p9_fid *p9_client_walk(struct p9_fid *oldfid, int nwname, char **wnames,
goto error; goto error;
} }
p9_client_rpc(clnt->conn, tc, &rc); p9_client_rpc(clnt, tc, &rc);
error: error:
kfree(tc); kfree(tc);
...@@ -356,7 +356,7 @@ int p9_client_open(struct p9_fid *fid, int mode) ...@@ -356,7 +356,7 @@ int p9_client_open(struct p9_fid *fid, int mode)
goto done; goto done;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto done; goto done;
...@@ -395,7 +395,7 @@ int p9_client_fcreate(struct p9_fid *fid, char *name, u32 perm, int mode, ...@@ -395,7 +395,7 @@ int p9_client_fcreate(struct p9_fid *fid, char *name, u32 perm, int mode,
goto done; goto done;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto done; goto done;
...@@ -428,7 +428,7 @@ int p9_client_clunk(struct p9_fid *fid) ...@@ -428,7 +428,7 @@ int p9_client_clunk(struct p9_fid *fid)
goto done; goto done;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto done; goto done;
...@@ -460,7 +460,7 @@ int p9_client_remove(struct p9_fid *fid) ...@@ -460,7 +460,7 @@ int p9_client_remove(struct p9_fid *fid)
goto done; goto done;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto done; goto done;
...@@ -502,7 +502,7 @@ int p9_client_read(struct p9_fid *fid, char *data, u64 offset, u32 count) ...@@ -502,7 +502,7 @@ int p9_client_read(struct p9_fid *fid, char *data, u64 offset, u32 count)
goto error; goto error;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto error; goto error;
...@@ -559,7 +559,7 @@ int p9_client_write(struct p9_fid *fid, char *data, u64 offset, u32 count) ...@@ -559,7 +559,7 @@ int p9_client_write(struct p9_fid *fid, char *data, u64 offset, u32 count)
goto error; goto error;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto error; goto error;
...@@ -613,7 +613,7 @@ p9_client_uread(struct p9_fid *fid, char __user *data, u64 offset, u32 count) ...@@ -613,7 +613,7 @@ p9_client_uread(struct p9_fid *fid, char __user *data, u64 offset, u32 count)
goto error; goto error;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto error; goto error;
...@@ -677,7 +677,7 @@ p9_client_uwrite(struct p9_fid *fid, const char __user *data, u64 offset, ...@@ -677,7 +677,7 @@ p9_client_uwrite(struct p9_fid *fid, const char __user *data, u64 offset,
goto error; goto error;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto error; goto error;
...@@ -748,7 +748,7 @@ struct p9_stat *p9_client_stat(struct p9_fid *fid) ...@@ -748,7 +748,7 @@ struct p9_stat *p9_client_stat(struct p9_fid *fid)
goto error; goto error;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto error; goto error;
...@@ -790,7 +790,7 @@ int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst) ...@@ -790,7 +790,7 @@ int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst)
goto done; goto done;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
done: done:
kfree(tc); kfree(tc);
...@@ -847,7 +847,7 @@ struct p9_stat *p9_client_dirread(struct p9_fid *fid, u64 offset) ...@@ -847,7 +847,7 @@ struct p9_stat *p9_client_dirread(struct p9_fid *fid, u64 offset)
goto error; goto error;
} }
err = p9_client_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt, tc, &rc);
if (err) if (err)
goto error; goto error;
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment