Lines Matching refs:req
270 struct p9_req_t *req; in p9_tag_alloc() local
301 req = &c->reqs[row][col]; in p9_tag_alloc()
302 if (!req->wq) { in p9_tag_alloc()
303 req->wq = kmalloc(sizeof(wait_queue_head_t), GFP_NOFS); in p9_tag_alloc()
304 if (!req->wq) in p9_tag_alloc()
306 init_waitqueue_head(req->wq); in p9_tag_alloc()
309 if (!req->tc) in p9_tag_alloc()
310 req->tc = p9_fcall_alloc(alloc_msize); in p9_tag_alloc()
311 if (!req->rc) in p9_tag_alloc()
312 req->rc = p9_fcall_alloc(alloc_msize); in p9_tag_alloc()
313 if (!req->tc || !req->rc) in p9_tag_alloc()
316 p9pdu_reset(req->tc); in p9_tag_alloc()
317 p9pdu_reset(req->rc); in p9_tag_alloc()
319 req->tc->tag = tag-1; in p9_tag_alloc()
320 req->status = REQ_STATUS_ALLOC; in p9_tag_alloc()
322 return req; in p9_tag_alloc()
326 kfree(req->tc); in p9_tag_alloc()
327 kfree(req->rc); in p9_tag_alloc()
328 kfree(req->wq); in p9_tag_alloc()
329 req->tc = req->rc = NULL; in p9_tag_alloc()
330 req->wq = NULL; in p9_tag_alloc()
450 void p9_client_cb(struct p9_client *c, struct p9_req_t *req, int status) in p9_client_cb() argument
452 p9_debug(P9_DEBUG_MUX, " tag %d\n", req->tc->tag); in p9_client_cb()
459 req->status = status; in p9_client_cb()
461 wake_up(req->wq); in p9_client_cb()
462 p9_debug(P9_DEBUG_MUX, "wakeup: %d\n", req->tc->tag); in p9_client_cb()
526 static int p9_check_errors(struct p9_client *c, struct p9_req_t *req) in p9_check_errors() argument
532 err = p9_parse_header(req->rc, NULL, &type, NULL, 0); in p9_check_errors()
537 trace_9p_protocol_dump(c, req->rc); in p9_check_errors()
547 err = p9pdu_readf(req->rc, c->proto_version, "s?d", in p9_check_errors()
563 err = p9pdu_readf(req->rc, c->proto_version, "d", &ecode); in p9_check_errors()
589 static int p9_check_zc_errors(struct p9_client *c, struct p9_req_t *req, in p9_check_zc_errors() argument
597 err = p9_parse_header(req->rc, NULL, &type, NULL, 0); in p9_check_zc_errors()
602 trace_9p_protocol_dump(c, req->rc); in p9_check_zc_errors()
617 len = req->rc->size - req->rc->offset; in p9_check_zc_errors()
623 ename = &req->rc->sdata[req->rc->offset]; in p9_check_zc_errors()
633 err = p9pdu_readf(req->rc, c->proto_version, "s?d", in p9_check_zc_errors()
649 err = p9pdu_readf(req->rc, c->proto_version, "d", &ecode); in p9_check_zc_errors()
678 struct p9_req_t *req; in p9_client_flush() local
688 req = p9_client_rpc(c, P9_TFLUSH, "w", oldtag); in p9_client_flush()
689 if (IS_ERR(req)) in p9_client_flush()
690 return PTR_ERR(req); in p9_client_flush()
700 p9_free_req(c, req); in p9_client_flush()
709 struct p9_req_t *req; in p9_client_prepare_req() local
728 req = p9_tag_alloc(c, tag, req_size); in p9_client_prepare_req()
729 if (IS_ERR(req)) in p9_client_prepare_req()
730 return req; in p9_client_prepare_req()
733 p9pdu_prepare(req->tc, tag, type); in p9_client_prepare_req()
734 err = p9pdu_vwritef(req->tc, c->proto_version, fmt, ap); in p9_client_prepare_req()
737 p9pdu_finalize(c, req->tc); in p9_client_prepare_req()
739 return req; in p9_client_prepare_req()
741 p9_free_req(c, req); in p9_client_prepare_req()
760 struct p9_req_t *req; in p9_client_rpc() local
763 req = p9_client_prepare_req(c, type, c->msize, fmt, ap); in p9_client_rpc()
765 if (IS_ERR(req)) in p9_client_rpc()
766 return req; in p9_client_rpc()
774 err = c->trans_mod->request(c, req); in p9_client_rpc()
782 err = wait_event_killable(*req->wq, req->status >= REQ_STATUS_RCVD); in p9_client_rpc()
797 if (req->status == REQ_STATUS_ERROR) { in p9_client_rpc()
798 p9_debug(P9_DEBUG_ERROR, "req_status error %d\n", req->t_err); in p9_client_rpc()
799 err = req->t_err; in p9_client_rpc()
806 if (c->trans_mod->cancel(c, req)) in p9_client_rpc()
807 p9_client_flush(c, req); in p9_client_rpc()
810 if (req->status == REQ_STATUS_RCVD) in p9_client_rpc()
821 err = p9_check_errors(c, req); in p9_client_rpc()
822 trace_9p_client_res(c, type, req->rc->tag, err); in p9_client_rpc()
824 return req; in p9_client_rpc()
826 p9_free_req(c, req); in p9_client_rpc()
852 struct p9_req_t *req; in p9_client_zc_rpc() local
859 req = p9_client_prepare_req(c, type, P9_ZC_HDR_SZ, fmt, ap); in p9_client_zc_rpc()
861 if (IS_ERR(req)) in p9_client_zc_rpc()
862 return req; in p9_client_zc_rpc()
870 err = c->trans_mod->zc_request(c, req, uidata, uodata, in p9_client_zc_rpc()
878 if (req->status == REQ_STATUS_ERROR) { in p9_client_zc_rpc()
879 p9_debug(P9_DEBUG_ERROR, "req_status error %d\n", req->t_err); in p9_client_zc_rpc()
880 err = req->t_err; in p9_client_zc_rpc()
887 if (c->trans_mod->cancel(c, req)) in p9_client_zc_rpc()
888 p9_client_flush(c, req); in p9_client_zc_rpc()
891 if (req->status == REQ_STATUS_RCVD) in p9_client_zc_rpc()
902 err = p9_check_zc_errors(c, req, uidata, in_hdrlen); in p9_client_zc_rpc()
903 trace_9p_client_res(c, type, req->rc->tag, err); in p9_client_zc_rpc()
905 return req; in p9_client_zc_rpc()
907 p9_free_req(c, req); in p9_client_zc_rpc()
963 struct p9_req_t *req; in p9_client_version() local
972 req = p9_client_rpc(c, P9_TVERSION, "ds", in p9_client_version()
976 req = p9_client_rpc(c, P9_TVERSION, "ds", in p9_client_version()
980 req = p9_client_rpc(c, P9_TVERSION, "ds", in p9_client_version()
987 if (IS_ERR(req)) in p9_client_version()
988 return PTR_ERR(req); in p9_client_version()
990 err = p9pdu_readf(req->rc, c->proto_version, "ds", &msize, &version); in p9_client_version()
993 trace_9p_protocol_dump(c, req->rc); in p9_client_version()
1022 p9_free_req(c, req); in p9_client_version()
1151 struct p9_req_t *req; in p9_client_attach() local
1166 req = p9_client_rpc(clnt, P9_TATTACH, "ddss?u", fid->fid, in p9_client_attach()
1168 if (IS_ERR(req)) { in p9_client_attach()
1169 err = PTR_ERR(req); in p9_client_attach()
1173 err = p9pdu_readf(req->rc, clnt->proto_version, "Q", &qid); in p9_client_attach()
1175 trace_9p_protocol_dump(clnt, req->rc); in p9_client_attach()
1176 p9_free_req(clnt, req); in p9_client_attach()
1185 p9_free_req(clnt, req); in p9_client_attach()
1202 struct p9_req_t *req; in p9_client_walk() local
1224 req = p9_client_rpc(clnt, P9_TWALK, "ddT", oldfid->fid, fid->fid, in p9_client_walk()
1226 if (IS_ERR(req)) { in p9_client_walk()
1227 err = PTR_ERR(req); in p9_client_walk()
1231 err = p9pdu_readf(req->rc, clnt->proto_version, "R", &nwqids, &wqids); in p9_client_walk()
1233 trace_9p_protocol_dump(clnt, req->rc); in p9_client_walk()
1234 p9_free_req(clnt, req); in p9_client_walk()
1237 p9_free_req(clnt, req); in p9_client_walk()
1277 struct p9_req_t *req; in p9_client_open() local
1290 req = p9_client_rpc(clnt, P9_TLOPEN, "dd", fid->fid, mode); in p9_client_open()
1292 req = p9_client_rpc(clnt, P9_TOPEN, "db", fid->fid, mode); in p9_client_open()
1293 if (IS_ERR(req)) { in p9_client_open()
1294 err = PTR_ERR(req); in p9_client_open()
1298 err = p9pdu_readf(req->rc, clnt->proto_version, "Qd", &qid, &iounit); in p9_client_open()
1300 trace_9p_protocol_dump(clnt, req->rc); in p9_client_open()
1312 p9_free_req(clnt, req); in p9_client_open()
1323 struct p9_req_t *req; in p9_client_create_dotl() local
1335 req = p9_client_rpc(clnt, P9_TLCREATE, "dsddg", ofid->fid, name, flags, in p9_client_create_dotl()
1337 if (IS_ERR(req)) { in p9_client_create_dotl()
1338 err = PTR_ERR(req); in p9_client_create_dotl()
1342 err = p9pdu_readf(req->rc, clnt->proto_version, "Qd", qid, &iounit); in p9_client_create_dotl()
1344 trace_9p_protocol_dump(clnt, req->rc); in p9_client_create_dotl()
1357 p9_free_req(clnt, req); in p9_client_create_dotl()
1368 struct p9_req_t *req; in p9_client_fcreate() local
1380 req = p9_client_rpc(clnt, P9_TCREATE, "dsdb?s", fid->fid, name, perm, in p9_client_fcreate()
1382 if (IS_ERR(req)) { in p9_client_fcreate()
1383 err = PTR_ERR(req); in p9_client_fcreate()
1387 err = p9pdu_readf(req->rc, clnt->proto_version, "Qd", &qid, &iounit); in p9_client_fcreate()
1389 trace_9p_protocol_dump(clnt, req->rc); in p9_client_fcreate()
1402 p9_free_req(clnt, req); in p9_client_fcreate()
1413 struct p9_req_t *req; in p9_client_symlink() local
1419 req = p9_client_rpc(clnt, P9_TSYMLINK, "dssg", dfid->fid, name, symtgt, in p9_client_symlink()
1421 if (IS_ERR(req)) { in p9_client_symlink()
1422 err = PTR_ERR(req); in p9_client_symlink()
1426 err = p9pdu_readf(req->rc, clnt->proto_version, "Q", qid); in p9_client_symlink()
1428 trace_9p_protocol_dump(clnt, req->rc); in p9_client_symlink()
1436 p9_free_req(clnt, req); in p9_client_symlink()
1445 struct p9_req_t *req; in p9_client_link() local
1450 req = p9_client_rpc(clnt, P9_TLINK, "dds", dfid->fid, oldfid->fid, in p9_client_link()
1452 if (IS_ERR(req)) in p9_client_link()
1453 return PTR_ERR(req); in p9_client_link()
1456 p9_free_req(clnt, req); in p9_client_link()
1465 struct p9_req_t *req; in p9_client_fsync() local
1472 req = p9_client_rpc(clnt, P9_TFSYNC, "dd", fid->fid, datasync); in p9_client_fsync()
1473 if (IS_ERR(req)) { in p9_client_fsync()
1474 err = PTR_ERR(req); in p9_client_fsync()
1480 p9_free_req(clnt, req); in p9_client_fsync()
1491 struct p9_req_t *req; in p9_client_clunk() local
1507 req = p9_client_rpc(clnt, P9_TCLUNK, "d", fid->fid); in p9_client_clunk()
1508 if (IS_ERR(req)) { in p9_client_clunk()
1509 err = PTR_ERR(req); in p9_client_clunk()
1515 p9_free_req(clnt, req); in p9_client_clunk()
1535 struct p9_req_t *req; in p9_client_remove() local
1541 req = p9_client_rpc(clnt, P9_TREMOVE, "d", fid->fid); in p9_client_remove()
1542 if (IS_ERR(req)) { in p9_client_remove()
1543 err = PTR_ERR(req); in p9_client_remove()
1549 p9_free_req(clnt, req); in p9_client_remove()
1562 struct p9_req_t *req; in p9_client_unlinkat() local
1569 req = p9_client_rpc(clnt, P9_TUNLINKAT, "dsd", dfid->fid, name, flags); in p9_client_unlinkat()
1570 if (IS_ERR(req)) { in p9_client_unlinkat()
1571 err = PTR_ERR(req); in p9_client_unlinkat()
1576 p9_free_req(clnt, req); in p9_client_unlinkat()
1586 struct p9_req_t *req; in p9_client_read() local
1611 req = p9_client_zc_rpc(clnt, P9_TREAD, to, NULL, rsize, in p9_client_read()
1616 req = p9_client_rpc(clnt, P9_TREAD, "dqd", fid->fid, offset, in p9_client_read()
1619 if (IS_ERR(req)) { in p9_client_read()
1620 *err = PTR_ERR(req); in p9_client_read()
1624 *err = p9pdu_readf(req->rc, clnt->proto_version, in p9_client_read()
1627 trace_9p_protocol_dump(clnt, req->rc); in p9_client_read()
1628 p9_free_req(clnt, req); in p9_client_read()
1638 p9_free_req(clnt, req); in p9_client_read()
1648 p9_free_req(clnt, req); in p9_client_read()
1656 p9_free_req(clnt, req); in p9_client_read()
1666 struct p9_req_t *req; in p9_client_write() local
1685 req = p9_client_zc_rpc(clnt, P9_TWRITE, NULL, from, 0, in p9_client_write()
1689 req = p9_client_rpc(clnt, P9_TWRITE, "dqV", fid->fid, in p9_client_write()
1692 if (IS_ERR(req)) { in p9_client_write()
1693 *err = PTR_ERR(req); in p9_client_write()
1697 *err = p9pdu_readf(req->rc, clnt->proto_version, "d", &count); in p9_client_write()
1699 trace_9p_protocol_dump(clnt, req->rc); in p9_client_write()
1700 p9_free_req(clnt, req); in p9_client_write()
1710 p9_free_req(clnt, req); in p9_client_write()
1724 struct p9_req_t *req; in p9_client_stat() local
1735 req = p9_client_rpc(clnt, P9_TSTAT, "d", fid->fid); in p9_client_stat()
1736 if (IS_ERR(req)) { in p9_client_stat()
1737 err = PTR_ERR(req); in p9_client_stat()
1741 err = p9pdu_readf(req->rc, clnt->proto_version, "wS", &ignored, ret); in p9_client_stat()
1743 trace_9p_protocol_dump(clnt, req->rc); in p9_client_stat()
1744 p9_free_req(clnt, req); in p9_client_stat()
1761 p9_free_req(clnt, req); in p9_client_stat()
1777 struct p9_req_t *req; in p9_client_getattr_dotl() local
1788 req = p9_client_rpc(clnt, P9_TGETATTR, "dq", fid->fid, request_mask); in p9_client_getattr_dotl()
1789 if (IS_ERR(req)) { in p9_client_getattr_dotl()
1790 err = PTR_ERR(req); in p9_client_getattr_dotl()
1794 err = p9pdu_readf(req->rc, clnt->proto_version, "A", ret); in p9_client_getattr_dotl()
1796 trace_9p_protocol_dump(clnt, req->rc); in p9_client_getattr_dotl()
1797 p9_free_req(clnt, req); in p9_client_getattr_dotl()
1822 p9_free_req(clnt, req); in p9_client_getattr_dotl()
1863 struct p9_req_t *req; in p9_client_wstat() local
1883 req = p9_client_rpc(clnt, P9_TWSTAT, "dwS", fid->fid, wst->size+2, wst); in p9_client_wstat()
1884 if (IS_ERR(req)) { in p9_client_wstat()
1885 err = PTR_ERR(req); in p9_client_wstat()
1891 p9_free_req(clnt, req); in p9_client_wstat()
1900 struct p9_req_t *req; in p9_client_setattr() local
1916 req = p9_client_rpc(clnt, P9_TSETATTR, "dI", fid->fid, p9attr); in p9_client_setattr()
1918 if (IS_ERR(req)) { in p9_client_setattr()
1919 err = PTR_ERR(req); in p9_client_setattr()
1923 p9_free_req(clnt, req); in p9_client_setattr()
1932 struct p9_req_t *req; in p9_client_statfs() local
1940 req = p9_client_rpc(clnt, P9_TSTATFS, "d", fid->fid); in p9_client_statfs()
1941 if (IS_ERR(req)) { in p9_client_statfs()
1942 err = PTR_ERR(req); in p9_client_statfs()
1946 err = p9pdu_readf(req->rc, clnt->proto_version, "ddqqqqqqd", &sb->type, in p9_client_statfs()
1950 trace_9p_protocol_dump(clnt, req->rc); in p9_client_statfs()
1951 p9_free_req(clnt, req); in p9_client_statfs()
1962 p9_free_req(clnt, req); in p9_client_statfs()
1972 struct p9_req_t *req; in p9_client_rename() local
1981 req = p9_client_rpc(clnt, P9_TRENAME, "dds", fid->fid, in p9_client_rename()
1983 if (IS_ERR(req)) { in p9_client_rename()
1984 err = PTR_ERR(req); in p9_client_rename()
1990 p9_free_req(clnt, req); in p9_client_rename()
2000 struct p9_req_t *req; in p9_client_renameat() local
2010 req = p9_client_rpc(clnt, P9_TRENAMEAT, "dsds", olddirfid->fid, in p9_client_renameat()
2012 if (IS_ERR(req)) { in p9_client_renameat()
2013 err = PTR_ERR(req); in p9_client_renameat()
2020 p9_free_req(clnt, req); in p9_client_renameat()
2033 struct p9_req_t *req; in p9_client_xattrwalk() local
2049 req = p9_client_rpc(clnt, P9_TXATTRWALK, "dds", in p9_client_xattrwalk()
2051 if (IS_ERR(req)) { in p9_client_xattrwalk()
2052 err = PTR_ERR(req); in p9_client_xattrwalk()
2055 err = p9pdu_readf(req->rc, clnt->proto_version, "q", attr_size); in p9_client_xattrwalk()
2057 trace_9p_protocol_dump(clnt, req->rc); in p9_client_xattrwalk()
2058 p9_free_req(clnt, req); in p9_client_xattrwalk()
2061 p9_free_req(clnt, req); in p9_client_xattrwalk()
2080 struct p9_req_t *req; in p9_client_xattrcreate() local
2088 req = p9_client_rpc(clnt, P9_TXATTRCREATE, "dsqd", in p9_client_xattrcreate()
2090 if (IS_ERR(req)) { in p9_client_xattrcreate()
2091 err = PTR_ERR(req); in p9_client_xattrcreate()
2095 p9_free_req(clnt, req); in p9_client_xattrcreate()
2105 struct p9_req_t *req; in p9_client_readdir() local
2131 req = p9_client_zc_rpc(clnt, P9_TREADDIR, &to, NULL, rsize, 0, in p9_client_readdir()
2135 req = p9_client_rpc(clnt, P9_TREADDIR, "dqd", fid->fid, in p9_client_readdir()
2138 if (IS_ERR(req)) { in p9_client_readdir()
2139 err = PTR_ERR(req); in p9_client_readdir()
2143 err = p9pdu_readf(req->rc, clnt->proto_version, "D", &count, &dataptr); in p9_client_readdir()
2145 trace_9p_protocol_dump(clnt, req->rc); in p9_client_readdir()
2158 p9_free_req(clnt, req); in p9_client_readdir()
2162 p9_free_req(clnt, req); in p9_client_readdir()
2173 struct p9_req_t *req; in p9_client_mknod_dotl() local
2179 req = p9_client_rpc(clnt, P9_TMKNOD, "dsdddg", fid->fid, name, mode, in p9_client_mknod_dotl()
2181 if (IS_ERR(req)) in p9_client_mknod_dotl()
2182 return PTR_ERR(req); in p9_client_mknod_dotl()
2184 err = p9pdu_readf(req->rc, clnt->proto_version, "Q", qid); in p9_client_mknod_dotl()
2186 trace_9p_protocol_dump(clnt, req->rc); in p9_client_mknod_dotl()
2193 p9_free_req(clnt, req); in p9_client_mknod_dotl()
2204 struct p9_req_t *req; in p9_client_mkdir_dotl() local
2210 req = p9_client_rpc(clnt, P9_TMKDIR, "dsdg", fid->fid, name, mode, in p9_client_mkdir_dotl()
2212 if (IS_ERR(req)) in p9_client_mkdir_dotl()
2213 return PTR_ERR(req); in p9_client_mkdir_dotl()
2215 err = p9pdu_readf(req->rc, clnt->proto_version, "Q", qid); in p9_client_mkdir_dotl()
2217 trace_9p_protocol_dump(clnt, req->rc); in p9_client_mkdir_dotl()
2224 p9_free_req(clnt, req); in p9_client_mkdir_dotl()
2234 struct p9_req_t *req; in p9_client_lock_dotl() local
2243 req = p9_client_rpc(clnt, P9_TLOCK, "dbdqqds", fid->fid, flock->type, in p9_client_lock_dotl()
2247 if (IS_ERR(req)) in p9_client_lock_dotl()
2248 return PTR_ERR(req); in p9_client_lock_dotl()
2250 err = p9pdu_readf(req->rc, clnt->proto_version, "b", status); in p9_client_lock_dotl()
2252 trace_9p_protocol_dump(clnt, req->rc); in p9_client_lock_dotl()
2257 p9_free_req(clnt, req); in p9_client_lock_dotl()
2267 struct p9_req_t *req; in p9_client_getlock_dotl() local
2275 req = p9_client_rpc(clnt, P9_TGETLOCK, "dbqqds", fid->fid, glock->type, in p9_client_getlock_dotl()
2278 if (IS_ERR(req)) in p9_client_getlock_dotl()
2279 return PTR_ERR(req); in p9_client_getlock_dotl()
2281 err = p9pdu_readf(req->rc, clnt->proto_version, "bqqds", &glock->type, in p9_client_getlock_dotl()
2285 trace_9p_protocol_dump(clnt, req->rc); in p9_client_getlock_dotl()
2292 p9_free_req(clnt, req); in p9_client_getlock_dotl()
2301 struct p9_req_t *req; in p9_client_readlink() local
2307 req = p9_client_rpc(clnt, P9_TREADLINK, "d", fid->fid); in p9_client_readlink()
2308 if (IS_ERR(req)) in p9_client_readlink()
2309 return PTR_ERR(req); in p9_client_readlink()
2311 err = p9pdu_readf(req->rc, clnt->proto_version, "s", target); in p9_client_readlink()
2313 trace_9p_protocol_dump(clnt, req->rc); in p9_client_readlink()
2318 p9_free_req(clnt, req); in p9_client_readlink()