Loading include/net/9p/transport.h +2 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ struct p9_trans { int (*read) (struct p9_trans *, void *, int); void (*close) (struct p9_trans *); unsigned int (*poll)(struct p9_trans *, struct poll_table_struct *); int (*rpc) (struct p9_trans *t, struct p9_fcall *tc, struct p9_fcall **rc); }; struct p9_trans_module { Loading net/9p/client.c +33 −16 Original line number Diff line number Diff line Loading @@ -39,6 +39,23 @@ static struct p9_fid *p9_fid_create(struct p9_client *clnt); static void p9_fid_destroy(struct p9_fid *fid); static struct p9_stat *p9_clone_stat(struct p9_stat *st, int dotu); /** * p9_client_rpc - sends 9P request and waits until a response is available. * The function can be interrupted. * @c: client data * @tc: request to be sent * @rc: pointer where a pointer to the response is stored */ int p9_client_rpc(struct p9_client *c, struct p9_fcall *tc, struct p9_fcall **rc) { if (c->trans->rpc) return c->trans->rpc(c->trans, tc, rc); else return p9_conn_rpc(c->conn, tc, rc); } struct p9_client *p9_client_create(struct p9_trans *trans, int msize, int dotu) { Loading Loading @@ -82,7 +99,7 @@ struct p9_client *p9_client_create(struct p9_trans *trans, int msize, goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -174,7 +191,7 @@ struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid, goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -219,7 +236,7 @@ struct p9_fid *p9_client_auth(struct p9_client *clnt, char *uname, goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -270,7 +287,7 @@ struct p9_fid *p9_client_walk(struct p9_fid *oldfid, int nwname, char **wnames, goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) { if (rc && rc->id == P9_RWALK) goto clunk_fid; Loading Loading @@ -305,7 +322,7 @@ struct p9_fid *p9_client_walk(struct p9_fid *oldfid, int nwname, char **wnames, goto error; } p9_conn_rpc(clnt->conn, tc, &rc); p9_client_rpc(clnt->conn, tc, &rc); error: kfree(tc); Loading Loading @@ -339,7 +356,7 @@ int p9_client_open(struct p9_fid *fid, int mode) goto done; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto done; Loading Loading @@ -378,7 +395,7 @@ int p9_client_fcreate(struct p9_fid *fid, char *name, u32 perm, int mode, goto done; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto done; Loading Loading @@ -411,7 +428,7 @@ int p9_client_clunk(struct p9_fid *fid) goto done; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto done; Loading Loading @@ -443,7 +460,7 @@ int p9_client_remove(struct p9_fid *fid) goto done; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto done; Loading Loading @@ -485,7 +502,7 @@ int p9_client_read(struct p9_fid *fid, char *data, u64 offset, u32 count) goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -542,7 +559,7 @@ int p9_client_write(struct p9_fid *fid, char *data, u64 offset, u32 count) goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -596,7 +613,7 @@ p9_client_uread(struct p9_fid *fid, char __user *data, u64 offset, u32 count) goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -660,7 +677,7 @@ p9_client_uwrite(struct p9_fid *fid, const char __user *data, u64 offset, goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -731,7 +748,7 @@ struct p9_stat *p9_client_stat(struct p9_fid *fid) goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -773,7 +790,7 @@ int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst) goto done; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); done: kfree(tc); Loading Loading @@ -830,7 +847,7 @@ struct p9_stat *p9_client_dirread(struct p9_fid *fid, u64 offset) goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading
include/net/9p/transport.h +2 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ struct p9_trans { int (*read) (struct p9_trans *, void *, int); void (*close) (struct p9_trans *); unsigned int (*poll)(struct p9_trans *, struct poll_table_struct *); int (*rpc) (struct p9_trans *t, struct p9_fcall *tc, struct p9_fcall **rc); }; struct p9_trans_module { Loading
net/9p/client.c +33 −16 Original line number Diff line number Diff line Loading @@ -39,6 +39,23 @@ static struct p9_fid *p9_fid_create(struct p9_client *clnt); static void p9_fid_destroy(struct p9_fid *fid); static struct p9_stat *p9_clone_stat(struct p9_stat *st, int dotu); /** * p9_client_rpc - sends 9P request and waits until a response is available. * The function can be interrupted. * @c: client data * @tc: request to be sent * @rc: pointer where a pointer to the response is stored */ int p9_client_rpc(struct p9_client *c, struct p9_fcall *tc, struct p9_fcall **rc) { if (c->trans->rpc) return c->trans->rpc(c->trans, tc, rc); else return p9_conn_rpc(c->conn, tc, rc); } struct p9_client *p9_client_create(struct p9_trans *trans, int msize, int dotu) { Loading Loading @@ -82,7 +99,7 @@ struct p9_client *p9_client_create(struct p9_trans *trans, int msize, goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -174,7 +191,7 @@ struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid, goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -219,7 +236,7 @@ struct p9_fid *p9_client_auth(struct p9_client *clnt, char *uname, goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -270,7 +287,7 @@ struct p9_fid *p9_client_walk(struct p9_fid *oldfid, int nwname, char **wnames, goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) { if (rc && rc->id == P9_RWALK) goto clunk_fid; Loading Loading @@ -305,7 +322,7 @@ struct p9_fid *p9_client_walk(struct p9_fid *oldfid, int nwname, char **wnames, goto error; } p9_conn_rpc(clnt->conn, tc, &rc); p9_client_rpc(clnt->conn, tc, &rc); error: kfree(tc); Loading Loading @@ -339,7 +356,7 @@ int p9_client_open(struct p9_fid *fid, int mode) goto done; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto done; Loading Loading @@ -378,7 +395,7 @@ int p9_client_fcreate(struct p9_fid *fid, char *name, u32 perm, int mode, goto done; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto done; Loading Loading @@ -411,7 +428,7 @@ int p9_client_clunk(struct p9_fid *fid) goto done; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto done; Loading Loading @@ -443,7 +460,7 @@ int p9_client_remove(struct p9_fid *fid) goto done; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto done; Loading Loading @@ -485,7 +502,7 @@ int p9_client_read(struct p9_fid *fid, char *data, u64 offset, u32 count) goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -542,7 +559,7 @@ int p9_client_write(struct p9_fid *fid, char *data, u64 offset, u32 count) goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -596,7 +613,7 @@ p9_client_uread(struct p9_fid *fid, char __user *data, u64 offset, u32 count) goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -660,7 +677,7 @@ p9_client_uwrite(struct p9_fid *fid, const char __user *data, u64 offset, goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -731,7 +748,7 @@ struct p9_stat *p9_client_stat(struct p9_fid *fid) goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading Loading @@ -773,7 +790,7 @@ int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst) goto done; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); done: kfree(tc); Loading Loading @@ -830,7 +847,7 @@ struct p9_stat *p9_client_dirread(struct p9_fid *fid, u64 offset) goto error; } err = p9_conn_rpc(clnt->conn, tc, &rc); err = p9_client_rpc(clnt->conn, tc, &rc); if (err) goto error; Loading