Lines Matching refs:req
239 struct p9_req_t *req; in p9_tag_alloc() local
270 req = &c->reqs[row][col]; in p9_tag_alloc()
271 if (!req->wq) { in p9_tag_alloc()
272 req->wq = kmalloc(sizeof(wait_queue_head_t), GFP_NOFS); in p9_tag_alloc()
273 if (!req->wq) in p9_tag_alloc()
275 init_waitqueue_head(req->wq); in p9_tag_alloc()
278 if (!req->tc) in p9_tag_alloc()
279 req->tc = p9_fcall_alloc(alloc_msize); in p9_tag_alloc()
280 if (!req->rc) in p9_tag_alloc()
281 req->rc = p9_fcall_alloc(alloc_msize); in p9_tag_alloc()
282 if (!req->tc || !req->rc) in p9_tag_alloc()
285 p9pdu_reset(req->tc); in p9_tag_alloc()
286 p9pdu_reset(req->rc); in p9_tag_alloc()
288 req->tc->tag = tag-1; in p9_tag_alloc()
289 req->status = REQ_STATUS_ALLOC; in p9_tag_alloc()
291 return req; in p9_tag_alloc()
295 kfree(req->tc); in p9_tag_alloc()
296 kfree(req->rc); in p9_tag_alloc()
297 kfree(req->wq); in p9_tag_alloc()
298 req->tc = req->rc = NULL; in p9_tag_alloc()
299 req->wq = NULL; in p9_tag_alloc()
419 void p9_client_cb(struct p9_client *c, struct p9_req_t *req, int status) in p9_client_cb() argument
421 p9_debug(P9_DEBUG_MUX, " tag %d\n", req->tc->tag); in p9_client_cb()
428 req->status = status; in p9_client_cb()
430 wake_up(req->wq); in p9_client_cb()
431 p9_debug(P9_DEBUG_MUX, "wakeup: %d\n", req->tc->tag); in p9_client_cb()
495 static int p9_check_errors(struct p9_client *c, struct p9_req_t *req) in p9_check_errors() argument
501 err = p9_parse_header(req->rc, NULL, &type, NULL, 0); in p9_check_errors()
506 trace_9p_protocol_dump(c, req->rc); in p9_check_errors()
516 err = p9pdu_readf(req->rc, c->proto_version, "s?d", in p9_check_errors()
532 err = p9pdu_readf(req->rc, c->proto_version, "d", &ecode); in p9_check_errors()
558 static int p9_check_zc_errors(struct p9_client *c, struct p9_req_t *req, in p9_check_zc_errors() argument
566 err = p9_parse_header(req->rc, NULL, &type, NULL, 0); in p9_check_zc_errors()
571 trace_9p_protocol_dump(c, req->rc); in p9_check_zc_errors()
586 len = req->rc->size - req->rc->offset; in p9_check_zc_errors()
592 ename = &req->rc->sdata[req->rc->offset]; in p9_check_zc_errors()
603 err = p9pdu_readf(req->rc, c->proto_version, "s?d", in p9_check_zc_errors()
619 err = p9pdu_readf(req->rc, c->proto_version, "d", &ecode); in p9_check_zc_errors()
648 struct p9_req_t *req; in p9_client_flush() local
658 req = p9_client_rpc(c, P9_TFLUSH, "w", oldtag); in p9_client_flush()
659 if (IS_ERR(req)) in p9_client_flush()
660 return PTR_ERR(req); in p9_client_flush()
670 p9_free_req(c, req); in p9_client_flush()
679 struct p9_req_t *req; in p9_client_prepare_req() local
698 req = p9_tag_alloc(c, tag, req_size); in p9_client_prepare_req()
699 if (IS_ERR(req)) in p9_client_prepare_req()
700 return req; in p9_client_prepare_req()
703 p9pdu_prepare(req->tc, tag, type); in p9_client_prepare_req()
704 err = p9pdu_vwritef(req->tc, c->proto_version, fmt, ap); in p9_client_prepare_req()
707 p9pdu_finalize(c, req->tc); in p9_client_prepare_req()
709 return req; in p9_client_prepare_req()
711 p9_free_req(c, req); in p9_client_prepare_req()
730 struct p9_req_t *req; in p9_client_rpc() local
733 req = p9_client_prepare_req(c, type, c->msize, fmt, ap); in p9_client_rpc()
735 if (IS_ERR(req)) in p9_client_rpc()
736 return req; in p9_client_rpc()
744 err = c->trans_mod->request(c, req); in p9_client_rpc()
752 err = wait_event_interruptible(*req->wq, in p9_client_rpc()
753 req->status >= REQ_STATUS_RCVD); in p9_client_rpc()
768 if (req->status == REQ_STATUS_ERROR) { in p9_client_rpc()
769 p9_debug(P9_DEBUG_ERROR, "req_status error %d\n", req->t_err); in p9_client_rpc()
770 err = req->t_err; in p9_client_rpc()
777 if (c->trans_mod->cancel(c, req)) in p9_client_rpc()
778 p9_client_flush(c, req); in p9_client_rpc()
781 if (req->status == REQ_STATUS_RCVD) in p9_client_rpc()
792 err = p9_check_errors(c, req); in p9_client_rpc()
793 trace_9p_client_res(c, type, req->rc->tag, err); in p9_client_rpc()
795 return req; in p9_client_rpc()
797 p9_free_req(c, req); in p9_client_rpc()
823 struct p9_req_t *req; in p9_client_zc_rpc() local
830 req = p9_client_prepare_req(c, type, P9_ZC_HDR_SZ, fmt, ap); in p9_client_zc_rpc()
832 if (IS_ERR(req)) in p9_client_zc_rpc()
833 return req; in p9_client_zc_rpc()
841 err = c->trans_mod->zc_request(c, req, uidata, uodata, in p9_client_zc_rpc()
849 if (req->status == REQ_STATUS_ERROR) { in p9_client_zc_rpc()
850 p9_debug(P9_DEBUG_ERROR, "req_status error %d\n", req->t_err); in p9_client_zc_rpc()
851 err = req->t_err; in p9_client_zc_rpc()
858 if (c->trans_mod->cancel(c, req)) in p9_client_zc_rpc()
859 p9_client_flush(c, req); in p9_client_zc_rpc()
862 if (req->status == REQ_STATUS_RCVD) in p9_client_zc_rpc()
873 err = p9_check_zc_errors(c, req, uidata, in_hdrlen); in p9_client_zc_rpc()
874 trace_9p_client_res(c, type, req->rc->tag, err); in p9_client_zc_rpc()
876 return req; in p9_client_zc_rpc()
878 p9_free_req(c, req); in p9_client_zc_rpc()
934 struct p9_req_t *req; in p9_client_version() local
943 req = p9_client_rpc(c, P9_TVERSION, "ds", in p9_client_version()
947 req = p9_client_rpc(c, P9_TVERSION, "ds", in p9_client_version()
951 req = p9_client_rpc(c, P9_TVERSION, "ds", in p9_client_version()
958 if (IS_ERR(req)) in p9_client_version()
959 return PTR_ERR(req); in p9_client_version()
961 err = p9pdu_readf(req->rc, c->proto_version, "ds", &msize, &version); in p9_client_version()
964 trace_9p_protocol_dump(c, req->rc); in p9_client_version()
985 p9_free_req(c, req); in p9_client_version()
1107 struct p9_req_t *req; in p9_client_attach() local
1122 req = p9_client_rpc(clnt, P9_TATTACH, "ddss?u", fid->fid, in p9_client_attach()
1124 if (IS_ERR(req)) { in p9_client_attach()
1125 err = PTR_ERR(req); 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()
1158 struct p9_req_t *req; in p9_client_walk() local
1180 req = p9_client_rpc(clnt, P9_TWALK, "ddT", oldfid->fid, fid->fid, in p9_client_walk()
1182 if (IS_ERR(req)) { in p9_client_walk()
1183 err = PTR_ERR(req); 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()
1233 struct p9_req_t *req; in p9_client_open() local
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()
1249 if (IS_ERR(req)) { in p9_client_open()
1250 err = PTR_ERR(req); 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()
1268 p9_free_req(clnt, req); in p9_client_open()
1279 struct p9_req_t *req; in p9_client_create_dotl() local
1291 req = p9_client_rpc(clnt, P9_TLCREATE, "dsddg", ofid->fid, name, flags, in p9_client_create_dotl()
1293 if (IS_ERR(req)) { in p9_client_create_dotl()
1294 err = PTR_ERR(req); 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()
1324 struct p9_req_t *req; in p9_client_fcreate() local
1336 req = p9_client_rpc(clnt, P9_TCREATE, "dsdb?s", fid->fid, name, perm, in p9_client_fcreate()
1338 if (IS_ERR(req)) { in p9_client_fcreate()
1339 err = PTR_ERR(req); 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()
1369 struct p9_req_t *req; in p9_client_symlink() local
1375 req = p9_client_rpc(clnt, P9_TSYMLINK, "dssg", dfid->fid, name, symtgt, in p9_client_symlink()
1377 if (IS_ERR(req)) { in p9_client_symlink()
1378 err = PTR_ERR(req); 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()
1401 struct p9_req_t *req; in p9_client_link() local
1406 req = p9_client_rpc(clnt, P9_TLINK, "dds", dfid->fid, oldfid->fid, in p9_client_link()
1408 if (IS_ERR(req)) in p9_client_link()
1409 return PTR_ERR(req); in p9_client_link()
1412 p9_free_req(clnt, req); in p9_client_link()
1421 struct p9_req_t *req; in p9_client_fsync() local
1428 req = p9_client_rpc(clnt, P9_TFSYNC, "dd", fid->fid, datasync); in p9_client_fsync()
1429 if (IS_ERR(req)) { in p9_client_fsync()
1430 err = PTR_ERR(req); in p9_client_fsync()
1436 p9_free_req(clnt, req); in p9_client_fsync()
1447 struct p9_req_t *req; in p9_client_clunk() local
1463 req = p9_client_rpc(clnt, P9_TCLUNK, "d", fid->fid); in p9_client_clunk()
1464 if (IS_ERR(req)) { in p9_client_clunk()
1465 err = PTR_ERR(req); in p9_client_clunk()
1471 p9_free_req(clnt, req); in p9_client_clunk()
1491 struct p9_req_t *req; in p9_client_remove() local
1497 req = p9_client_rpc(clnt, P9_TREMOVE, "d", fid->fid); in p9_client_remove()
1498 if (IS_ERR(req)) { in p9_client_remove()
1499 err = PTR_ERR(req); in p9_client_remove()
1505 p9_free_req(clnt, req); in p9_client_remove()
1518 struct p9_req_t *req; in p9_client_unlinkat() local
1525 req = p9_client_rpc(clnt, P9_TUNLINKAT, "dsd", dfid->fid, name, flags); in p9_client_unlinkat()
1526 if (IS_ERR(req)) { in p9_client_unlinkat()
1527 err = PTR_ERR(req); in p9_client_unlinkat()
1532 p9_free_req(clnt, req); in p9_client_unlinkat()
1542 struct p9_req_t *req; in p9_client_read() local
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()
1575 if (IS_ERR(req)) { in p9_client_read()
1576 *err = PTR_ERR(req); 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()
1618 struct p9_req_t *req; in p9_client_write() local
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()
1644 if (IS_ERR(req)) { in p9_client_write()
1645 *err = PTR_ERR(req); 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()
1672 struct p9_req_t *req; in p9_client_stat() local
1683 req = p9_client_rpc(clnt, P9_TSTAT, "d", fid->fid); in p9_client_stat()
1684 if (IS_ERR(req)) { in p9_client_stat()
1685 err = PTR_ERR(req); 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()
1725 struct p9_req_t *req; in p9_client_getattr_dotl() local
1736 req = p9_client_rpc(clnt, P9_TGETATTR, "dq", fid->fid, request_mask); in p9_client_getattr_dotl()
1737 if (IS_ERR(req)) { in p9_client_getattr_dotl()
1738 err = PTR_ERR(req); 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()
1811 struct p9_req_t *req; in p9_client_wstat() local
1831 req = p9_client_rpc(clnt, P9_TWSTAT, "dwS", fid->fid, wst->size+2, wst); in p9_client_wstat()
1832 if (IS_ERR(req)) { in p9_client_wstat()
1833 err = PTR_ERR(req); in p9_client_wstat()
1839 p9_free_req(clnt, req); in p9_client_wstat()
1848 struct p9_req_t *req; in p9_client_setattr() local
1864 req = p9_client_rpc(clnt, P9_TSETATTR, "dI", fid->fid, p9attr); in p9_client_setattr()
1866 if (IS_ERR(req)) { in p9_client_setattr()
1867 err = PTR_ERR(req); in p9_client_setattr()
1871 p9_free_req(clnt, req); in p9_client_setattr()
1880 struct p9_req_t *req; in p9_client_statfs() local
1888 req = p9_client_rpc(clnt, P9_TSTATFS, "d", fid->fid); in p9_client_statfs()
1889 if (IS_ERR(req)) { in p9_client_statfs()
1890 err = PTR_ERR(req); 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()
1920 struct p9_req_t *req; in p9_client_rename() local
1929 req = p9_client_rpc(clnt, P9_TRENAME, "dds", fid->fid, in p9_client_rename()
1931 if (IS_ERR(req)) { in p9_client_rename()
1932 err = PTR_ERR(req); in p9_client_rename()
1938 p9_free_req(clnt, req); in p9_client_rename()
1948 struct p9_req_t *req; in p9_client_renameat() local
1958 req = p9_client_rpc(clnt, P9_TRENAMEAT, "dsds", olddirfid->fid, in p9_client_renameat()
1960 if (IS_ERR(req)) { in p9_client_renameat()
1961 err = PTR_ERR(req); in p9_client_renameat()
1968 p9_free_req(clnt, req); in p9_client_renameat()
1981 struct p9_req_t *req; in p9_client_xattrwalk() local
1997 req = p9_client_rpc(clnt, P9_TXATTRWALK, "dds", in p9_client_xattrwalk()
1999 if (IS_ERR(req)) { in p9_client_xattrwalk()
2000 err = PTR_ERR(req); 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()
2028 struct p9_req_t *req; in p9_client_xattrcreate() local
2036 req = p9_client_rpc(clnt, P9_TXATTRCREATE, "dsqd", in p9_client_xattrcreate()
2038 if (IS_ERR(req)) { in p9_client_xattrcreate()
2039 err = PTR_ERR(req); in p9_client_xattrcreate()
2043 p9_free_req(clnt, req); in p9_client_xattrcreate()
2053 struct p9_req_t *req; in p9_client_readdir() local
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()
2086 if (IS_ERR(req)) { in p9_client_readdir()
2087 err = PTR_ERR(req); 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()
2117 struct p9_req_t *req; in p9_client_mknod_dotl() local
2123 req = p9_client_rpc(clnt, P9_TMKNOD, "dsdddg", fid->fid, name, mode, in p9_client_mknod_dotl()
2125 if (IS_ERR(req)) in p9_client_mknod_dotl()
2126 return PTR_ERR(req); 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()
2148 struct p9_req_t *req; in p9_client_mkdir_dotl() local
2154 req = p9_client_rpc(clnt, P9_TMKDIR, "dsdg", fid->fid, name, mode, in p9_client_mkdir_dotl()
2156 if (IS_ERR(req)) in p9_client_mkdir_dotl()
2157 return PTR_ERR(req); 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()
2178 struct p9_req_t *req; in p9_client_lock_dotl() local
2187 req = p9_client_rpc(clnt, P9_TLOCK, "dbdqqds", fid->fid, flock->type, in p9_client_lock_dotl()
2191 if (IS_ERR(req)) in p9_client_lock_dotl()
2192 return PTR_ERR(req); 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()
2211 struct p9_req_t *req; in p9_client_getlock_dotl() local
2219 req = p9_client_rpc(clnt, P9_TGETLOCK, "dbqqds", fid->fid, glock->type, in p9_client_getlock_dotl()
2222 if (IS_ERR(req)) in p9_client_getlock_dotl()
2223 return PTR_ERR(req); 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()
2245 struct p9_req_t *req; in p9_client_readlink() local
2251 req = p9_client_rpc(clnt, P9_TREADLINK, "d", fid->fid); in p9_client_readlink()
2252 if (IS_ERR(req)) in p9_client_readlink()
2253 return PTR_ERR(req); 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()