Lines Matching refs:wdata
1894 struct cifs_writedata *wdata; in wdata_alloc_and_fillpages() local
1896 wdata = cifs_writedata_alloc((unsigned int)tofind, in wdata_alloc_and_fillpages()
1898 if (!wdata) in wdata_alloc_and_fillpages()
1908 pages = wdata->pages; in wdata_alloc_and_fillpages()
1918 return wdata; in wdata_alloc_and_fillpages()
1922 wdata_prepare_pages(struct cifs_writedata *wdata, unsigned int found_pages, in wdata_prepare_pages() argument
1931 page = wdata->pages[i]; in wdata_prepare_pages()
1983 wdata->pages[i] = page; in wdata_prepare_pages()
1990 *index = wdata->pages[0]->index + 1; in wdata_prepare_pages()
1994 page_cache_release(wdata->pages[i]); in wdata_prepare_pages()
1995 wdata->pages[i] = NULL; in wdata_prepare_pages()
2002 wdata_send_pages(struct cifs_writedata *wdata, unsigned int nr_pages, in wdata_send_pages() argument
2009 wdata->sync_mode = wbc->sync_mode; in wdata_send_pages()
2010 wdata->nr_pages = nr_pages; in wdata_send_pages()
2011 wdata->offset = page_offset(wdata->pages[0]); in wdata_send_pages()
2012 wdata->pagesz = PAGE_CACHE_SIZE; in wdata_send_pages()
2013 wdata->tailsz = min(i_size_read(mapping->host) - in wdata_send_pages()
2014 page_offset(wdata->pages[nr_pages - 1]), in wdata_send_pages()
2016 wdata->bytes = ((nr_pages - 1) * PAGE_CACHE_SIZE) + wdata->tailsz; in wdata_send_pages()
2018 if (wdata->cfile != NULL) in wdata_send_pages()
2019 cifsFileInfo_put(wdata->cfile); in wdata_send_pages()
2020 wdata->cfile = find_writable_file(CIFS_I(mapping->host), false); in wdata_send_pages()
2021 if (!wdata->cfile) { in wdata_send_pages()
2025 wdata->pid = wdata->cfile->pid; in wdata_send_pages()
2026 server = tlink_tcon(wdata->cfile->tlink)->ses->server; in wdata_send_pages()
2027 rc = server->ops->async_writev(wdata, cifs_writedata_release); in wdata_send_pages()
2031 unlock_page(wdata->pages[i]); in wdata_send_pages()
2043 struct cifs_writedata *wdata; in cifs_writepages() local
2076 wdata = wdata_alloc_and_fillpages(tofind, mapping, end, &index, in cifs_writepages()
2078 if (!wdata) { in cifs_writepages()
2085 kref_put(&wdata->refcount, cifs_writedata_release); in cifs_writepages()
2090 nr_pages = wdata_prepare_pages(wdata, found_pages, mapping, wbc, in cifs_writepages()
2095 kref_put(&wdata->refcount, cifs_writedata_release); in cifs_writepages()
2100 wdata->credits = credits; in cifs_writepages()
2102 rc = wdata_send_pages(wdata, nr_pages, mapping, wbc); in cifs_writepages()
2106 add_credits_and_wake_if(server, wdata->credits, 0); in cifs_writepages()
2110 wdata->pages[i]); in cifs_writepages()
2112 SetPageError(wdata->pages[i]); in cifs_writepages()
2113 end_page_writeback(wdata->pages[i]); in cifs_writepages()
2114 page_cache_release(wdata->pages[i]); in cifs_writepages()
2119 kref_put(&wdata->refcount, cifs_writedata_release); in cifs_writepages()
2395 struct cifs_writedata *wdata = container_of(refcount, in cifs_uncached_writedata_release() local
2398 for (i = 0; i < wdata->nr_pages; i++) in cifs_uncached_writedata_release()
2399 put_page(wdata->pages[i]); in cifs_uncached_writedata_release()
2406 struct cifs_writedata *wdata = container_of(work, in cifs_uncached_writev_complete() local
2408 struct inode *inode = d_inode(wdata->cfile->dentry); in cifs_uncached_writev_complete()
2412 cifs_update_eof(cifsi, wdata->offset, wdata->bytes); in cifs_uncached_writev_complete()
2417 complete(&wdata->done); in cifs_uncached_writev_complete()
2419 kref_put(&wdata->refcount, cifs_uncached_writedata_release); in cifs_uncached_writev_complete()
2423 wdata_fill_from_iovec(struct cifs_writedata *wdata, struct iov_iter *from, in wdata_fill_from_iovec() argument
2432 copied = copy_page_from_iter(wdata->pages[i], 0, bytes, from); in wdata_fill_from_iovec()
2472 struct cifs_writedata *wdata; in cifs_write_from_iter() local
2495 wdata = cifs_writedata_alloc(nr_pages, in cifs_write_from_iter()
2497 if (!wdata) { in cifs_write_from_iter()
2503 rc = cifs_write_allocate_pages(wdata->pages, nr_pages); in cifs_write_from_iter()
2505 kfree(wdata); in cifs_write_from_iter()
2511 rc = wdata_fill_from_iovec(wdata, from, &cur_len, &num_pages); in cifs_write_from_iter()
2514 put_page(wdata->pages[i]); in cifs_write_from_iter()
2515 kfree(wdata); in cifs_write_from_iter()
2525 put_page(wdata->pages[nr_pages - 1]); in cifs_write_from_iter()
2527 wdata->sync_mode = WB_SYNC_ALL; in cifs_write_from_iter()
2528 wdata->nr_pages = nr_pages; in cifs_write_from_iter()
2529 wdata->offset = (__u64)offset; in cifs_write_from_iter()
2530 wdata->cfile = cifsFileInfo_get(open_file); in cifs_write_from_iter()
2531 wdata->pid = pid; in cifs_write_from_iter()
2532 wdata->bytes = cur_len; in cifs_write_from_iter()
2533 wdata->pagesz = PAGE_SIZE; in cifs_write_from_iter()
2534 wdata->tailsz = cur_len - ((nr_pages - 1) * PAGE_SIZE); in cifs_write_from_iter()
2535 wdata->credits = credits; in cifs_write_from_iter()
2537 if (!wdata->cfile->invalidHandle || in cifs_write_from_iter()
2538 !cifs_reopen_file(wdata->cfile, false)) in cifs_write_from_iter()
2539 rc = server->ops->async_writev(wdata, in cifs_write_from_iter()
2542 add_credits_and_wake_if(server, wdata->credits, 0); in cifs_write_from_iter()
2543 kref_put(&wdata->refcount, in cifs_write_from_iter()
2554 list_add_tail(&wdata->list, wdata_list); in cifs_write_from_iter()
2569 struct cifs_writedata *wdata, *tmp; in cifs_user_writev() local
2612 list_for_each_entry_safe(wdata, tmp, &wdata_list, list) { in cifs_user_writev()
2615 rc = wait_for_completion_killable(&wdata->done); in cifs_user_writev()
2618 else if (wdata->result) in cifs_user_writev()
2619 rc = wdata->result; in cifs_user_writev()
2621 total_written += wdata->bytes; in cifs_user_writev()
2629 list_del_init(&wdata->list); in cifs_user_writev()
2634 wdata->offset - iocb->ki_pos); in cifs_user_writev()
2636 rc = cifs_write_from_iter(wdata->offset, in cifs_user_writev()
2637 wdata->bytes, &tmp_from, in cifs_user_writev()
2642 kref_put(&wdata->refcount, in cifs_user_writev()
2647 list_del_init(&wdata->list); in cifs_user_writev()
2648 kref_put(&wdata->refcount, cifs_uncached_writedata_release); in cifs_user_writev()