Lines Matching defs:wdata

1973 	struct cifs_writedata *wdata = container_of(refcount,
1976 if (wdata->mr) {
1977 smbd_deregister_mr(wdata->mr);
1978 wdata->mr = NULL;
1982 if (wdata->cfile)
1983 cifsFileInfo_put(wdata->cfile);
1985 kvfree(wdata->pages);
1986 kfree(wdata);
1994 cifs_writev_requeue(struct cifs_writedata *wdata)
1997 struct inode *inode = d_inode(wdata->cfile->dentry);
2001 server = tlink_tcon(wdata->cfile->tlink)->ses->server;
2003 rest_len = wdata->bytes;
2030 wdata2->pages[j] = wdata->pages[i + j];
2035 wdata2->sync_mode = wdata->sync_mode;
2074 } while (i < wdata->nr_pages);
2076 /* cleanup remaining pages from the original wdata */
2077 for (; i < wdata->nr_pages; i++) {
2078 SetPageError(wdata->pages[i]);
2079 end_page_writeback(wdata->pages[i]);
2080 put_page(wdata->pages[i]);
2085 kref_put(&wdata->refcount, cifs_writedata_release);
2091 struct cifs_writedata *wdata = container_of(work,
2093 struct inode *inode = d_inode(wdata->cfile->dentry);
2096 if (wdata->result == 0) {
2098 cifs_update_eof(CIFS_I(inode), wdata->offset, wdata->bytes);
2100 cifs_stats_bytes_written(tlink_tcon(wdata->cfile->tlink),
2101 wdata->bytes);
2102 } else if (wdata->sync_mode == WB_SYNC_ALL && wdata->result == -EAGAIN)
2103 return cifs_writev_requeue(wdata);
2105 for (i = 0; i < wdata->nr_pages; i++) {
2106 struct page *page = wdata->pages[i];
2107 if (wdata->result == -EAGAIN)
2109 else if (wdata->result < 0)
2114 if (wdata->result != -EAGAIN)
2115 mapping_set_error(inode->i_mapping, wdata->result);
2116 kref_put(&wdata->refcount, cifs_writedata_release);
2133 struct cifs_writedata *wdata;
2135 wdata = kzalloc(sizeof(*wdata), GFP_NOFS);
2136 if (wdata != NULL) {
2137 wdata->pages = pages;
2138 kref_init(&wdata->refcount);
2139 INIT_LIST_HEAD(&wdata->list);
2140 init_completion(&wdata->done);
2141 INIT_WORK(&wdata->work, complete);
2143 return wdata;
2153 struct cifs_writedata *wdata = mid->callback_data;
2154 struct cifs_tcon *tcon = tlink_tcon(wdata->cfile->tlink);
2161 wdata->result = cifs_check_receive(mid, tcon->ses->server, 0);
2162 if (wdata->result != 0)
2174 if (written > wdata->bytes)
2177 if (written < wdata->bytes)
2178 wdata->result = -ENOSPC;
2180 wdata->bytes = written;
2184 wdata->result = -EAGAIN;
2187 wdata->result = -EIO;
2191 queue_work(cifsiod_wq, &wdata->work);
2198 cifs_async_writev(struct cifs_writedata *wdata,
2204 struct cifs_tcon *tcon = tlink_tcon(wdata->cfile->tlink);
2212 if (wdata->offset >> 32 > 0) {
2222 smb->hdr.Pid = cpu_to_le16((__u16)wdata->pid);
2223 smb->hdr.PidHigh = cpu_to_le16((__u16)(wdata->pid >> 16));
2226 smb->Fid = wdata->cfile->fid.netfid;
2227 smb->OffsetLow = cpu_to_le32(wdata->offset & 0xFFFFFFFF);
2229 smb->OffsetHigh = cpu_to_le32(wdata->offset >> 32);
2245 rqst.rq_pages = wdata->pages;
2246 rqst.rq_offset = wdata->page_offset;
2247 rqst.rq_npages = wdata->nr_pages;
2248 rqst.rq_pagesz = wdata->pagesz;
2249 rqst.rq_tailsz = wdata->tailsz;
2252 wdata->offset, wdata->bytes);
2254 smb->DataLengthLow = cpu_to_le16(wdata->bytes & 0xFFFF);
2255 smb->DataLengthHigh = cpu_to_le16(wdata->bytes >> 16);
2258 inc_rfc1001_len(&smb->hdr, wdata->bytes + 1);
2259 put_bcc(wdata->bytes + 1, &smb->hdr);
2264 inc_rfc1001_len(&smbw->hdr, wdata->bytes + 5);
2265 put_bcc(wdata->bytes + 5, &smbw->hdr);
2269 kref_get(&wdata->refcount);
2271 cifs_writev_callback, NULL, wdata, 0, NULL);
2276 kref_put(&wdata->refcount, release);