Lines Matching refs:clnt

57 inline int p9_is_proto_dotl(struct p9_client *clnt)  in p9_is_proto_dotl()  argument
59 return clnt->proto_version == p9_proto_2000L; in p9_is_proto_dotl()
63 inline int p9_is_proto_dotu(struct p9_client *clnt) in p9_is_proto_dotu() argument
65 return clnt->proto_version == p9_proto_2000u; in p9_is_proto_dotu()
69 int p9_show_client_options(struct seq_file *m, struct p9_client *clnt) in p9_show_client_options() argument
71 if (clnt->msize != DEFAULT_MSIZE) in p9_show_client_options()
72 seq_printf(m, ",msize=%u", clnt->msize); in p9_show_client_options()
73 seq_printf(m, ",trans=%s", clnt->trans_mod->name); in p9_show_client_options()
75 switch (clnt->proto_version) { in p9_show_client_options()
87 if (clnt->trans_mod->show_options) in p9_show_client_options()
88 return clnt->trans_mod->show_options(m, clnt); in p9_show_client_options()
134 static int parse_opts(char *opts, struct p9_client *clnt) in parse_opts() argument
143 clnt->proto_version = p9_proto_2000L; in parse_opts()
144 clnt->msize = DEFAULT_MSIZE; in parse_opts()
175 clnt->msize = option; in parse_opts()
186 v9fs_put_trans(clnt->trans_mod); in parse_opts()
187 clnt->trans_mod = v9fs_get_trans_by_name(s); in parse_opts()
188 if (!clnt->trans_mod) { in parse_opts()
196 clnt->proto_version = p9_proto_legacy; in parse_opts()
210 clnt->proto_version = r; in parse_opts()
220 v9fs_put_trans(clnt->trans_mod); in parse_opts()
845 static struct p9_fid *p9_fid_create(struct p9_client *clnt) in p9_fid_create() argument
850 p9_debug(P9_DEBUG_FID, "clnt %p\n", clnt); in p9_fid_create()
857 fid->clnt = clnt; in p9_fid_create()
861 spin_lock_irq(&clnt->lock); in p9_fid_create()
862 ret = idr_alloc_u32(&clnt->fids, fid, &fid->fid, P9_NOFID - 1, in p9_fid_create()
864 spin_unlock_irq(&clnt->lock); in p9_fid_create()
877 struct p9_client *clnt; in p9_fid_destroy() local
882 clnt = fid->clnt; in p9_fid_destroy()
883 spin_lock_irqsave(&clnt->lock, flags); in p9_fid_destroy()
884 idr_remove(&clnt->fids, fid->fid); in p9_fid_destroy()
885 spin_unlock_irqrestore(&clnt->lock, flags); in p9_fid_destroy()
975 struct p9_client *clnt; in p9_client_create() local
978 clnt = kmalloc(sizeof(*clnt), GFP_KERNEL); in p9_client_create()
979 if (!clnt) in p9_client_create()
982 clnt->trans_mod = NULL; in p9_client_create()
983 clnt->trans = NULL; in p9_client_create()
984 clnt->fcall_cache = NULL; in p9_client_create()
987 memcpy(clnt->name, client_id, strlen(client_id) + 1); in p9_client_create()
989 spin_lock_init(&clnt->lock); in p9_client_create()
990 idr_init(&clnt->fids); in p9_client_create()
991 idr_init(&clnt->reqs); in p9_client_create()
993 err = parse_opts(options, clnt); in p9_client_create()
997 if (!clnt->trans_mod) in p9_client_create()
998 clnt->trans_mod = v9fs_get_default_trans(); in p9_client_create()
1000 if (!clnt->trans_mod) { in p9_client_create()
1008 clnt, clnt->trans_mod, clnt->msize, clnt->proto_version); in p9_client_create()
1010 err = clnt->trans_mod->create(clnt, dev_name, options); in p9_client_create()
1014 if (clnt->msize > clnt->trans_mod->maxsize) { in p9_client_create()
1015 clnt->msize = clnt->trans_mod->maxsize; in p9_client_create()
1018 clnt->msize, clnt->trans_mod->name in p9_client_create()
1022 if (clnt->msize < 4096) { in p9_client_create()
1029 err = p9_client_version(clnt); in p9_client_create()
1036 clnt->fcall_cache = in p9_client_create()
1037 kmem_cache_create_usercopy("9p-fcall-cache", clnt->msize, in p9_client_create()
1039 clnt->msize - (P9_HDRSZ + 4), in p9_client_create()
1042 return clnt; in p9_client_create()
1045 clnt->trans_mod->close(clnt); in p9_client_create()
1047 v9fs_put_trans(clnt->trans_mod); in p9_client_create()
1049 kfree(clnt); in p9_client_create()
1054 void p9_client_destroy(struct p9_client *clnt) in p9_client_destroy() argument
1059 p9_debug(P9_DEBUG_MUX, "clnt %p\n", clnt); in p9_client_destroy()
1061 if (clnt->trans_mod) in p9_client_destroy()
1062 clnt->trans_mod->close(clnt); in p9_client_destroy()
1064 v9fs_put_trans(clnt->trans_mod); in p9_client_destroy()
1066 idr_for_each_entry(&clnt->fids, fid, id) { in p9_client_destroy()
1071 p9_tag_cleanup(clnt); in p9_client_destroy()
1073 kmem_cache_destroy(clnt->fcall_cache); in p9_client_destroy()
1074 kfree(clnt); in p9_client_destroy()
1078 void p9_client_disconnect(struct p9_client *clnt) in p9_client_disconnect() argument
1080 p9_debug(P9_DEBUG_9P, "clnt %p\n", clnt); in p9_client_disconnect()
1081 clnt->status = Disconnected; in p9_client_disconnect()
1085 void p9_client_begin_disconnect(struct p9_client *clnt) in p9_client_begin_disconnect() argument
1087 p9_debug(P9_DEBUG_9P, "clnt %p\n", clnt); in p9_client_begin_disconnect()
1088 clnt->status = BeginDisconnect; in p9_client_begin_disconnect()
1092 struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid, in p9_client_attach() argument
1103 fid = p9_fid_create(clnt); in p9_client_attach()
1110 req = p9_client_rpc(clnt, P9_TATTACH, "ddss?u", fid->fid, in p9_client_attach()
1117 err = p9pdu_readf(&req->rc, clnt->proto_version, "Q", &qid); in p9_client_attach()
1119 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_attach()
1120 p9_req_put(clnt, req); in p9_client_attach()
1129 p9_req_put(clnt, req); in p9_client_attach()
1143 struct p9_client *clnt; in p9_client_walk() local
1150 clnt = oldfid->clnt; in p9_client_walk()
1152 fid = p9_fid_create(clnt); in p9_client_walk()
1165 req = p9_client_rpc(clnt, P9_TWALK, "ddT", oldfid->fid, fid->fid, in p9_client_walk()
1172 err = p9pdu_readf(&req->rc, clnt->proto_version, "R", &nwqids, &wqids); in p9_client_walk()
1174 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_walk()
1175 p9_req_put(clnt, req); in p9_client_walk()
1178 p9_req_put(clnt, req); in p9_client_walk()
1217 struct p9_client *clnt; in p9_client_open() local
1222 clnt = fid->clnt; in p9_client_open()
1224 p9_is_proto_dotl(clnt) ? "TLOPEN" : "TOPEN", fid->fid, mode); in p9_client_open()
1229 if (p9_is_proto_dotl(clnt)) in p9_client_open()
1230 req = p9_client_rpc(clnt, P9_TLOPEN, "dd", fid->fid, mode & P9L_MODE_MASK); in p9_client_open()
1232 req = p9_client_rpc(clnt, P9_TOPEN, "db", fid->fid, mode & P9L_MODE_MASK); in p9_client_open()
1238 err = p9pdu_readf(&req->rc, clnt->proto_version, "Qd", &qid, &iounit); in p9_client_open()
1240 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_open()
1245 p9_is_proto_dotl(clnt) ? "RLOPEN" : "ROPEN", qid.type, in p9_client_open()
1253 p9_req_put(clnt, req); in p9_client_open()
1263 struct p9_client *clnt; in p9_client_create_dotl() local
1271 clnt = ofid->clnt; in p9_client_create_dotl()
1276 req = p9_client_rpc(clnt, P9_TLCREATE, "dsddg", ofid->fid, name, flags, in p9_client_create_dotl()
1283 err = p9pdu_readf(&req->rc, clnt->proto_version, "Qd", qid, &iounit); in p9_client_create_dotl()
1285 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_create_dotl()
1297 p9_req_put(clnt, req); in p9_client_create_dotl()
1307 struct p9_client *clnt; in p9_client_fcreate() local
1314 clnt = fid->clnt; in p9_client_fcreate()
1319 req = p9_client_rpc(clnt, P9_TCREATE, "dsdb?s", fid->fid, name, perm, in p9_client_fcreate()
1326 err = p9pdu_readf(&req->rc, clnt->proto_version, "Qd", &qid, &iounit); in p9_client_fcreate()
1328 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_fcreate()
1340 p9_req_put(clnt, req); in p9_client_fcreate()
1350 struct p9_client *clnt; in p9_client_symlink() local
1355 clnt = dfid->clnt; in p9_client_symlink()
1357 req = p9_client_rpc(clnt, P9_TSYMLINK, "dssg", dfid->fid, name, symtgt, in p9_client_symlink()
1364 err = p9pdu_readf(&req->rc, clnt->proto_version, "Q", qid); in p9_client_symlink()
1366 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_symlink()
1374 p9_req_put(clnt, req); in p9_client_symlink()
1382 struct p9_client *clnt; in p9_client_link() local
1387 clnt = dfid->clnt; in p9_client_link()
1388 req = p9_client_rpc(clnt, P9_TLINK, "dds", dfid->fid, oldfid->fid, in p9_client_link()
1394 p9_req_put(clnt, req); in p9_client_link()
1402 struct p9_client *clnt; in p9_client_fsync() local
1407 clnt = fid->clnt; in p9_client_fsync()
1409 req = p9_client_rpc(clnt, P9_TFSYNC, "dd", fid->fid, datasync); in p9_client_fsync()
1417 p9_req_put(clnt, req); in p9_client_fsync()
1427 struct p9_client *clnt; in p9_client_clunk() local
1434 clnt = fid->clnt; in p9_client_clunk()
1436 req = p9_client_rpc(clnt, P9_TCLUNK, "d", fid->fid); in p9_client_clunk()
1444 p9_req_put(clnt, req); in p9_client_clunk()
1463 struct p9_client *clnt; in p9_client_remove() local
1467 clnt = fid->clnt; in p9_client_remove()
1469 req = p9_client_rpc(clnt, P9_TREMOVE, "d", fid->fid); in p9_client_remove()
1477 p9_req_put(clnt, req); in p9_client_remove()
1491 struct p9_client *clnt; in p9_client_unlinkat() local
1496 clnt = dfid->clnt; in p9_client_unlinkat()
1497 req = p9_client_rpc(clnt, P9_TUNLINKAT, "dsd", dfid->fid, name, flags); in p9_client_unlinkat()
1504 p9_req_put(clnt, req); in p9_client_unlinkat()
1533 struct p9_client *clnt = fid->clnt; in p9_client_read_once() local
1544 if (!rsize || rsize > clnt->msize - P9_IOHDRSZ) in p9_client_read_once()
1545 rsize = clnt->msize - P9_IOHDRSZ; in p9_client_read_once()
1551 if (clnt->trans_mod->zc_request && rsize > 1024) { in p9_client_read_once()
1555 req = p9_client_zc_rpc(clnt, P9_TREAD, to, NULL, rsize, in p9_client_read_once()
1560 req = p9_client_rpc(clnt, P9_TREAD, "dqd", fid->fid, offset, in p9_client_read_once()
1570 *err = p9pdu_readf(&req->rc, clnt->proto_version, in p9_client_read_once()
1575 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_read_once()
1576 p9_req_put(clnt, req); in p9_client_read_once()
1591 p9_req_put(clnt, req); in p9_client_read_once()
1597 p9_req_put(clnt, req); in p9_client_read_once()
1605 struct p9_client *clnt = fid->clnt; in p9_client_write() local
1618 if (!rsize || rsize > clnt->msize - P9_IOHDRSZ) in p9_client_write()
1619 rsize = clnt->msize - P9_IOHDRSZ; in p9_client_write()
1625 if (clnt->trans_mod->zc_request && rsize > 1024) { in p9_client_write()
1626 req = p9_client_zc_rpc(clnt, P9_TWRITE, NULL, from, 0, in p9_client_write()
1630 req = p9_client_rpc(clnt, P9_TWRITE, "dqV", fid->fid, in p9_client_write()
1639 *err = p9pdu_readf(&req->rc, clnt->proto_version, "d", &written); in p9_client_write()
1642 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_write()
1643 p9_req_put(clnt, req); in p9_client_write()
1653 p9_req_put(clnt, req); in p9_client_write()
1665 struct p9_client *clnt; in p9_client_stat() local
1676 clnt = fid->clnt; in p9_client_stat()
1678 req = p9_client_rpc(clnt, P9_TSTAT, "d", fid->fid); in p9_client_stat()
1684 err = p9pdu_readf(&req->rc, clnt->proto_version, "wS", &ignored, ret); in p9_client_stat()
1686 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_stat()
1687 p9_req_put(clnt, req); in p9_client_stat()
1704 p9_req_put(clnt, req); in p9_client_stat()
1717 struct p9_client *clnt; in p9_client_getattr_dotl() local
1728 clnt = fid->clnt; in p9_client_getattr_dotl()
1730 req = p9_client_rpc(clnt, P9_TGETATTR, "dq", fid->fid, request_mask); in p9_client_getattr_dotl()
1736 err = p9pdu_readf(&req->rc, clnt->proto_version, "A", ret); in p9_client_getattr_dotl()
1738 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_getattr_dotl()
1739 p9_req_put(clnt, req); in p9_client_getattr_dotl()
1765 p9_req_put(clnt, req); in p9_client_getattr_dotl()
1808 struct p9_client *clnt; in p9_client_wstat() local
1810 clnt = fid->clnt; in p9_client_wstat()
1811 wst->size = p9_client_statsize(wst, clnt->proto_version); in p9_client_wstat()
1827 req = p9_client_rpc(clnt, P9_TWSTAT, "dwS", in p9_client_wstat()
1836 p9_req_put(clnt, req); in p9_client_wstat()
1846 struct p9_client *clnt; in p9_client_setattr() local
1848 clnt = fid->clnt; in p9_client_setattr()
1860 req = p9_client_rpc(clnt, P9_TSETATTR, "dI", fid->fid, p9attr); in p9_client_setattr()
1867 p9_req_put(clnt, req); in p9_client_setattr()
1877 struct p9_client *clnt; in p9_client_statfs() local
1879 clnt = fid->clnt; in p9_client_statfs()
1883 req = p9_client_rpc(clnt, P9_TSTATFS, "d", fid->fid); in p9_client_statfs()
1889 err = p9pdu_readf(&req->rc, clnt->proto_version, "ddqqqqqqd", &sb->type, in p9_client_statfs()
1893 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_statfs()
1894 p9_req_put(clnt, req); in p9_client_statfs()
1903 p9_req_put(clnt, req); in p9_client_statfs()
1914 struct p9_client *clnt; in p9_client_rename() local
1916 clnt = fid->clnt; in p9_client_rename()
1921 req = p9_client_rpc(clnt, P9_TRENAME, "dds", fid->fid, in p9_client_rename()
1930 p9_req_put(clnt, req); in p9_client_rename()
1941 struct p9_client *clnt; in p9_client_renameat() local
1943 clnt = olddirfid->clnt; in p9_client_renameat()
1949 req = p9_client_rpc(clnt, P9_TRENAMEAT, "dsds", olddirfid->fid, in p9_client_renameat()
1959 p9_req_put(clnt, req); in p9_client_renameat()
1972 struct p9_client *clnt; in p9_client_xattrwalk() local
1975 clnt = file_fid->clnt; in p9_client_xattrwalk()
1976 attr_fid = p9_fid_create(clnt); in p9_client_xattrwalk()
1985 req = p9_client_rpc(clnt, P9_TXATTRWALK, "dds", in p9_client_xattrwalk()
1991 err = p9pdu_readf(&req->rc, clnt->proto_version, "q", attr_size); in p9_client_xattrwalk()
1993 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_xattrwalk()
1994 p9_req_put(clnt, req); in p9_client_xattrwalk()
1997 p9_req_put(clnt, req); in p9_client_xattrwalk()
2017 struct p9_client *clnt; in p9_client_xattrcreate() local
2022 clnt = fid->clnt; in p9_client_xattrcreate()
2023 req = p9_client_rpc(clnt, P9_TXATTRCREATE, "dsqd", in p9_client_xattrcreate()
2030 p9_req_put(clnt, req); in p9_client_xattrcreate()
2039 struct p9_client *clnt; in p9_client_readdir() local
2050 clnt = fid->clnt; in p9_client_readdir()
2053 if (!rsize || rsize > clnt->msize - P9_READDIRHDRSZ) in p9_client_readdir()
2054 rsize = clnt->msize - P9_READDIRHDRSZ; in p9_client_readdir()
2060 if (clnt->trans_mod->zc_request && rsize > 1024) { in p9_client_readdir()
2064 req = p9_client_zc_rpc(clnt, P9_TREADDIR, &to, NULL, rsize, 0, in p9_client_readdir()
2068 req = p9_client_rpc(clnt, P9_TREADDIR, "dqd", fid->fid, in p9_client_readdir()
2076 err = p9pdu_readf(&req->rc, clnt->proto_version, "D", &count, &dataptr); in p9_client_readdir()
2078 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_readdir()
2091 p9_req_put(clnt, req); in p9_client_readdir()
2095 p9_req_put(clnt, req); in p9_client_readdir()
2105 struct p9_client *clnt; in p9_client_mknod_dotl() local
2108 clnt = fid->clnt; in p9_client_mknod_dotl()
2112 req = p9_client_rpc(clnt, P9_TMKNOD, "dsdddg", fid->fid, name, mode, in p9_client_mknod_dotl()
2117 err = p9pdu_readf(&req->rc, clnt->proto_version, "Q", qid); in p9_client_mknod_dotl()
2119 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_mknod_dotl()
2126 p9_req_put(clnt, req); in p9_client_mknod_dotl()
2135 struct p9_client *clnt; in p9_client_mkdir_dotl() local
2138 clnt = fid->clnt; in p9_client_mkdir_dotl()
2141 req = p9_client_rpc(clnt, P9_TMKDIR, "dsdg", in p9_client_mkdir_dotl()
2146 err = p9pdu_readf(&req->rc, clnt->proto_version, "Q", qid); in p9_client_mkdir_dotl()
2148 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_mkdir_dotl()
2155 p9_req_put(clnt, req); in p9_client_mkdir_dotl()
2163 struct p9_client *clnt; in p9_client_lock_dotl() local
2166 clnt = fid->clnt; in p9_client_lock_dotl()
2172 req = p9_client_rpc(clnt, P9_TLOCK, "dbdqqds", fid->fid, flock->type, in p9_client_lock_dotl()
2179 err = p9pdu_readf(&req->rc, clnt->proto_version, "b", status); in p9_client_lock_dotl()
2181 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_lock_dotl()
2186 p9_req_put(clnt, req); in p9_client_lock_dotl()
2194 struct p9_client *clnt; in p9_client_getlock_dotl() local
2197 clnt = fid->clnt; in p9_client_getlock_dotl()
2203 req = p9_client_rpc(clnt, P9_TGETLOCK, "dbqqds", fid->fid, in p9_client_getlock_dotl()
2210 err = p9pdu_readf(&req->rc, clnt->proto_version, "bqqds", &glock->type, in p9_client_getlock_dotl()
2214 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_getlock_dotl()
2222 p9_req_put(clnt, req); in p9_client_getlock_dotl()
2230 struct p9_client *clnt; in p9_client_readlink() local
2233 clnt = fid->clnt; in p9_client_readlink()
2236 req = p9_client_rpc(clnt, P9_TREADLINK, "d", fid->fid); in p9_client_readlink()
2240 err = p9pdu_readf(&req->rc, clnt->proto_version, "s", target); in p9_client_readlink()
2242 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_readlink()
2247 p9_req_put(clnt, req); in p9_client_readlink()