Lines Matching refs:wpa

400 		struct fuse_writepage_args *wpa;
403 wpa = rb_entry(n, struct fuse_writepage_args, writepages_entry);
404 WARN_ON(get_fuse_inode(wpa->inode) != fi);
405 curr_index = wpa->ia.write.in.offset >> PAGE_SHIFT;
406 if (idx_from >= curr_index + wpa->ia.ap.num_pages)
411 return wpa;
1617 static void fuse_writepage_free(struct fuse_writepage_args *wpa)
1619 struct fuse_args_pages *ap = &wpa->ia.ap;
1625 if (wpa->ia.ff)
1626 fuse_file_put(wpa->ia.ff, false, false);
1629 kfree(wpa);
1633 struct fuse_writepage_args *wpa)
1635 struct fuse_args_pages *ap = &wpa->ia.ap;
1636 struct inode *inode = wpa->inode;
1651 struct fuse_writepage_args *wpa, loff_t size)
1656 struct fuse_inode *fi = get_fuse_inode(wpa->inode);
1657 struct fuse_write_in *inarg = &wpa->ia.write.in;
1658 struct fuse_args *args = &wpa->ia.ap.args;
1659 __u64 data_size = wpa->ia.ap.num_pages * PAGE_SIZE;
1691 rb_erase(&wpa->writepages_entry, &fi->writepages);
1692 fuse_writepage_finish(fm, wpa);
1696 for (aux = wpa->next; aux; aux = next) {
1702 fuse_writepage_free(wpa);
1719 struct fuse_writepage_args *wpa;
1722 wpa = list_entry(fi->queued_writes.next,
1724 list_del_init(&wpa->queue_entry);
1725 fuse_send_writepage(fm, wpa, crop);
1730 struct fuse_writepage_args *wpa)
1732 pgoff_t idx_from = wpa->ia.write.in.offset >> PAGE_SHIFT;
1733 pgoff_t idx_to = idx_from + wpa->ia.ap.num_pages - 1;
1737 WARN_ON(!wpa->ia.ap.num_pages);
1745 WARN_ON(curr->inode != wpa->inode);
1756 rb_link_node(&wpa->writepages_entry, parent, p);
1757 rb_insert_color(&wpa->writepages_entry, root);
1761 static void tree_insert(struct rb_root *root, struct fuse_writepage_args *wpa)
1763 WARN_ON(fuse_insert_writeback(root, wpa));
1769 struct fuse_writepage_args *wpa =
1770 container_of(args, typeof(*wpa), ia.ap.args);
1771 struct inode *inode = wpa->inode;
1785 rb_erase(&wpa->writepages_entry, &fi->writepages);
1786 while (wpa->next) {
1788 struct fuse_write_in *inarg = &wpa->ia.write.in;
1789 struct fuse_writepage_args *next = wpa->next;
1791 wpa->next = next->next;
1793 next->ia.ff = fuse_file_get(wpa->ia.ff);
1822 fuse_writepage_finish(fm, wpa);
1824 fuse_writepage_free(wpa);
1879 struct fuse_writepage_args *wpa;
1882 wpa = kzalloc(sizeof(*wpa), GFP_NOFS);
1883 if (wpa) {
1884 ap = &wpa->ia.ap;
1888 kfree(wpa);
1889 wpa = NULL;
1892 return wpa;
1902 struct fuse_writepage_args *wpa;
1909 wpa = fuse_writepage_args_alloc();
1910 if (!wpa)
1912 ap = &wpa->ia.ap;
1919 wpa->ia.ff = fuse_write_file_get(fc, fi);
1920 if (!wpa->ia.ff)
1923 fuse_write_args_fill(&wpa->ia, wpa->ia.ff, page_offset(page), 0);
1926 wpa->ia.write.in.write_flags |= FUSE_WRITE_CACHE;
1927 wpa->next = NULL;
1934 wpa->inode = inode;
1940 tree_insert(&fi->writepages, wpa);
1941 list_add_tail(&wpa->queue_entry, &fi->queued_writes);
1952 kfree(wpa);
1983 struct fuse_writepage_args *wpa;
1992 struct fuse_args_pages *ap = &data->wpa->ia.ap;
2018 struct fuse_writepage_args *wpa = data->wpa;
2021 int num_pages = wpa->ia.ap.num_pages;
2024 wpa->ia.ff = fuse_file_get(data->ff);
2026 list_add_tail(&wpa->queue_entry, &fi->queued_writes);
2128 struct fuse_writepage_args *wpa = data->wpa;
2129 struct fuse_args_pages *ap = &wpa->ia.ap;
2143 if (wpa && fuse_writepage_need_send(fc, page, ap, data)) {
2145 data->wpa = NULL;
2166 if (data->wpa == NULL) {
2168 wpa = fuse_writepage_args_alloc();
2169 if (!wpa) {
2175 ap = &wpa->ia.ap;
2176 fuse_write_args_fill(&wpa->ia, data->ff, page_offset(page), 0);
2177 wpa->ia.write.in.write_flags |= FUSE_WRITE_CACHE;
2178 wpa->next = NULL;
2182 wpa->inode = inode;
2196 if (data->wpa) {
2204 } else if (fuse_writepage_add(wpa, page)) {
2205 data->wpa = wpa;
2228 data.wpa = NULL;
2239 if (data.wpa) {
2240 WARN_ON(!data.wpa->ia.ap.num_pages);