Lines Matching refs:clnt
36 inline int p9_is_proto_dotl(struct p9_client *clnt) in p9_is_proto_dotl() argument
38 return clnt->proto_version == p9_proto_2000L; in p9_is_proto_dotl()
42 inline int p9_is_proto_dotu(struct p9_client *clnt) in p9_is_proto_dotu() argument
44 return clnt->proto_version == p9_proto_2000u; in p9_is_proto_dotu()
48 int p9_show_client_options(struct seq_file *m, struct p9_client *clnt) in p9_show_client_options() argument
50 if (clnt->msize != DEFAULT_MSIZE) in p9_show_client_options()
51 seq_printf(m, ",msize=%u", clnt->msize); in p9_show_client_options()
52 seq_printf(m, ",trans=%s", clnt->trans_mod->name); in p9_show_client_options()
54 switch (clnt->proto_version) { in p9_show_client_options()
66 if (clnt->trans_mod->show_options) in p9_show_client_options()
67 return clnt->trans_mod->show_options(m, clnt); in p9_show_client_options()
84 static int apply_client_options(struct p9_client *clnt, struct fs_context *fc) in apply_client_options() argument
88 clnt->msize = ctx->client_opts.msize; in apply_client_options()
89 clnt->trans_mod = ctx->client_opts.trans_mod; in apply_client_options()
91 clnt->proto_version = ctx->client_opts.proto_version; in apply_client_options()
727 static struct p9_fid *p9_fid_create(struct p9_client *clnt) in p9_fid_create() argument
732 p9_debug(P9_DEBUG_FID, "clnt %p\n", clnt); in p9_fid_create()
739 fid->clnt = clnt; in p9_fid_create()
743 spin_lock_irq(&clnt->lock); in p9_fid_create()
744 ret = idr_alloc_u32(&clnt->fids, fid, &fid->fid, P9_NOFID - 1, in p9_fid_create()
746 spin_unlock_irq(&clnt->lock); in p9_fid_create()
759 struct p9_client *clnt; in p9_fid_destroy() local
764 clnt = fid->clnt; in p9_fid_destroy()
765 spin_lock_irqsave(&clnt->lock, flags); in p9_fid_destroy()
766 idr_remove(&clnt->fids, fid->fid); in p9_fid_destroy()
767 spin_unlock_irqrestore(&clnt->lock, flags); in p9_fid_destroy()
858 struct p9_client *clnt; in p9_client_create() local
862 clnt = kmalloc_obj(*clnt); in p9_client_create()
863 if (!clnt) in p9_client_create()
866 clnt->trans_mod = NULL; in p9_client_create()
867 clnt->trans = NULL; in p9_client_create()
868 clnt->fcall_cache = NULL; in p9_client_create()
871 memcpy(clnt->name, client_id, strlen(client_id) + 1); in p9_client_create()
873 spin_lock_init(&clnt->lock); in p9_client_create()
874 idr_init(&clnt->fids); in p9_client_create()
875 idr_init(&clnt->reqs); in p9_client_create()
877 err = apply_client_options(clnt, fc); in p9_client_create()
881 if (!clnt->trans_mod) in p9_client_create()
882 clnt->trans_mod = v9fs_get_default_trans(); in p9_client_create()
884 if (!clnt->trans_mod) { in p9_client_create()
892 clnt, clnt->trans_mod, clnt->msize, clnt->proto_version); in p9_client_create()
894 err = clnt->trans_mod->create(clnt, fc); in p9_client_create()
898 if (clnt->msize > clnt->trans_mod->maxsize) { in p9_client_create()
899 clnt->msize = clnt->trans_mod->maxsize; in p9_client_create()
902 clnt->msize, clnt->trans_mod->name in p9_client_create()
906 if (clnt->msize < 4096) { in p9_client_create()
913 err = p9_client_version(clnt); in p9_client_create()
927 clnt->fcall_cache = in p9_client_create()
928 kmem_cache_create_usercopy(cache_name, clnt->msize, in p9_client_create()
930 clnt->msize - (P9_HDRSZ + 4), in p9_client_create()
934 return clnt; in p9_client_create()
937 clnt->trans_mod->close(clnt); in p9_client_create()
939 v9fs_put_trans(clnt->trans_mod); in p9_client_create()
941 kfree(clnt); in p9_client_create()
946 void p9_client_destroy(struct p9_client *clnt) in p9_client_destroy() argument
951 p9_debug(P9_DEBUG_MUX, "clnt %p\n", clnt); in p9_client_destroy()
953 if (clnt->trans_mod) in p9_client_destroy()
954 clnt->trans_mod->close(clnt); in p9_client_destroy()
956 v9fs_put_trans(clnt->trans_mod); in p9_client_destroy()
958 idr_for_each_entry(&clnt->fids, fid, id) { in p9_client_destroy()
963 p9_tag_cleanup(clnt); in p9_client_destroy()
965 kmem_cache_destroy(clnt->fcall_cache); in p9_client_destroy()
966 kfree(clnt); in p9_client_destroy()
970 void p9_client_disconnect(struct p9_client *clnt) in p9_client_disconnect() argument
972 p9_debug(P9_DEBUG_9P, "clnt %p\n", clnt); in p9_client_disconnect()
973 clnt->status = Disconnected; in p9_client_disconnect()
977 void p9_client_begin_disconnect(struct p9_client *clnt) in p9_client_begin_disconnect() argument
979 p9_debug(P9_DEBUG_9P, "clnt %p\n", clnt); in p9_client_begin_disconnect()
980 clnt->status = BeginDisconnect; in p9_client_begin_disconnect()
984 struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid, in p9_client_attach() argument
995 fid = p9_fid_create(clnt); in p9_client_attach()
1002 req = p9_client_rpc(clnt, P9_TATTACH, "ddss?u", fid->fid, in p9_client_attach()
1009 err = p9pdu_readf(&req->rc, clnt->proto_version, "Q", &qid); in p9_client_attach()
1011 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_attach()
1012 p9_req_put(clnt, req); in p9_client_attach()
1021 p9_req_put(clnt, req); in p9_client_attach()
1035 struct p9_client *clnt; in p9_client_walk() local
1042 clnt = oldfid->clnt; in p9_client_walk()
1044 fid = p9_fid_create(clnt); in p9_client_walk()
1057 req = p9_client_rpc(clnt, P9_TWALK, "ddT", oldfid->fid, fid->fid, in p9_client_walk()
1064 err = p9pdu_readf(&req->rc, clnt->proto_version, "R", &nwqids, &wqids); in p9_client_walk()
1066 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_walk()
1067 p9_req_put(clnt, req); in p9_client_walk()
1070 p9_req_put(clnt, req); in p9_client_walk()
1109 struct p9_client *clnt; in p9_client_open() local
1114 clnt = fid->clnt; in p9_client_open()
1116 p9_is_proto_dotl(clnt) ? "TLOPEN" : "TOPEN", fid->fid, mode); in p9_client_open()
1121 if (p9_is_proto_dotl(clnt)) in p9_client_open()
1122 req = p9_client_rpc(clnt, P9_TLOPEN, "dd", fid->fid, mode & P9L_MODE_MASK); in p9_client_open()
1124 req = p9_client_rpc(clnt, P9_TOPEN, "db", fid->fid, mode & P9L_MODE_MASK); in p9_client_open()
1130 err = p9pdu_readf(&req->rc, clnt->proto_version, "Qd", &qid, &iounit); in p9_client_open()
1132 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_open()
1137 p9_is_proto_dotl(clnt) ? "RLOPEN" : "ROPEN", qid.type, in p9_client_open()
1145 p9_req_put(clnt, req); in p9_client_open()
1155 struct p9_client *clnt; in p9_client_create_dotl() local
1163 clnt = ofid->clnt; in p9_client_create_dotl()
1168 req = p9_client_rpc(clnt, P9_TLCREATE, "dsddg", ofid->fid, name, flags, in p9_client_create_dotl()
1175 err = p9pdu_readf(&req->rc, clnt->proto_version, "Qd", qid, &iounit); in p9_client_create_dotl()
1177 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_create_dotl()
1189 p9_req_put(clnt, req); in p9_client_create_dotl()
1199 struct p9_client *clnt; in p9_client_fcreate() local
1206 clnt = fid->clnt; in p9_client_fcreate()
1211 req = p9_client_rpc(clnt, P9_TCREATE, "dsdb?s", fid->fid, name, perm, in p9_client_fcreate()
1218 err = p9pdu_readf(&req->rc, clnt->proto_version, "Qd", &qid, &iounit); in p9_client_fcreate()
1220 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_fcreate()
1232 p9_req_put(clnt, req); in p9_client_fcreate()
1242 struct p9_client *clnt; in p9_client_symlink() local
1247 clnt = dfid->clnt; in p9_client_symlink()
1249 req = p9_client_rpc(clnt, P9_TSYMLINK, "dssg", dfid->fid, name, symtgt, in p9_client_symlink()
1256 err = p9pdu_readf(&req->rc, clnt->proto_version, "Q", qid); in p9_client_symlink()
1258 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_symlink()
1266 p9_req_put(clnt, req); in p9_client_symlink()
1274 struct p9_client *clnt; in p9_client_link() local
1279 clnt = dfid->clnt; in p9_client_link()
1280 req = p9_client_rpc(clnt, P9_TLINK, "dds", dfid->fid, oldfid->fid, in p9_client_link()
1286 p9_req_put(clnt, req); in p9_client_link()
1294 struct p9_client *clnt; in p9_client_fsync() local
1299 clnt = fid->clnt; in p9_client_fsync()
1301 req = p9_client_rpc(clnt, P9_TFSYNC, "dd", fid->fid, datasync); in p9_client_fsync()
1309 p9_req_put(clnt, req); in p9_client_fsync()
1319 struct p9_client *clnt; in p9_client_clunk() local
1326 clnt = fid->clnt; in p9_client_clunk()
1328 req = p9_client_rpc(clnt, P9_TCLUNK, "d", fid->fid); in p9_client_clunk()
1336 p9_req_put(clnt, req); in p9_client_clunk()
1355 struct p9_client *clnt; in p9_client_remove() local
1359 clnt = fid->clnt; in p9_client_remove()
1361 req = p9_client_rpc(clnt, P9_TREMOVE, "d", fid->fid); in p9_client_remove()
1369 p9_req_put(clnt, req); in p9_client_remove()
1383 struct p9_client *clnt; in p9_client_unlinkat() local
1388 clnt = dfid->clnt; in p9_client_unlinkat()
1389 req = p9_client_rpc(clnt, P9_TUNLINKAT, "dsd", dfid->fid, name, flags); in p9_client_unlinkat()
1396 p9_req_put(clnt, req); in p9_client_unlinkat()
1425 struct p9_client *clnt = fid->clnt; in p9_client_read_once() local
1437 if (!rsize || rsize > clnt->msize - P9_IOHDRSZ) in p9_client_read_once()
1438 rsize = clnt->msize - P9_IOHDRSZ; in p9_client_read_once()
1444 if (clnt->trans_mod->zc_request && rsize > 1024) { in p9_client_read_once()
1448 req = p9_client_zc_rpc(clnt, P9_TREAD, to, NULL, rsize, in p9_client_read_once()
1453 req = p9_client_rpc(clnt, P9_TREAD, "dqd", fid->fid, offset, in p9_client_read_once()
1463 *err = p9pdu_readf(&req->rc, clnt->proto_version, in p9_client_read_once()
1468 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_read_once()
1469 p9_req_put(clnt, req); in p9_client_read_once()
1475 p9_req_put(clnt, req); in p9_client_read_once()
1486 p9_req_put(clnt, req); in p9_client_read_once()
1492 p9_req_put(clnt, req); in p9_client_read_once()
1500 struct p9_client *clnt = fid->clnt; in p9_client_write() local
1510 if (!rsize || rsize > clnt->msize - P9_IOHDRSZ) in p9_client_write()
1511 rsize = clnt->msize - P9_IOHDRSZ; in p9_client_write()
1520 if (clnt->trans_mod->zc_request && rsize > 1024) { in p9_client_write()
1521 req = p9_client_zc_rpc(clnt, P9_TWRITE, NULL, from, 0, in p9_client_write()
1525 req = p9_client_rpc(clnt, P9_TWRITE, "dqV", fid->fid, in p9_client_write()
1534 *err = p9pdu_readf(&req->rc, clnt->proto_version, "d", &written); in p9_client_write()
1537 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_write()
1538 p9_req_put(clnt, req); in p9_client_write()
1545 p9_req_put(clnt, req); in p9_client_write()
1551 p9_req_put(clnt, req); in p9_client_write()
1565 struct p9_client *clnt = fid->clnt; in p9_client_write_subreq() local
1575 if (clnt->trans_mod->zc_request && len > 1024) { in p9_client_write_subreq()
1576 req = p9_client_zc_rpc(clnt, P9_TWRITE, NULL, &subreq->io_iter, in p9_client_write_subreq()
1580 req = p9_client_rpc(clnt, P9_TWRITE, "dqV", fid->fid, in p9_client_write_subreq()
1588 err = p9pdu_readf(&req->rc, clnt->proto_version, "d", &written); in p9_client_write_subreq()
1590 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_write_subreq()
1591 p9_req_put(clnt, req); in p9_client_write_subreq()
1603 p9_req_put(clnt, req); in p9_client_write_subreq()
1611 struct p9_client *clnt; in p9_client_stat() local
1622 clnt = fid->clnt; in p9_client_stat()
1624 req = p9_client_rpc(clnt, P9_TSTAT, "d", fid->fid); in p9_client_stat()
1630 err = p9pdu_readf(&req->rc, clnt->proto_version, "wS", &ignored, ret); in p9_client_stat()
1632 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_stat()
1633 p9_req_put(clnt, req); in p9_client_stat()
1650 p9_req_put(clnt, req); in p9_client_stat()
1663 struct p9_client *clnt; in p9_client_getattr_dotl() local
1674 clnt = fid->clnt; in p9_client_getattr_dotl()
1676 req = p9_client_rpc(clnt, P9_TGETATTR, "dq", fid->fid, request_mask); in p9_client_getattr_dotl()
1682 err = p9pdu_readf(&req->rc, clnt->proto_version, "A", ret); in p9_client_getattr_dotl()
1684 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_getattr_dotl()
1685 p9_req_put(clnt, req); in p9_client_getattr_dotl()
1711 p9_req_put(clnt, req); in p9_client_getattr_dotl()
1754 struct p9_client *clnt; in p9_client_wstat() local
1756 clnt = fid->clnt; in p9_client_wstat()
1757 wst->size = p9_client_statsize(wst, clnt->proto_version); in p9_client_wstat()
1773 req = p9_client_rpc(clnt, P9_TWSTAT, "dwS", in p9_client_wstat()
1782 p9_req_put(clnt, req); in p9_client_wstat()
1792 struct p9_client *clnt; in p9_client_setattr() local
1794 clnt = fid->clnt; in p9_client_setattr()
1806 req = p9_client_rpc(clnt, P9_TSETATTR, "dI", fid->fid, p9attr); in p9_client_setattr()
1813 p9_req_put(clnt, req); in p9_client_setattr()
1823 struct p9_client *clnt; in p9_client_statfs() local
1825 clnt = fid->clnt; in p9_client_statfs()
1829 req = p9_client_rpc(clnt, P9_TSTATFS, "d", fid->fid); in p9_client_statfs()
1835 err = p9pdu_readf(&req->rc, clnt->proto_version, "ddqqqqqqd", &sb->type, in p9_client_statfs()
1839 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_statfs()
1840 p9_req_put(clnt, req); in p9_client_statfs()
1849 p9_req_put(clnt, req); in p9_client_statfs()
1860 struct p9_client *clnt; in p9_client_rename() local
1862 clnt = fid->clnt; in p9_client_rename()
1867 req = p9_client_rpc(clnt, P9_TRENAME, "dds", fid->fid, in p9_client_rename()
1876 p9_req_put(clnt, req); in p9_client_rename()
1887 struct p9_client *clnt; in p9_client_renameat() local
1889 clnt = olddirfid->clnt; in p9_client_renameat()
1895 req = p9_client_rpc(clnt, P9_TRENAMEAT, "dsds", olddirfid->fid, in p9_client_renameat()
1905 p9_req_put(clnt, req); in p9_client_renameat()
1918 struct p9_client *clnt; in p9_client_xattrwalk() local
1921 clnt = file_fid->clnt; in p9_client_xattrwalk()
1922 attr_fid = p9_fid_create(clnt); in p9_client_xattrwalk()
1931 req = p9_client_rpc(clnt, P9_TXATTRWALK, "dds", in p9_client_xattrwalk()
1937 err = p9pdu_readf(&req->rc, clnt->proto_version, "q", attr_size); in p9_client_xattrwalk()
1939 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_xattrwalk()
1940 p9_req_put(clnt, req); in p9_client_xattrwalk()
1943 p9_req_put(clnt, req); in p9_client_xattrwalk()
1963 struct p9_client *clnt; in p9_client_xattrcreate() local
1968 clnt = fid->clnt; in p9_client_xattrcreate()
1969 req = p9_client_rpc(clnt, P9_TXATTRCREATE, "dsqd", in p9_client_xattrcreate()
1976 p9_req_put(clnt, req); in p9_client_xattrcreate()
1986 struct p9_client *clnt; in p9_client_readdir() local
1997 clnt = fid->clnt; in p9_client_readdir()
2000 if (!rsize || rsize > clnt->msize - P9_READDIRHDRSZ) in p9_client_readdir()
2001 rsize = clnt->msize - P9_READDIRHDRSZ; in p9_client_readdir()
2007 if (clnt->trans_mod->zc_request && rsize > 1024) { in p9_client_readdir()
2011 req = p9_client_zc_rpc(clnt, P9_TREADDIR, &to, NULL, rsize, 0, in p9_client_readdir()
2015 req = p9_client_rpc(clnt, P9_TREADDIR, "dqd", fid->fid, in p9_client_readdir()
2023 err = p9pdu_readf(&req->rc, clnt->proto_version, "D", &count, &dataptr); in p9_client_readdir()
2025 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_readdir()
2039 p9_req_put(clnt, req); in p9_client_readdir()
2043 p9_req_put(clnt, req); in p9_client_readdir()
2053 struct p9_client *clnt; in p9_client_mknod_dotl() local
2056 clnt = fid->clnt; in p9_client_mknod_dotl()
2060 req = p9_client_rpc(clnt, P9_TMKNOD, "dsdddg", fid->fid, name, mode, in p9_client_mknod_dotl()
2065 err = p9pdu_readf(&req->rc, clnt->proto_version, "Q", qid); in p9_client_mknod_dotl()
2067 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_mknod_dotl()
2074 p9_req_put(clnt, req); in p9_client_mknod_dotl()
2083 struct p9_client *clnt; in p9_client_mkdir_dotl() local
2086 clnt = fid->clnt; in p9_client_mkdir_dotl()
2089 req = p9_client_rpc(clnt, P9_TMKDIR, "dsdg", in p9_client_mkdir_dotl()
2094 err = p9pdu_readf(&req->rc, clnt->proto_version, "Q", qid); in p9_client_mkdir_dotl()
2096 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_mkdir_dotl()
2103 p9_req_put(clnt, req); in p9_client_mkdir_dotl()
2111 struct p9_client *clnt; in p9_client_lock_dotl() local
2114 clnt = fid->clnt; in p9_client_lock_dotl()
2120 req = p9_client_rpc(clnt, P9_TLOCK, "dbdqqds", fid->fid, flock->type, in p9_client_lock_dotl()
2127 err = p9pdu_readf(&req->rc, clnt->proto_version, "b", status); in p9_client_lock_dotl()
2129 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_lock_dotl()
2134 p9_req_put(clnt, req); in p9_client_lock_dotl()
2142 struct p9_client *clnt; in p9_client_getlock_dotl() local
2145 clnt = fid->clnt; in p9_client_getlock_dotl()
2151 req = p9_client_rpc(clnt, P9_TGETLOCK, "dbqqds", fid->fid, in p9_client_getlock_dotl()
2158 err = p9pdu_readf(&req->rc, clnt->proto_version, "bqqds", &glock->type, in p9_client_getlock_dotl()
2162 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_getlock_dotl()
2170 p9_req_put(clnt, req); in p9_client_getlock_dotl()
2178 struct p9_client *clnt; in p9_client_readlink() local
2181 clnt = fid->clnt; in p9_client_readlink()
2184 req = p9_client_rpc(clnt, P9_TREADLINK, "d", fid->fid); in p9_client_readlink()
2188 err = p9pdu_readf(&req->rc, clnt->proto_version, "s", target); in p9_client_readlink()
2190 trace_9p_protocol_dump(clnt, &req->rc); in p9_client_readlink()
2195 p9_req_put(clnt, req); in p9_client_readlink()