Lines Matching refs:req
413 static int smb_simple_encode_path(struct smb_request *req, char **p, in smb_simple_encode_path() argument
416 struct smb_sb_info *server = req->rq_server; in smb_simple_encode_path()
419 int maxlen = ((char *)req->rq_buffer + req->rq_bufsize) - s; in smb_simple_encode_path()
431 int align = s - (char *)req->rq_buffer; in smb_simple_encode_path()
691 smb_errno(struct smb_request *req) in smb_errno() argument
693 int errcls = req->rq_rcls; in smb_errno()
694 int error = req->rq_err; in smb_errno()
698 errcls, error, SMB_CMD(req->rq_header)); in smb_errno()
810 class, error, SMB_CMD(req->rq_header)); in smb_errno()
820 smb_request_ok(struct smb_request *req, int command, int wct, int bcc) in smb_request_ok() argument
824 req->rq_resp_wct = wct; in smb_request_ok()
825 req->rq_resp_bcc = bcc; in smb_request_ok()
827 result = smb_add_request(req); in smb_request_ok()
833 if (smb_valid_packet(req->rq_header) != 0) { in smb_request_ok()
838 result = smb_verify(req->rq_header, command, wct, bcc); in smb_request_ok()
1004 smb_setup_header(struct smb_request *req, __u8 command, __u16 wct, __u16 bcc) in smb_setup_header() argument
1007 __u8 *p = req->rq_header; in smb_setup_header()
1008 struct smb_sb_info *server = req->rq_server; in smb_setup_header()
1027 *(req->rq_header + smb_flg) = flags; in smb_setup_header()
1030 WSET(req->rq_header, smb_flg2, flags2); in smb_setup_header()
1037 req->rq_iovlen = 1; in smb_setup_header()
1038 req->rq_iov[0].iov_base = req->rq_header; in smb_setup_header()
1039 req->rq_iov[0].iov_len = xmit_len - bcc; in smb_setup_header()
1041 return req->rq_buffer; in smb_setup_header()
1045 smb_setup_bcc(struct smb_request *req, __u8 *p) in smb_setup_bcc() argument
1047 u16 bcc = p - req->rq_buffer; in smb_setup_bcc()
1048 u8 *pbcc = req->rq_header + SMB_HEADER_LEN + 2*SMB_WCT(req->rq_header); in smb_setup_bcc()
1052 smb_encode_smb_length(req->rq_header, SMB_HEADER_LEN + in smb_setup_bcc()
1053 2*SMB_WCT(req->rq_header) - 2 + bcc); in smb_setup_bcc()
1056 req->rq_iovlen = 2; in smb_setup_bcc()
1057 req->rq_iov[1].iov_base = req->rq_buffer; in smb_setup_bcc()
1058 req->rq_iov[1].iov_len = bcc; in smb_setup_bcc()
1066 struct smb_request *req; in smb_proc_seek() local
1069 if (! (req = smb_alloc_request(server, 0))) in smb_proc_seek()
1072 smb_setup_header(req, SMBlseek, 4, 0); in smb_proc_seek()
1073 WSET(req->rq_header, smb_vwv0, fileid); in smb_proc_seek()
1074 WSET(req->rq_header, smb_vwv1, mode); in smb_proc_seek()
1075 DSET(req->rq_header, smb_vwv2, offset); in smb_proc_seek()
1076 req->rq_flags |= SMB_REQ_NORETRY; in smb_proc_seek()
1078 result = smb_request_ok(req, SMBlseek, 2, 0); in smb_proc_seek()
1084 result = DVAL(req->rq_header, smb_vwv0); in smb_proc_seek()
1086 smb_rput(req); in smb_proc_seek()
1099 struct smb_request *req; in smb_proc_open() local
1119 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_open()
1123 p = smb_setup_header(req, SMBopen, 2, 0); in smb_proc_open()
1124 WSET(req->rq_header, smb_vwv0, mode); in smb_proc_open()
1125 WSET(req->rq_header, smb_vwv1, aSYSTEM | aHIDDEN | aDIR); in smb_proc_open()
1126 res = smb_simple_encode_path(req, &p, dentry, NULL); in smb_proc_open()
1129 smb_setup_bcc(req, p); in smb_proc_open()
1131 res = smb_request_ok(req, SMBopen, 7, 0); in smb_proc_open()
1139 req->rq_flags = 0; in smb_proc_open()
1146 ei->fileid = WVAL(req->rq_header, smb_vwv0); in smb_proc_open()
1147 ei->attr = WVAL(req->rq_header, smb_vwv1); in smb_proc_open()
1150 ei->access = (WVAL(req->rq_header, smb_vwv6) & SMB_ACCMASK); in smb_proc_open()
1154 smb_rput(req); in smb_proc_open()
1207 struct smb_request *req; in smb_proc_close() local
1210 if (! (req = smb_alloc_request(server, 0))) in smb_proc_close()
1213 smb_setup_header(req, SMBclose, 3, 0); in smb_proc_close()
1214 WSET(req->rq_header, smb_vwv0, fileid); in smb_proc_close()
1215 DSET(req->rq_header, smb_vwv1, utc2local(server, mtime)); in smb_proc_close()
1216 req->rq_flags |= SMB_REQ_NORETRY; in smb_proc_close()
1217 result = smb_request_ok(req, SMBclose, 0, 0); in smb_proc_close()
1219 smb_rput(req); in smb_proc_close()
1311 smb_proc_read_data(struct smb_request *req) in smb_proc_read_data() argument
1313 req->rq_iov[0].iov_base = req->rq_buffer; in smb_proc_read_data()
1314 req->rq_iov[0].iov_len = 3; in smb_proc_read_data()
1316 req->rq_iov[1].iov_base = req->rq_page; in smb_proc_read_data()
1317 req->rq_iov[1].iov_len = req->rq_rsize; in smb_proc_read_data()
1318 req->rq_iovlen = 2; in smb_proc_read_data()
1320 req->rq_rlen = smb_len(req->rq_header) + 4 - req->rq_bytes_recvd; in smb_proc_read_data()
1330 struct smb_request *req; in smb_proc_read() local
1334 if (! (req = smb_alloc_request(server, 0))) in smb_proc_read()
1337 smb_setup_header(req, SMBread, 5, 0); in smb_proc_read()
1338 buf = req->rq_header; in smb_proc_read()
1344 req->rq_page = data; in smb_proc_read()
1345 req->rq_rsize = count; in smb_proc_read()
1346 req->rq_callback = smb_proc_read_data; in smb_proc_read()
1347 req->rq_buffer = rbuf; in smb_proc_read()
1348 req->rq_flags |= SMB_REQ_NORETRY | SMB_REQ_STATIC; in smb_proc_read()
1350 result = smb_request_ok(req, SMBread, 5, -1); in smb_proc_read()
1353 returned_count = WVAL(req->rq_header, smb_vwv0); in smb_proc_read()
1365 smb_rput(req); in smb_proc_read()
1379 struct smb_request *req; in smb_proc_write() local
1382 if (! (req = smb_alloc_request(server, 0))) in smb_proc_write()
1388 smb_setup_header(req, SMBwrite, 5, count + 3); in smb_proc_write()
1389 WSET(req->rq_header, smb_vwv0, fileid); in smb_proc_write()
1390 WSET(req->rq_header, smb_vwv1, count); in smb_proc_write()
1391 DSET(req->rq_header, smb_vwv2, offset); in smb_proc_write()
1392 WSET(req->rq_header, smb_vwv4, 0); in smb_proc_write()
1396 req->rq_iov[1].iov_base = buf; in smb_proc_write()
1397 req->rq_iov[1].iov_len = 3; in smb_proc_write()
1398 req->rq_iov[2].iov_base = (char *) data; in smb_proc_write()
1399 req->rq_iov[2].iov_len = count; in smb_proc_write()
1400 req->rq_iovlen = 3; in smb_proc_write()
1401 req->rq_flags |= SMB_REQ_NORETRY; in smb_proc_write()
1403 result = smb_request_ok(req, SMBwrite, 1, 0); in smb_proc_write()
1405 result = WVAL(req->rq_header, smb_vwv0); in smb_proc_write()
1407 smb_rput(req); in smb_proc_write()
1419 smb_proc_readX_data(struct smb_request *req) in smb_proc_readX_data() argument
1422 int hdrlen = SMB_HEADER_LEN + req->rq_resp_wct*2 - 2; in smb_proc_readX_data()
1423 int data_off = WVAL(req->rq_header, smb_vwv6); in smb_proc_readX_data()
1433 req->rq_rlen = req->rq_bufsize + 1; in smb_proc_readX_data()
1436 req->rq_iov[0].iov_base = req->rq_buffer; in smb_proc_readX_data()
1437 req->rq_iov[0].iov_len = data_off; in smb_proc_readX_data()
1439 req->rq_iov[1].iov_base = req->rq_page; in smb_proc_readX_data()
1440 req->rq_iov[1].iov_len = req->rq_rsize; in smb_proc_readX_data()
1441 req->rq_iovlen = 2; in smb_proc_readX_data()
1443 req->rq_rlen = smb_len(req->rq_header) + 4 - req->rq_bytes_recvd; in smb_proc_readX_data()
1452 struct smb_request *req; in smb_proc_readX() local
1456 if (! (req = smb_alloc_request(server, 0))) in smb_proc_readX()
1459 smb_setup_header(req, SMBreadX, 12, 0); in smb_proc_readX()
1460 buf = req->rq_header; in smb_proc_readX()
1472 req->rq_page = data; in smb_proc_readX()
1473 req->rq_rsize = count; in smb_proc_readX()
1474 req->rq_callback = smb_proc_readX_data; in smb_proc_readX()
1475 req->rq_buffer = pad; in smb_proc_readX()
1476 req->rq_bufsize = SMB_READX_MAX_PAD; in smb_proc_readX()
1477 req->rq_flags |= SMB_REQ_STATIC | SMB_REQ_NORETRY; in smb_proc_readX()
1479 result = smb_request_ok(req, SMBreadX, 12, -1); in smb_proc_readX()
1482 result = WVAL(req->rq_header, smb_vwv5); in smb_proc_readX()
1485 smb_rput(req); in smb_proc_readX()
1499 struct smb_request *req; in smb_proc_writeX() local
1502 if (! (req = smb_alloc_request(server, 0))) in smb_proc_writeX()
1508 p = smb_setup_header(req, SMBwriteX, 14, count + 1); in smb_proc_writeX()
1509 WSET(req->rq_header, smb_vwv0, 0x00ff); in smb_proc_writeX()
1510 WSET(req->rq_header, smb_vwv1, 0); in smb_proc_writeX()
1511 WSET(req->rq_header, smb_vwv2, SMB_I(inode)->fileid); in smb_proc_writeX()
1512 DSET(req->rq_header, smb_vwv3, (u32)offset); /* low 32 bits */ in smb_proc_writeX()
1513 DSET(req->rq_header, smb_vwv5, 0); in smb_proc_writeX()
1514 WSET(req->rq_header, smb_vwv7, 0); /* write mode */ in smb_proc_writeX()
1515 WSET(req->rq_header, smb_vwv8, 0); in smb_proc_writeX()
1516 WSET(req->rq_header, smb_vwv9, 0); in smb_proc_writeX()
1517 WSET(req->rq_header, smb_vwv10, count); /* data length */ in smb_proc_writeX()
1518 WSET(req->rq_header, smb_vwv11, smb_vwv12 + 2 + 1); in smb_proc_writeX()
1519 DSET(req->rq_header, smb_vwv12, (u32)(offset >> 32)); in smb_proc_writeX()
1521 req->rq_iov[1].iov_base = pad; in smb_proc_writeX()
1522 req->rq_iov[1].iov_len = 1; in smb_proc_writeX()
1523 req->rq_iov[2].iov_base = (char *) data; in smb_proc_writeX()
1524 req->rq_iov[2].iov_len = count; in smb_proc_writeX()
1525 req->rq_iovlen = 3; in smb_proc_writeX()
1526 req->rq_flags |= SMB_REQ_NORETRY; in smb_proc_writeX()
1528 result = smb_request_ok(req, SMBwriteX, 6, 0); in smb_proc_writeX()
1530 result = WVAL(req->rq_header, smb_vwv2); in smb_proc_writeX()
1532 smb_rput(req); in smb_proc_writeX()
1543 struct smb_request *req; in smb_proc_create() local
1546 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_create()
1549 p = smb_setup_header(req, SMBcreate, 3, 0); in smb_proc_create()
1550 WSET(req->rq_header, smb_vwv0, attr); in smb_proc_create()
1551 DSET(req->rq_header, smb_vwv1, utc2local(server, ctime)); in smb_proc_create()
1552 result = smb_simple_encode_path(req, &p, dentry, NULL); in smb_proc_create()
1555 smb_setup_bcc(req, p); in smb_proc_create()
1557 result = smb_request_ok(req, SMBcreate, 1, 0); in smb_proc_create()
1561 *fileid = WVAL(req->rq_header, smb_vwv0); in smb_proc_create()
1565 smb_rput(req); in smb_proc_create()
1576 struct smb_request *req; in smb_proc_mv() local
1579 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_mv()
1582 p = smb_setup_header(req, SMBmv, 1, 0); in smb_proc_mv()
1583 WSET(req->rq_header, smb_vwv0, aSYSTEM | aHIDDEN | aDIR); in smb_proc_mv()
1584 result = smb_simple_encode_path(req, &p, old_dentry, NULL); in smb_proc_mv()
1587 result = smb_simple_encode_path(req, &p, new_dentry, NULL); in smb_proc_mv()
1590 smb_setup_bcc(req, p); in smb_proc_mv()
1592 if ((result = smb_request_ok(req, SMBmv, 0, 0)) < 0) in smb_proc_mv()
1597 smb_rput(req); in smb_proc_mv()
1611 struct smb_request *req; in smb_proc_generic_command() local
1614 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_generic_command()
1617 p = smb_setup_header(req, command, 0, 0); in smb_proc_generic_command()
1618 result = smb_simple_encode_path(req, &p, dentry, NULL); in smb_proc_generic_command()
1621 smb_setup_bcc(req, p); in smb_proc_generic_command()
1623 result = smb_request_ok(req, command, 0, 0); in smb_proc_generic_command()
1629 smb_rput(req); in smb_proc_generic_command()
1682 struct smb_request *req; in smb_proc_unlink() local
1685 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_unlink()
1689 p = smb_setup_header(req, SMBunlink, 1, 0); in smb_proc_unlink()
1690 WSET(req->rq_header, smb_vwv0, aSYSTEM | aHIDDEN); in smb_proc_unlink()
1691 result = smb_simple_encode_path(req, &p, dentry, NULL); in smb_proc_unlink()
1694 smb_setup_bcc(req, p); in smb_proc_unlink()
1696 if ((result = smb_request_ok(req, SMBunlink, 0, 0)) < 0) { in smb_proc_unlink()
1715 req->rq_flags = 0; in smb_proc_unlink()
1725 smb_rput(req); in smb_proc_unlink()
1734 struct smb_request *req; in smb_proc_flush() local
1737 if (! (req = smb_alloc_request(server, 0))) in smb_proc_flush()
1740 smb_setup_header(req, SMBflush, 1, 0); in smb_proc_flush()
1741 WSET(req->rq_header, smb_vwv0, fileid); in smb_proc_flush()
1742 req->rq_flags |= SMB_REQ_NORETRY; in smb_proc_flush()
1743 result = smb_request_ok(req, SMBflush, 0, 0); in smb_proc_flush()
1745 smb_rput(req); in smb_proc_flush()
1768 struct smb_request *req; in smb_proc_trunc64() local
1771 if (! (req = smb_alloc_request(server, 14))) in smb_proc_trunc64()
1774 param = req->rq_buffer; in smb_proc_trunc64()
1775 data = req->rq_buffer + 6; in smb_proc_trunc64()
1783 req->rq_trans2_command = TRANSACT2_SETFILEINFO; in smb_proc_trunc64()
1784 req->rq_ldata = 8; in smb_proc_trunc64()
1785 req->rq_data = data; in smb_proc_trunc64()
1786 req->rq_lparm = 6; in smb_proc_trunc64()
1787 req->rq_parm = param; in smb_proc_trunc64()
1788 req->rq_flags |= SMB_REQ_NORETRY; in smb_proc_trunc64()
1789 result = smb_add_request(req); in smb_proc_trunc64()
1794 if (req->rq_rcls != 0) in smb_proc_trunc64()
1795 result = smb_errno(req); in smb_proc_trunc64()
1798 smb_rput(req); in smb_proc_trunc64()
1957 struct smb_request *req; in smb_proc_readdir_short() local
1973 if (! (req = smb_alloc_request(server, server->opt.max_xmit))) in smb_proc_readdir_short()
1977 p = smb_setup_header(req, SMBsearch, 2, 0); in smb_proc_readdir_short()
1978 WSET(req->rq_header, smb_vwv0, entries_asked); in smb_proc_readdir_short()
1979 WSET(req->rq_header, smb_vwv1, aDIR); in smb_proc_readdir_short()
1981 result = smb_simple_encode_path(req, &p, dir, &mask); in smb_proc_readdir_short()
1984 if (p + 3 > (char *)req->rq_buffer + req->rq_bufsize) { in smb_proc_readdir_short()
1994 (char *)req->rq_buffer + req->rq_bufsize) { in smb_proc_readdir_short()
2008 smb_setup_bcc(req, p); in smb_proc_readdir_short()
2010 result = smb_request_ok(req, SMBsearch, 1, -1); in smb_proc_readdir_short()
2012 if ((req->rq_rcls == ERRDOS) && in smb_proc_readdir_short()
2013 (req->rq_err == ERRnofiles)) in smb_proc_readdir_short()
2017 count = WVAL(req->rq_header, smb_vwv0); in smb_proc_readdir_short()
2022 bcc = smb_bcc(req->rq_header); in smb_proc_readdir_short()
2025 p = req->rq_buffer + 3; in smb_proc_readdir_short()
2031 last_status = req->rq_buffer + 3 + (count-1) * SMB_DIRINFO_SIZE; in smb_proc_readdir_short()
2034 req->rq_buffer + req->rq_bufsize) { in smb_proc_readdir_short()
2038 req->rq_bufsize, req->rq_buffer); in smb_proc_readdir_short()
2069 smb_rput(req); in smb_proc_readdir_short()
2314 struct smb_request *req; in smb_proc_readdir_long() local
2335 if (! (req = smb_alloc_request(server, server->opt.max_xmit))) in smb_proc_readdir_long()
2337 param = req->rq_buffer; in smb_proc_readdir_long()
2384 req->rq_trans2_command = command; in smb_proc_readdir_long()
2385 req->rq_ldata = 0; in smb_proc_readdir_long()
2386 req->rq_data = NULL; in smb_proc_readdir_long()
2387 req->rq_lparm = 12 + mask_len + 1; in smb_proc_readdir_long()
2388 req->rq_parm = param; in smb_proc_readdir_long()
2389 req->rq_flags = 0; in smb_proc_readdir_long()
2390 result = smb_add_request(req); in smb_proc_readdir_long()
2396 if (req->rq_rcls == ERRSRV && req->rq_err == ERRerror) { in smb_proc_readdir_long()
2403 if (req->rq_rcls != 0) { in smb_proc_readdir_long()
2404 result = smb_errno(req); in smb_proc_readdir_long()
2406 mask, result, req->rq_rcls, req->rq_err); in smb_proc_readdir_long()
2412 ff_dir_handle = WVAL(req->rq_parm, 0); in smb_proc_readdir_long()
2413 ff_searchcount = WVAL(req->rq_parm, 2); in smb_proc_readdir_long()
2414 ff_eos = WVAL(req->rq_parm, 4); in smb_proc_readdir_long()
2415 ff_lastname = WVAL(req->rq_parm, 8); in smb_proc_readdir_long()
2417 ff_searchcount = WVAL(req->rq_parm, 0); in smb_proc_readdir_long()
2418 ff_eos = WVAL(req->rq_parm, 2); in smb_proc_readdir_long()
2419 ff_lastname = WVAL(req->rq_parm, 6); in smb_proc_readdir_long()
2428 p = req->rq_data; in smb_proc_readdir_long()
2431 if (p >= req->rq_data + req->rq_ldata) { in smb_proc_readdir_long()
2435 p, req->rq_ldata, req->rq_data); in smb_proc_readdir_long()
2478 ff_lastname > 0 && ff_lastname < req->rq_ldata) { in smb_proc_readdir_long()
2479 lastname = req->rq_data + ff_lastname; in smb_proc_readdir_long()
2483 mask_len = req->rq_ldata - ff_lastname; in smb_proc_readdir_long()
2488 if (ff_lastname + 1 + mask_len > req->rq_ldata) in smb_proc_readdir_long()
2489 mask_len = req->rq_ldata - ff_lastname - 1; in smb_proc_readdir_long()
2503 mask_len, ff_lastname, req->rq_ldata, mask_len, mask); in smb_proc_readdir_long()
2510 smb_rput(req); in smb_proc_readdir_long()
2531 struct smb_request *req; in smb_proc_getattr_ff() local
2534 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_getattr_ff()
2536 param = req->rq_buffer; in smb_proc_getattr_ff()
2551 req->rq_trans2_command = TRANSACT2_FINDFIRST; in smb_proc_getattr_ff()
2552 req->rq_ldata = 0; in smb_proc_getattr_ff()
2553 req->rq_data = NULL; in smb_proc_getattr_ff()
2554 req->rq_lparm = 12 + mask_len; in smb_proc_getattr_ff()
2555 req->rq_parm = param; in smb_proc_getattr_ff()
2556 req->rq_flags = 0; in smb_proc_getattr_ff()
2557 result = smb_add_request(req); in smb_proc_getattr_ff()
2560 if (req->rq_rcls != 0) { in smb_proc_getattr_ff()
2561 result = smb_errno(req); in smb_proc_getattr_ff()
2565 mask, req->rq_rcls, req->rq_err); in smb_proc_getattr_ff()
2571 if (req->rq_ldata < 22 || WVAL(req->rq_parm, 2) != 1) { in smb_proc_getattr_ff()
2573 mask, req->rq_ldata, WVAL(req->rq_parm, 2)); in smb_proc_getattr_ff()
2580 date = WVAL(req->rq_data, 0); in smb_proc_getattr_ff()
2581 time = WVAL(req->rq_data, 2); in smb_proc_getattr_ff()
2585 date = WVAL(req->rq_data, 4); in smb_proc_getattr_ff()
2586 time = WVAL(req->rq_data, 6); in smb_proc_getattr_ff()
2590 date = WVAL(req->rq_data, 8); in smb_proc_getattr_ff()
2591 time = WVAL(req->rq_data, 10); in smb_proc_getattr_ff()
2596 fattr->f_size = DVAL(req->rq_data, 12); in smb_proc_getattr_ff()
2598 fattr->attr = WVAL(req->rq_data, 20); in smb_proc_getattr_ff()
2602 smb_rput(req); in smb_proc_getattr_ff()
2613 struct smb_request *req; in smb_proc_getattr_core() local
2616 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_getattr_core()
2619 p = smb_setup_header(req, SMBgetatr, 0, 0); in smb_proc_getattr_core()
2620 result = smb_simple_encode_path(req, &p, dir, NULL); in smb_proc_getattr_core()
2623 smb_setup_bcc(req, p); in smb_proc_getattr_core()
2625 if ((result = smb_request_ok(req, SMBgetatr, 10, 0)) < 0) in smb_proc_getattr_core()
2627 fattr->attr = WVAL(req->rq_header, smb_vwv0); in smb_proc_getattr_core()
2628 fattr->f_mtime.tv_sec = local2utc(server, DVAL(req->rq_header, smb_vwv1)); in smb_proc_getattr_core()
2630 fattr->f_size = DVAL(req->rq_header, smb_vwv3); in smb_proc_getattr_core()
2640 smb_rput(req); in smb_proc_getattr_core()
2651 struct smb_request *req, int infolevel) in smb_proc_getattr_trans2() argument
2656 param = req->rq_buffer; in smb_proc_getattr_trans2()
2664 req->rq_trans2_command = TRANSACT2_QPATHINFO; in smb_proc_getattr_trans2()
2665 req->rq_ldata = 0; in smb_proc_getattr_trans2()
2666 req->rq_data = NULL; in smb_proc_getattr_trans2()
2667 req->rq_lparm = p - param; in smb_proc_getattr_trans2()
2668 req->rq_parm = param; in smb_proc_getattr_trans2()
2669 req->rq_flags = 0; in smb_proc_getattr_trans2()
2670 result = smb_add_request(req); in smb_proc_getattr_trans2()
2673 if (req->rq_rcls != 0) { in smb_proc_getattr_trans2()
2675 ¶m[6], result, req->rq_rcls, req->rq_err); in smb_proc_getattr_trans2()
2676 result = smb_errno(req); in smb_proc_getattr_trans2()
2680 if (req->rq_ldata < 22) { in smb_proc_getattr_trans2()
2682 ¶m[6], req->rq_ldata); in smb_proc_getattr_trans2()
2698 struct smb_request *req; in smb_proc_getattr_trans2_std() local
2701 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_getattr_trans2_std()
2704 result = smb_proc_getattr_trans2(server, dir, req, SMB_INFO_STANDARD); in smb_proc_getattr_trans2_std()
2716 date = WVAL(req->rq_data, off_date); in smb_proc_getattr_trans2_std()
2717 time = WVAL(req->rq_data, off_time); in smb_proc_getattr_trans2_std()
2721 date = WVAL(req->rq_data, 4 + off_date); in smb_proc_getattr_trans2_std()
2722 time = WVAL(req->rq_data, 4 + off_time); in smb_proc_getattr_trans2_std()
2726 date = WVAL(req->rq_data, 8 + off_date); in smb_proc_getattr_trans2_std()
2727 time = WVAL(req->rq_data, 8 + off_time); in smb_proc_getattr_trans2_std()
2734 attr->f_size = DVAL(req->rq_data, 12); in smb_proc_getattr_trans2_std()
2735 attr->attr = WVAL(req->rq_data, 20); in smb_proc_getattr_trans2_std()
2738 smb_rput(req); in smb_proc_getattr_trans2_std()
2747 struct smb_request *req; in smb_proc_getattr_trans2_all() local
2751 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_getattr_trans2_all()
2754 result = smb_proc_getattr_trans2(server, dir, req, in smb_proc_getattr_trans2_all()
2759 attr->f_ctime = smb_ntutc2unixutc(LVAL(req->rq_data, 0)); in smb_proc_getattr_trans2_all()
2760 attr->f_atime = smb_ntutc2unixutc(LVAL(req->rq_data, 8)); in smb_proc_getattr_trans2_all()
2761 attr->f_mtime = smb_ntutc2unixutc(LVAL(req->rq_data, 16)); in smb_proc_getattr_trans2_all()
2763 attr->attr = WVAL(req->rq_data, 32); in smb_proc_getattr_trans2_all()
2766 attr->f_size = LVAL(req->rq_data, 48); in smb_proc_getattr_trans2_all()
2769 smb_rput(req); in smb_proc_getattr_trans2_all()
2778 struct smb_request *req; in smb_proc_getattr_unix() local
2782 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_getattr_unix()
2785 result = smb_proc_getattr_trans2(server, dir, req, in smb_proc_getattr_unix()
2790 smb_decode_unix_basic(attr, server, req->rq_data); in smb_proc_getattr_unix()
2793 smb_rput(req); in smb_proc_getattr_unix()
2900 struct smb_request *req; in smb_proc_setattr_core() local
2903 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_setattr_core()
2906 p = smb_setup_header(req, SMBsetatr, 8, 0); in smb_proc_setattr_core()
2907 WSET(req->rq_header, smb_vwv0, attr); in smb_proc_setattr_core()
2908 DSET(req->rq_header, smb_vwv1, 0); /* mtime */ in smb_proc_setattr_core()
2909 WSET(req->rq_header, smb_vwv3, 0); /* reserved values */ in smb_proc_setattr_core()
2910 WSET(req->rq_header, smb_vwv4, 0); in smb_proc_setattr_core()
2911 WSET(req->rq_header, smb_vwv5, 0); in smb_proc_setattr_core()
2912 WSET(req->rq_header, smb_vwv6, 0); in smb_proc_setattr_core()
2913 WSET(req->rq_header, smb_vwv7, 0); in smb_proc_setattr_core()
2914 result = smb_simple_encode_path(req, &p, dentry, NULL); in smb_proc_setattr_core()
2917 if (p + 2 > (char *)req->rq_buffer + req->rq_bufsize) { in smb_proc_setattr_core()
2923 smb_setup_bcc(req, p); in smb_proc_setattr_core()
2925 result = smb_request_ok(req, SMBsetatr, 0, 0); in smb_proc_setattr_core()
2931 smb_rput(req); in smb_proc_setattr_core()
2962 struct smb_request *req; in smb_proc_setattr_ext() local
2965 if (! (req = smb_alloc_request(server, 0))) in smb_proc_setattr_ext()
2968 smb_setup_header(req, SMBsetattrE, 7, 0); in smb_proc_setattr_ext()
2969 WSET(req->rq_header, smb_vwv0, SMB_I(inode)->fileid); in smb_proc_setattr_ext()
2971 WSET(req->rq_header, smb_vwv1, 0); in smb_proc_setattr_ext()
2972 WSET(req->rq_header, smb_vwv2, 0); in smb_proc_setattr_ext()
2974 WSET(req->rq_header, smb_vwv3, date); in smb_proc_setattr_ext()
2975 WSET(req->rq_header, smb_vwv4, time); in smb_proc_setattr_ext()
2977 WSET(req->rq_header, smb_vwv5, date); in smb_proc_setattr_ext()
2978 WSET(req->rq_header, smb_vwv6, time); in smb_proc_setattr_ext()
2984 req->rq_flags |= SMB_REQ_NORETRY; in smb_proc_setattr_ext()
2985 result = smb_request_ok(req, SMBsetattrE, 0, 0); in smb_proc_setattr_ext()
2990 smb_rput(req); in smb_proc_setattr_ext()
3008 struct smb_request *req; in smb_proc_setattr_trans2() local
3011 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_setattr_trans2()
3013 param = req->rq_buffer; in smb_proc_setattr_trans2()
3039 req->rq_trans2_command = TRANSACT2_SETPATHINFO; in smb_proc_setattr_trans2()
3040 req->rq_ldata = 26; in smb_proc_setattr_trans2()
3041 req->rq_data = data; in smb_proc_setattr_trans2()
3042 req->rq_lparm = p - param; in smb_proc_setattr_trans2()
3043 req->rq_parm = param; in smb_proc_setattr_trans2()
3044 req->rq_flags = 0; in smb_proc_setattr_trans2()
3045 result = smb_add_request(req); in smb_proc_setattr_trans2()
3049 if (req->rq_rcls != 0) in smb_proc_setattr_trans2()
3050 result = smb_errno(req); in smb_proc_setattr_trans2()
3053 smb_rput(req); in smb_proc_setattr_trans2()
3082 struct smb_request *req; in smb_proc_setattr_unix() local
3085 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_setattr_unix()
3087 param = req->rq_buffer; in smb_proc_setattr_unix()
3157 req->rq_trans2_command = TRANSACT2_SETPATHINFO; in smb_proc_setattr_unix()
3158 req->rq_ldata = 100; in smb_proc_setattr_unix()
3159 req->rq_data = data; in smb_proc_setattr_unix()
3160 req->rq_lparm = p - param; in smb_proc_setattr_unix()
3161 req->rq_parm = param; in smb_proc_setattr_unix()
3162 req->rq_flags = 0; in smb_proc_setattr_unix()
3163 result = smb_add_request(req); in smb_proc_setattr_unix()
3166 smb_rput(req); in smb_proc_setattr_unix()
3233 struct smb_request *req; in smb_proc_dskattr() local
3236 if (! (req = smb_alloc_request(server, 0))) in smb_proc_dskattr()
3239 smb_setup_header(req, SMBdskattr, 0, 0); in smb_proc_dskattr()
3240 if ((result = smb_request_ok(req, SMBdskattr, 5, 0)) < 0) in smb_proc_dskattr()
3242 p = SMB_VWV(req->rq_header); in smb_proc_dskattr()
3250 smb_rput(req); in smb_proc_dskattr()
3261 struct smb_request *req; in smb_proc_read_link() local
3266 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_read_link()
3268 param = req->rq_buffer; in smb_proc_read_link()
3277 req->rq_trans2_command = TRANSACT2_QPATHINFO; in smb_proc_read_link()
3278 req->rq_ldata = 0; in smb_proc_read_link()
3279 req->rq_data = NULL; in smb_proc_read_link()
3280 req->rq_lparm = p - param; in smb_proc_read_link()
3281 req->rq_parm = param; in smb_proc_read_link()
3282 req->rq_flags = 0; in smb_proc_read_link()
3283 result = smb_add_request(req); in smb_proc_read_link()
3287 ¶m[6], result, req->rq_rcls, req->rq_err); in smb_proc_read_link()
3291 if (req->rq_ldata < len) in smb_proc_read_link()
3292 result = req->rq_ldata; in smb_proc_read_link()
3293 strncpy(buffer, req->rq_data, result); in smb_proc_read_link()
3296 smb_rput(req); in smb_proc_read_link()
3312 struct smb_request *req; in smb_proc_symlink() local
3315 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_symlink()
3317 param = req->rq_buffer; in smb_proc_symlink()
3326 req->rq_trans2_command = TRANSACT2_SETPATHINFO; in smb_proc_symlink()
3327 req->rq_ldata = strlen(oldpath) + 1; in smb_proc_symlink()
3328 req->rq_data = (char *) oldpath; in smb_proc_symlink()
3329 req->rq_lparm = p - param; in smb_proc_symlink()
3330 req->rq_parm = param; in smb_proc_symlink()
3331 req->rq_flags = 0; in smb_proc_symlink()
3332 result = smb_add_request(req); in smb_proc_symlink()
3337 ¶m[6], result, req->rq_rcls, req->rq_err); in smb_proc_symlink()
3341 smb_rput(req); in smb_proc_symlink()
3355 struct smb_request *req; in smb_proc_link() local
3358 if (! (req = smb_alloc_request(server, PAGE_SIZE))) in smb_proc_link()
3360 param = req->rq_buffer; in smb_proc_link()
3371 req->rq_data = p; in smb_proc_link()
3372 req->rq_ldata = smb_encode_path(server, p, SMB_MAXPATHLEN+1, in smb_proc_link()
3375 req->rq_trans2_command = TRANSACT2_SETPATHINFO; in smb_proc_link()
3376 req->rq_lparm = p - param; in smb_proc_link()
3377 req->rq_parm = param; in smb_proc_link()
3378 req->rq_flags = 0; in smb_proc_link()
3379 result = smb_add_request(req); in smb_proc_link()
3384 ¶m[6], result, req->rq_rcls, req->rq_err); in smb_proc_link()
3388 smb_rput(req); in smb_proc_link()
3400 struct smb_request *req; in smb_proc_query_cifsunix() local
3403 if (! (req = smb_alloc_request(server, 100))) in smb_proc_query_cifsunix()
3408 req->rq_trans2_command = TRANSACT2_QFSINFO; in smb_proc_query_cifsunix()
3409 req->rq_ldata = 0; in smb_proc_query_cifsunix()
3410 req->rq_data = NULL; in smb_proc_query_cifsunix()
3411 req->rq_lparm = 2; in smb_proc_query_cifsunix()
3412 req->rq_parm = param; in smb_proc_query_cifsunix()
3413 req->rq_flags = 0; in smb_proc_query_cifsunix()
3414 result = smb_add_request(req); in smb_proc_query_cifsunix()
3418 if (req->rq_ldata < 12) { in smb_proc_query_cifsunix()
3422 major = WVAL(req->rq_data, 0); in smb_proc_query_cifsunix()
3423 minor = WVAL(req->rq_data, 2); in smb_proc_query_cifsunix()
3429 caps = LVAL(req->rq_data, 4); in smb_proc_query_cifsunix()
3433 smb_rput(req); in smb_proc_query_cifsunix()