Lines Matching refs:wdata

4176 	struct cifs_writedata *wdata = mid->callback_data;
4177 struct cifs_tcon *tcon = tlink_tcon(wdata->cfile->tlink);
4178 struct TCP_Server_Info *server = wdata->server;
4183 WARN_ONCE(wdata->server != mid->server,
4184 "wdata server %p != mid server %p",
4185 wdata->server, mid->server);
4191 wdata->result = smb2_check_receive(mid, server, 0);
4192 if (wdata->result != 0)
4202 if (written > wdata->bytes)
4205 if (written < wdata->bytes)
4206 wdata->result = -ENOSPC;
4208 wdata->bytes = written;
4212 wdata->result = -EAGAIN;
4219 wdata->result = -EIO;
4224 * If this wdata has a memory registered, the MR can be freed
4230 if (wdata->mr) {
4231 smbd_deregister_mr(wdata->mr);
4232 wdata->mr = NULL;
4235 if (wdata->result) {
4238 wdata->cfile->fid.persistent_fid,
4239 tcon->tid, tcon->ses->Suid, wdata->offset,
4240 wdata->bytes, wdata->result);
4241 if (wdata->result == -ENOSPC)
4246 wdata->cfile->fid.persistent_fid,
4248 wdata->offset, wdata->bytes);
4250 queue_work(cifsiod_wq, &wdata->work);
4257 smb2_async_writev(struct cifs_writedata *wdata,
4263 struct cifs_tcon *tcon = tlink_tcon(wdata->cfile->tlink);
4264 struct TCP_Server_Info *server = wdata->server;
4269 if (!wdata->server)
4270 server = wdata->server = cifs_pick_channel(tcon->ses);
4281 shdr->ProcessId = cpu_to_le32(wdata->cfile->pid);
4283 req->PersistentFileId = wdata->cfile->fid.persistent_fid;
4284 req->VolatileFileId = wdata->cfile->fid.volatile_fid;
4288 req->Offset = cpu_to_le64(wdata->offset);
4293 trace_smb3_write_enter(0 /* xid */, wdata->cfile->fid.persistent_fid,
4294 tcon->tid, tcon->ses->Suid, wdata->offset, wdata->bytes);
4300 if (server->rdma && !server->sign && wdata->bytes >=
4306 wdata->mr = smbd_register_mr(
4307 server->smbd_conn, wdata->pages,
4308 wdata->nr_pages, wdata->page_offset,
4309 wdata->tailsz, false, need_invalidate);
4310 if (!wdata->mr) {
4316 if (wdata->nr_pages > 1)
4319 (wdata->nr_pages - 1) * wdata->pagesz -
4320 wdata->page_offset + wdata->tailsz
4323 req->RemainingBytes = cpu_to_le32(wdata->tailsz);
4332 v1->offset = cpu_to_le64(wdata->mr->mr->iova);
4333 v1->token = cpu_to_le32(wdata->mr->mr->rkey);
4334 v1->length = cpu_to_le32(wdata->mr->mr->length);
4342 rqst.rq_pages = wdata->pages;
4343 rqst.rq_offset = wdata->page_offset;
4344 rqst.rq_npages = wdata->nr_pages;
4345 rqst.rq_pagesz = wdata->pagesz;
4346 rqst.rq_tailsz = wdata->tailsz;
4348 if (wdata->mr) {
4354 wdata->offset, wdata->bytes);
4358 if (!wdata->mr)
4359 req->Length = cpu_to_le32(wdata->bytes);
4361 req->Length = cpu_to_le32(wdata->bytes);
4364 if (wdata->credits.value > 0) {
4365 shdr->CreditCharge = cpu_to_le16(DIV_ROUND_UP(wdata->bytes,
4369 rc = adjust_credits(server, &wdata->credits, wdata->bytes);
4376 kref_get(&wdata->refcount);
4378 wdata, flags, &wdata->credits);
4382 tcon->tid, tcon->ses->Suid, wdata->offset,
4383 wdata->bytes, rc);
4384 kref_put(&wdata->refcount, release);