Lines Matching refs:sr

48 smb_pre_write(smb_request_t *sr)  in smb_pre_write()  argument
56 sr->arg.rw = param; in smb_pre_write()
59 rc = smbsr_decode_vwv(sr, "wwl", &sr->smb_fid, &count, &off); in smb_pre_write()
65 DTRACE_SMB_START(op__Write, smb_request_t *, sr); /* arg.rw */ in smb_pre_write()
71 smb_post_write(smb_request_t *sr) in smb_post_write() argument
73 DTRACE_SMB_DONE(op__Write, smb_request_t *, sr); /* arg.rw */ in smb_post_write()
75 kmem_free(sr->arg.rw, sizeof (smb_rw_param_t)); in smb_post_write()
79 smb_com_write(smb_request_t *sr) in smb_com_write() argument
81 smb_rw_param_t *param = sr->arg.rw; in smb_com_write()
84 smbsr_lookup_file(sr); in smb_com_write()
85 if (sr->fid_ofile == NULL) { in smb_com_write()
86 smbsr_error(sr, NT_STATUS_INVALID_HANDLE, ERRDOS, ERRbadfid); in smb_com_write()
90 sr->user_cr = smb_ofile_getcred(sr->fid_ofile); in smb_com_write()
93 rc = smb_write_truncate(sr, param); in smb_com_write()
95 rc = smbsr_decode_data(sr, "D", &param->rw_vdb); in smb_com_write()
98 smbsr_error(sr, NT_STATUS_INVALID_PARAMETER, in smb_com_write()
105 rc = smb_common_write(sr, param); in smb_com_write()
109 if (sr->smb_error.status != NT_STATUS_FILE_LOCK_CONFLICT) in smb_com_write()
110 smbsr_errno(sr, rc); in smb_com_write()
114 rc = smbsr_encode_result(sr, 1, 0, "bww", 1, in smb_com_write()
131 smb_pre_write_and_close(smb_request_t *sr) in smb_pre_write_and_close() argument
139 sr->arg.rw = param; in smb_pre_write_and_close()
142 if (sr->smb_wct == 12) { in smb_pre_write_and_close()
143 rc = smbsr_decode_vwv(sr, "wwll12.", &sr->smb_fid, in smb_pre_write_and_close()
146 rc = smbsr_decode_vwv(sr, "wwll", &sr->smb_fid, in smb_pre_write_and_close()
153 DTRACE_SMB_START(op__WriteAndClose, smb_request_t *, sr); /* arg.rw */ in smb_pre_write_and_close()
159 smb_post_write_and_close(smb_request_t *sr) in smb_post_write_and_close() argument
161 DTRACE_SMB_DONE(op__WriteAndClose, smb_request_t *, sr); /* arg.rw */ in smb_post_write_and_close()
163 kmem_free(sr->arg.rw, sizeof (smb_rw_param_t)); in smb_post_write_and_close()
167 smb_com_write_and_close(smb_request_t *sr) in smb_com_write_and_close() argument
169 smb_rw_param_t *param = sr->arg.rw; in smb_com_write_and_close()
173 smbsr_lookup_file(sr); in smb_com_write_and_close()
174 if (sr->fid_ofile == NULL) { in smb_com_write_and_close()
175 smbsr_error(sr, NT_STATUS_INVALID_HANDLE, ERRDOS, ERRbadfid); in smb_com_write_and_close()
179 sr->user_cr = smb_ofile_getcred(sr->fid_ofile); in smb_com_write_and_close()
182 rc = smb_write_truncate(sr, param); in smb_com_write_and_close()
187 rc = smbsr_decode_data(sr, ".#B", param->rw_count, in smb_com_write_and_close()
191 smbsr_error(sr, NT_STATUS_INVALID_PARAMETER, in smb_com_write_and_close()
198 rc = smb_common_write(sr, param); in smb_com_write_and_close()
202 if (sr->smb_error.status != NT_STATUS_FILE_LOCK_CONFLICT) in smb_com_write_and_close()
203 smbsr_errno(sr, rc); in smb_com_write_and_close()
207 smb_ofile_close(sr->fid_ofile, param->rw_last_write); in smb_com_write_and_close()
210 rc = smbsr_encode_result(sr, 1, 0, "bww", 1, count, 0); in smb_com_write_and_close()
232 smb_pre_write_and_unlock(smb_request_t *sr) in smb_pre_write_and_unlock() argument
241 sr->arg.rw = param; in smb_pre_write_and_unlock()
244 rc = smbsr_decode_vwv(sr, "wwlw", &sr->smb_fid, &count, &off, &remcnt); in smb_pre_write_and_unlock()
249 DTRACE_SMB_START(op__WriteAndUnlock, smb_request_t *, sr); /* arg.rw */ in smb_pre_write_and_unlock()
255 smb_post_write_and_unlock(smb_request_t *sr) in smb_post_write_and_unlock() argument
257 DTRACE_SMB_DONE(op__WriteAndUnlock, smb_request_t *, sr); /* arg.rw */ in smb_post_write_and_unlock()
259 kmem_free(sr->arg.rw, sizeof (smb_rw_param_t)); in smb_post_write_and_unlock()
263 smb_com_write_and_unlock(smb_request_t *sr) in smb_com_write_and_unlock() argument
265 smb_rw_param_t *param = sr->arg.rw; in smb_com_write_and_unlock()
270 if (STYPE_ISDSK(sr->tid_tree->t_res_type) == 0) { in smb_com_write_and_unlock()
271 smbsr_error(sr, NT_STATUS_ACCESS_DENIED, ERRDOS, ERRnoaccess); in smb_com_write_and_unlock()
275 smbsr_lookup_file(sr); in smb_com_write_and_unlock()
276 if (sr->fid_ofile == NULL) { in smb_com_write_and_unlock()
277 smbsr_error(sr, NT_STATUS_INVALID_HANDLE, ERRDOS, ERRbadfid); in smb_com_write_and_unlock()
281 sr->user_cr = smb_ofile_getcred(sr->fid_ofile); in smb_com_write_and_unlock()
284 rc = smbsr_encode_result(sr, 1, 0, "bww", 1, 0, 0); in smb_com_write_and_unlock()
289 rc = smbsr_decode_data(sr, "D", &param->rw_vdb); in smb_com_write_and_unlock()
292 smbsr_error(sr, NT_STATUS_INVALID_PARAMETER, in smb_com_write_and_unlock()
299 if ((rc = smb_common_write(sr, param)) != 0) { in smb_com_write_and_unlock()
300 if (sr->smb_error.status != NT_STATUS_FILE_LOCK_CONFLICT) in smb_com_write_and_unlock()
301 smbsr_errno(sr, rc); in smb_com_write_and_unlock()
307 lk_pid = sr->smb_pid & 0xFFFF; in smb_com_write_and_unlock()
309 status = smb_unlock_range(sr, param->rw_offset, in smb_com_write_and_unlock()
312 smbsr_error(sr, NT_STATUS_RANGE_NOT_LOCKED, in smb_com_write_and_unlock()
317 rc = smbsr_encode_result(sr, 1, 0, "bww", 1, in smb_com_write_and_unlock()
331 smb_pre_write_raw(smb_request_t *sr) in smb_pre_write_raw() argument
333 DTRACE_SMB_START(op__WriteRaw, smb_request_t *, sr); in smb_pre_write_raw()
338 smb_post_write_raw(smb_request_t *sr) in smb_post_write_raw() argument
340 DTRACE_SMB_DONE(op__WriteRaw, smb_request_t *, sr); in smb_post_write_raw()
344 smb_com_write_raw(struct smb_request *sr) in smb_com_write_raw() argument
346 smbsr_error(sr, NT_STATUS_NOT_SUPPORTED, ERRDOS, in smb_com_write_raw()
368 smb_pre_write_andx(smb_request_t *sr) in smb_pre_write_andx() argument
379 sr->arg.rw = param; in smb_pre_write_andx()
382 if (sr->smb_wct == 14) { in smb_pre_write_andx()
383 rc = smbsr_decode_vwv(sr, "4.wl4.wwwwwl", &sr->smb_fid, in smb_pre_write_andx()
390 } else if (sr->smb_wct == 12) { in smb_pre_write_andx()
391 rc = smbsr_decode_vwv(sr, "4.wl4.wwwww", &sr->smb_fid, in smb_pre_write_andx()
410 if ((sr->session->capabilities & CAP_LARGE_WRITEX) != 0 || in smb_pre_write_andx()
411 (sr->smb_data.max_bytes > (sr->smb_data.chain_offset + 0xFFFF))) in smb_pre_write_andx()
414 DTRACE_SMB_START(op__WriteX, smb_request_t *, sr); /* arg.rw */ in smb_pre_write_andx()
420 smb_post_write_andx(smb_request_t *sr) in smb_post_write_andx() argument
422 DTRACE_SMB_DONE(op__WriteX, smb_request_t *, sr); /* arg.rw */ in smb_post_write_andx()
424 kmem_free(sr->arg.rw, sizeof (smb_rw_param_t)); in smb_post_write_andx()
428 smb_com_write_andx(smb_request_t *sr) in smb_com_write_andx() argument
430 smb_rw_param_t *param = sr->arg.rw; in smb_com_write_andx()
438 smbsr_lookup_file(sr); in smb_com_write_andx()
439 if (sr->fid_ofile == NULL) { in smb_com_write_andx()
440 smbsr_error(sr, NT_STATUS_INVALID_HANDLE, ERRDOS, ERRbadfid); in smb_com_write_andx()
444 sr->user_cr = smb_ofile_getcred(sr->fid_ofile); in smb_com_write_andx()
447 STYPE_ISIPC(sr->tid_tree->t_res_type)) { in smb_com_write_andx()
448 smbsr_error(sr, 0, ERRSRV, ERRaccess); in smb_com_write_andx()
452 rc = smbsr_decode_data(sr, "#.#B", param->rw_dsoff, param->rw_count, in smb_com_write_andx()
456 smbsr_error(sr, NT_STATUS_INVALID_PARAMETER, in smb_com_write_andx()
464 if ((rc = smb_common_write(sr, param)) != 0) { in smb_com_write_andx()
465 if (sr->smb_error.status != in smb_com_write_andx()
467 smbsr_errno(sr, rc); in smb_com_write_andx()
475 rc = smbsr_encode_result(sr, 6, 0, "bb1.wwwwww", in smb_com_write_andx()
476 6, sr->andx_com, 15, count_low, 0, count_high, 0, 0); in smb_com_write_andx()
487 smb_common_write(smb_request_t *sr, smb_rw_param_t *param) in smb_common_write() argument
489 smb_ofile_t *ofile = sr->fid_ofile; in smb_common_write()
495 switch (sr->tid_tree->t_res_type & STYPE_MASK) { in smb_common_write()
501 rc = smb_lock_range_access(sr, node, param->rw_offset, in smb_common_write()
504 smbsr_error(sr, NT_STATUS_FILE_LOCK_CONFLICT, in smb_common_write()
515 rc = smb_fsop_write(sr, sr->user_cr, node, ofile, in smb_common_write()
538 if ((rc = smb_opipe_write(sr, &param->rw_vdb.vdb_uio)) != 0) in smb_common_write()
568 smb_write_truncate(smb_request_t *sr, smb_rw_param_t *param) in smb_write_truncate() argument
570 smb_ofile_t *ofile = sr->fid_ofile; in smb_write_truncate()
576 if (STYPE_ISIPC(sr->tid_tree->t_res_type)) in smb_write_truncate()
581 status = smb_lock_range_access(sr, node, param->rw_offset, in smb_write_truncate()
585 smbsr_error(sr, NT_STATUS_FILE_LOCK_CONFLICT, in smb_write_truncate()
595 rc = smb_node_setattr(sr, node, sr->user_cr, ofile, &attr); in smb_write_truncate()