Lines Matching refs:clnt

68 inline int p9_is_proto_dotl(struct p9_client *clnt)  in p9_is_proto_dotl()  argument
70 return clnt->proto_version == p9_proto_2000L; in p9_is_proto_dotl()
74 inline int p9_is_proto_dotu(struct p9_client *clnt) in p9_is_proto_dotu() argument
76 return clnt->proto_version == p9_proto_2000u; in p9_is_proto_dotu()
122 static int parse_opts(char *opts, struct p9_client *clnt) in parse_opts() argument
131 clnt->proto_version = p9_proto_2000L; in parse_opts()
132 clnt->msize = 8192; in parse_opts()
159 clnt->msize = option; in parse_opts()
169 clnt->trans_mod = v9fs_get_trans_by_name(s); in parse_opts()
170 if (clnt->trans_mod == NULL) { in parse_opts()
180 clnt->proto_version = p9_proto_legacy; in parse_opts()
196 clnt->proto_version = ret; in parse_opts()
882 static struct p9_fid *p9_fid_create(struct p9_client *clnt) in p9_fid_create() argument
888 p9_debug(P9_DEBUG_FID, "clnt %p\n", clnt); in p9_fid_create()
893 ret = p9_idpool_get(clnt->fidpool); in p9_fid_create()
903 fid->clnt = clnt; in p9_fid_create()
905 spin_lock_irqsave(&clnt->lock, flags); in p9_fid_create()
906 list_add(&fid->flist, &clnt->fidlist); in p9_fid_create()
907 spin_unlock_irqrestore(&clnt->lock, flags); in p9_fid_create()
918 struct p9_client *clnt; in p9_fid_destroy() local
922 clnt = fid->clnt; in p9_fid_destroy()
923 p9_idpool_put(fid->fid, clnt->fidpool); in p9_fid_destroy()
924 spin_lock_irqsave(&clnt->lock, flags); in p9_fid_destroy()
926 spin_unlock_irqrestore(&clnt->lock, flags); in p9_fid_destroy()
993 struct p9_client *clnt; in p9_client_create() local
997 clnt = kmalloc(sizeof(struct p9_client), GFP_KERNEL); in p9_client_create()
998 if (!clnt) in p9_client_create()
1001 clnt->trans_mod = NULL; in p9_client_create()
1002 clnt->trans = NULL; in p9_client_create()
1005 memcpy(clnt->name, client_id, strlen(client_id) + 1); in p9_client_create()
1007 spin_lock_init(&clnt->lock); in p9_client_create()
1008 INIT_LIST_HEAD(&clnt->fidlist); in p9_client_create()
1010 err = p9_tag_init(clnt); in p9_client_create()
1014 err = parse_opts(options, clnt); in p9_client_create()
1018 if (!clnt->trans_mod) in p9_client_create()
1019 clnt->trans_mod = v9fs_get_default_trans(); in p9_client_create()
1021 if (clnt->trans_mod == NULL) { in p9_client_create()
1028 clnt->fidpool = p9_idpool_create(); in p9_client_create()
1029 if (IS_ERR(clnt->fidpool)) { in p9_client_create()
1030 err = PTR_ERR(clnt->fidpool); in p9_client_create()
1035 clnt, clnt->trans_mod, clnt->msize, clnt->proto_version); in p9_client_create()
1037 err = clnt->trans_mod->create(clnt, dev_name, options); in p9_client_create()
1041 if (clnt->msize > clnt->trans_mod->maxsize) in p9_client_create()
1042 clnt->msize = clnt->trans_mod->maxsize; in p9_client_create()
1044 err = p9_client_version(clnt); in p9_client_create()
1048 return clnt; in p9_client_create()
1051 clnt->trans_mod->close(clnt); in p9_client_create()
1053 p9_idpool_destroy(clnt->fidpool); in p9_client_create()
1055 v9fs_put_trans(clnt->trans_mod); in p9_client_create()
1057 p9_idpool_destroy(clnt->tagpool); in p9_client_create()
1059 kfree(clnt); in p9_client_create()
1064 void p9_client_destroy(struct p9_client *clnt) in p9_client_destroy() argument
1068 p9_debug(P9_DEBUG_MUX, "clnt %p\n", clnt); in p9_client_destroy()
1070 if (clnt->trans_mod) in p9_client_destroy()
1071 clnt->trans_mod->close(clnt); in p9_client_destroy()
1073 v9fs_put_trans(clnt->trans_mod); in p9_client_destroy()
1075 list_for_each_entry_safe(fid, fidptr, &clnt->fidlist, flist) { in p9_client_destroy()
1080 if (clnt->fidpool) in p9_client_destroy()
1081 p9_idpool_destroy(clnt->fidpool); in p9_client_destroy()
1083 p9_tag_cleanup(clnt); in p9_client_destroy()
1085 kfree(clnt); in p9_client_destroy()
1089 void p9_client_disconnect(struct p9_client *clnt) in p9_client_disconnect() argument
1091 p9_debug(P9_DEBUG_9P, "clnt %p\n", clnt); in p9_client_disconnect()
1092 clnt->status = Disconnected; in p9_client_disconnect()
1096 void p9_client_begin_disconnect(struct p9_client *clnt) in p9_client_begin_disconnect() argument
1098 p9_debug(P9_DEBUG_9P, "clnt %p\n", clnt); in p9_client_begin_disconnect()
1099 clnt->status = BeginDisconnect; in p9_client_begin_disconnect()
1103 struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid, in p9_client_attach() argument
1114 fid = p9_fid_create(clnt); in p9_client_attach()
1122 req = p9_client_rpc(clnt, P9_TATTACH, "ddss?u", fid->fid, in p9_client_attach()
1129 err = p9pdu_readf(req->rc, clnt->proto_version, "Q", &qid); in p9_client_attach()
1131 trace_9p_protocol_dump(clnt, req->rc); in p9_client_attach()
1132 p9_free_req(clnt, req); in p9_client_attach()
1141 p9_free_req(clnt, req); in p9_client_attach()
1155 struct p9_client *clnt; in p9_client_walk() local
1163 clnt = oldfid->clnt; in p9_client_walk()
1165 fid = p9_fid_create(clnt); in p9_client_walk()
1180 req = p9_client_rpc(clnt, P9_TWALK, "ddT", oldfid->fid, fid->fid, in p9_client_walk()
1187 err = p9pdu_readf(req->rc, clnt->proto_version, "R", &nwqids, &wqids); in p9_client_walk()
1189 trace_9p_protocol_dump(clnt, req->rc); in p9_client_walk()
1190 p9_free_req(clnt, req); in p9_client_walk()
1193 p9_free_req(clnt, req); in p9_client_walk()
1232 struct p9_client *clnt; in p9_client_open() local
1237 clnt = fid->clnt; in p9_client_open()
1239 p9_is_proto_dotl(clnt) ? "TLOPEN" : "TOPEN", fid->fid, mode); in p9_client_open()
1245 if (p9_is_proto_dotl(clnt)) in p9_client_open()
1246 req = p9_client_rpc(clnt, P9_TLOPEN, "dd", fid->fid, mode); in p9_client_open()
1248 req = p9_client_rpc(clnt, P9_TOPEN, "db", fid->fid, mode); in p9_client_open()
1254 err = p9pdu_readf(req->rc, clnt->proto_version, "Qd", &qid, &iounit); in p9_client_open()
1256 trace_9p_protocol_dump(clnt, req->rc); in p9_client_open()
1261 p9_is_proto_dotl(clnt) ? "RLOPEN" : "ROPEN", qid.type, in p9_client_open()
1268 p9_free_req(clnt, req); in p9_client_open()
1278 struct p9_client *clnt; in p9_client_create_dotl() local
1286 clnt = ofid->clnt; in p9_client_create_dotl()
1291 req = p9_client_rpc(clnt, P9_TLCREATE, "dsddg", ofid->fid, name, flags, in p9_client_create_dotl()
1298 err = p9pdu_readf(req->rc, clnt->proto_version, "Qd", qid, &iounit); in p9_client_create_dotl()
1300 trace_9p_protocol_dump(clnt, req->rc); in p9_client_create_dotl()
1313 p9_free_req(clnt, req); in p9_client_create_dotl()
1323 struct p9_client *clnt; in p9_client_fcreate() local
1331 clnt = fid->clnt; in p9_client_fcreate()
1336 req = p9_client_rpc(clnt, P9_TCREATE, "dsdb?s", fid->fid, name, perm, in p9_client_fcreate()
1343 err = p9pdu_readf(req->rc, clnt->proto_version, "Qd", &qid, &iounit); in p9_client_fcreate()
1345 trace_9p_protocol_dump(clnt, req->rc); in p9_client_fcreate()
1358 p9_free_req(clnt, req); in p9_client_fcreate()
1368 struct p9_client *clnt; in p9_client_symlink() local
1373 clnt = dfid->clnt; in p9_client_symlink()
1375 req = p9_client_rpc(clnt, P9_TSYMLINK, "dssg", dfid->fid, name, symtgt, in p9_client_symlink()
1382 err = p9pdu_readf(req->rc, clnt->proto_version, "Q", qid); in p9_client_symlink()
1384 trace_9p_protocol_dump(clnt, req->rc); in p9_client_symlink()
1392 p9_free_req(clnt, req); in p9_client_symlink()
1400 struct p9_client *clnt; in p9_client_link() local
1405 clnt = dfid->clnt; in p9_client_link()
1406 req = p9_client_rpc(clnt, P9_TLINK, "dds", dfid->fid, oldfid->fid, in p9_client_link()
1412 p9_free_req(clnt, req); in p9_client_link()
1420 struct p9_client *clnt; in p9_client_fsync() local
1426 clnt = fid->clnt; in p9_client_fsync()
1428 req = p9_client_rpc(clnt, P9_TFSYNC, "dd", fid->fid, datasync); in p9_client_fsync()
1436 p9_free_req(clnt, req); in p9_client_fsync()
1446 struct p9_client *clnt; in p9_client_clunk() local
1461 clnt = fid->clnt; in p9_client_clunk()
1463 req = p9_client_rpc(clnt, P9_TCLUNK, "d", fid->fid); in p9_client_clunk()
1471 p9_free_req(clnt, req); in p9_client_clunk()
1490 struct p9_client *clnt; in p9_client_remove() local
1495 clnt = fid->clnt; in p9_client_remove()
1497 req = p9_client_rpc(clnt, P9_TREMOVE, "d", fid->fid); in p9_client_remove()
1505 p9_free_req(clnt, req); in p9_client_remove()
1519 struct p9_client *clnt; in p9_client_unlinkat() local
1524 clnt = dfid->clnt; in p9_client_unlinkat()
1525 req = p9_client_rpc(clnt, P9_TUNLINKAT, "dsd", dfid->fid, name, flags); in p9_client_unlinkat()
1532 p9_free_req(clnt, req); in p9_client_unlinkat()
1541 struct p9_client *clnt = fid->clnt; in p9_client_read() local
1555 if (!rsize || rsize > clnt->msize-P9_IOHDRSZ) in p9_client_read()
1556 rsize = clnt->msize - P9_IOHDRSZ; in p9_client_read()
1562 if (clnt->trans_mod->zc_request && rsize > 1024) { in p9_client_read()
1567 req = p9_client_zc_rpc(clnt, P9_TREAD, to, NULL, rsize, in p9_client_read()
1572 req = p9_client_rpc(clnt, P9_TREAD, "dqd", fid->fid, offset, in p9_client_read()
1580 *err = p9pdu_readf(req->rc, clnt->proto_version, in p9_client_read()
1583 trace_9p_protocol_dump(clnt, req->rc); in p9_client_read()
1584 p9_free_req(clnt, req); in p9_client_read()
1590 p9_free_req(clnt, req); in p9_client_read()
1600 p9_free_req(clnt, req); in p9_client_read()
1608 p9_free_req(clnt, req); in p9_client_read()
1617 struct p9_client *clnt = fid->clnt; in p9_client_write() local
1629 if (!rsize || rsize > clnt->msize-P9_IOHDRSZ) in p9_client_write()
1630 rsize = clnt->msize - P9_IOHDRSZ; in p9_client_write()
1636 if (clnt->trans_mod->zc_request && rsize > 1024) { in p9_client_write()
1637 req = p9_client_zc_rpc(clnt, P9_TWRITE, NULL, from, 0, in p9_client_write()
1641 req = p9_client_rpc(clnt, P9_TWRITE, "dqV", fid->fid, in p9_client_write()
1649 *err = p9pdu_readf(req->rc, clnt->proto_version, "d", &count); in p9_client_write()
1651 trace_9p_protocol_dump(clnt, req->rc); in p9_client_write()
1652 p9_free_req(clnt, req); in p9_client_write()
1658 p9_free_req(clnt, req); in p9_client_write()
1670 struct p9_client *clnt; in p9_client_stat() local
1681 clnt = fid->clnt; in p9_client_stat()
1683 req = p9_client_rpc(clnt, P9_TSTAT, "d", fid->fid); in p9_client_stat()
1689 err = p9pdu_readf(req->rc, clnt->proto_version, "wS", &ignored, ret); in p9_client_stat()
1691 trace_9p_protocol_dump(clnt, req->rc); in p9_client_stat()
1692 p9_free_req(clnt, req); in p9_client_stat()
1709 p9_free_req(clnt, req); in p9_client_stat()
1722 struct p9_client *clnt; in p9_client_getattr_dotl() local
1734 clnt = fid->clnt; in p9_client_getattr_dotl()
1736 req = p9_client_rpc(clnt, P9_TGETATTR, "dq", fid->fid, request_mask); in p9_client_getattr_dotl()
1742 err = p9pdu_readf(req->rc, clnt->proto_version, "A", ret); in p9_client_getattr_dotl()
1744 trace_9p_protocol_dump(clnt, req->rc); in p9_client_getattr_dotl()
1745 p9_free_req(clnt, req); in p9_client_getattr_dotl()
1770 p9_free_req(clnt, req); in p9_client_getattr_dotl()
1812 struct p9_client *clnt; in p9_client_wstat() local
1815 clnt = fid->clnt; in p9_client_wstat()
1816 wst->size = p9_client_statsize(wst, clnt->proto_version); in p9_client_wstat()
1831 req = p9_client_rpc(clnt, P9_TWSTAT, "dwS", fid->fid, wst->size+2, wst); in p9_client_wstat()
1839 p9_free_req(clnt, req); in p9_client_wstat()
1849 struct p9_client *clnt; in p9_client_setattr() local
1852 clnt = fid->clnt; in p9_client_setattr()
1864 req = p9_client_rpc(clnt, P9_TSETATTR, "dI", fid->fid, p9attr); in p9_client_setattr()
1871 p9_free_req(clnt, req); in p9_client_setattr()
1881 struct p9_client *clnt; in p9_client_statfs() local
1884 clnt = fid->clnt; in p9_client_statfs()
1888 req = p9_client_rpc(clnt, P9_TSTATFS, "d", fid->fid); in p9_client_statfs()
1894 err = p9pdu_readf(req->rc, clnt->proto_version, "ddqqqqqqd", &sb->type, in p9_client_statfs()
1898 trace_9p_protocol_dump(clnt, req->rc); in p9_client_statfs()
1899 p9_free_req(clnt, req); in p9_client_statfs()
1910 p9_free_req(clnt, req); in p9_client_statfs()
1921 struct p9_client *clnt; in p9_client_rename() local
1924 clnt = fid->clnt; in p9_client_rename()
1929 req = p9_client_rpc(clnt, P9_TRENAME, "dds", fid->fid, in p9_client_rename()
1938 p9_free_req(clnt, req); in p9_client_rename()
1949 struct p9_client *clnt; in p9_client_renameat() local
1952 clnt = olddirfid->clnt; in p9_client_renameat()
1958 req = p9_client_rpc(clnt, P9_TRENAMEAT, "dsds", olddirfid->fid, in p9_client_renameat()
1968 p9_free_req(clnt, req); in p9_client_renameat()
1982 struct p9_client *clnt; in p9_client_xattrwalk() local
1986 clnt = file_fid->clnt; in p9_client_xattrwalk()
1987 attr_fid = p9_fid_create(clnt); in p9_client_xattrwalk()
1997 req = p9_client_rpc(clnt, P9_TXATTRWALK, "dds", in p9_client_xattrwalk()
2003 err = p9pdu_readf(req->rc, clnt->proto_version, "q", attr_size); in p9_client_xattrwalk()
2005 trace_9p_protocol_dump(clnt, req->rc); in p9_client_xattrwalk()
2006 p9_free_req(clnt, req); in p9_client_xattrwalk()
2009 p9_free_req(clnt, req); in p9_client_xattrwalk()
2029 struct p9_client *clnt; in p9_client_xattrcreate() local
2035 clnt = fid->clnt; in p9_client_xattrcreate()
2036 req = p9_client_rpc(clnt, P9_TXATTRCREATE, "dsqd", in p9_client_xattrcreate()
2043 p9_free_req(clnt, req); in p9_client_xattrcreate()
2052 struct p9_client *clnt; in p9_client_readdir() local
2064 clnt = fid->clnt; in p9_client_readdir()
2067 if (!rsize || rsize > clnt->msize-P9_READDIRHDRSZ) in p9_client_readdir()
2068 rsize = clnt->msize - P9_READDIRHDRSZ; in p9_client_readdir()
2074 if (clnt->trans_mod->zc_request && rsize > 1024) { in p9_client_readdir()
2079 req = p9_client_zc_rpc(clnt, P9_TREADDIR, &to, NULL, rsize, 0, in p9_client_readdir()
2083 req = p9_client_rpc(clnt, P9_TREADDIR, "dqd", fid->fid, in p9_client_readdir()
2091 err = p9pdu_readf(req->rc, clnt->proto_version, "D", &count, &dataptr); in p9_client_readdir()
2093 trace_9p_protocol_dump(clnt, req->rc); in p9_client_readdir()
2102 p9_free_req(clnt, req); in p9_client_readdir()
2106 p9_free_req(clnt, req); in p9_client_readdir()
2116 struct p9_client *clnt; in p9_client_mknod_dotl() local
2120 clnt = fid->clnt; in p9_client_mknod_dotl()
2123 req = p9_client_rpc(clnt, P9_TMKNOD, "dsdddg", fid->fid, name, mode, in p9_client_mknod_dotl()
2128 err = p9pdu_readf(req->rc, clnt->proto_version, "Q", qid); in p9_client_mknod_dotl()
2130 trace_9p_protocol_dump(clnt, req->rc); in p9_client_mknod_dotl()
2137 p9_free_req(clnt, req); in p9_client_mknod_dotl()
2147 struct p9_client *clnt; in p9_client_mkdir_dotl() local
2151 clnt = fid->clnt; in p9_client_mkdir_dotl()
2154 req = p9_client_rpc(clnt, P9_TMKDIR, "dsdg", fid->fid, name, mode, in p9_client_mkdir_dotl()
2159 err = p9pdu_readf(req->rc, clnt->proto_version, "Q", qid); in p9_client_mkdir_dotl()
2161 trace_9p_protocol_dump(clnt, req->rc); in p9_client_mkdir_dotl()
2168 p9_free_req(clnt, req); in p9_client_mkdir_dotl()
2177 struct p9_client *clnt; in p9_client_lock_dotl() local
2181 clnt = fid->clnt; in p9_client_lock_dotl()
2187 req = p9_client_rpc(clnt, P9_TLOCK, "dbdqqds", fid->fid, flock->type, in p9_client_lock_dotl()
2194 err = p9pdu_readf(req->rc, clnt->proto_version, "b", status); in p9_client_lock_dotl()
2196 trace_9p_protocol_dump(clnt, req->rc); in p9_client_lock_dotl()
2201 p9_free_req(clnt, req); in p9_client_lock_dotl()
2210 struct p9_client *clnt; in p9_client_getlock_dotl() local
2214 clnt = fid->clnt; in p9_client_getlock_dotl()
2219 req = p9_client_rpc(clnt, P9_TGETLOCK, "dbqqds", fid->fid, glock->type, in p9_client_getlock_dotl()
2225 err = p9pdu_readf(req->rc, clnt->proto_version, "bqqds", &glock->type, in p9_client_getlock_dotl()
2229 trace_9p_protocol_dump(clnt, req->rc); in p9_client_getlock_dotl()
2236 p9_free_req(clnt, req); in p9_client_getlock_dotl()
2244 struct p9_client *clnt; in p9_client_readlink() local
2248 clnt = fid->clnt; in p9_client_readlink()
2251 req = p9_client_rpc(clnt, P9_TREADLINK, "d", fid->fid); in p9_client_readlink()
2255 err = p9pdu_readf(req->rc, clnt->proto_version, "s", target); in p9_client_readlink()
2257 trace_9p_protocol_dump(clnt, req->rc); in p9_client_readlink()
2262 p9_free_req(clnt, req); in p9_client_readlink()