Lines Matching +full:data +full:- +full:mapping
1 // SPDX-License-Identifier: GPL-2.0-only
32 * v9fs_fid_readpage - read an entire page in from 9P
33 * @data: Opaque pointer to the fid being read
37 static int v9fs_fid_readpage(void *data, struct page *page) in v9fs_fid_readpage() argument
39 struct p9_fid *fid = data; in v9fs_fid_readpage()
40 struct inode *inode = page->mapping->host; in v9fs_fid_readpage()
62 zero_user(page, retval, PAGE_SIZE - retval); in v9fs_fid_readpage()
75 * v9fs_vfs_readpage - read an entire page in from 9P
84 return v9fs_fid_readpage(filp->private_data, page); in v9fs_vfs_readpage()
88 * v9fs_vfs_readpages - read a set of pages from 9P
91 * @mapping: the address space
97 static int v9fs_vfs_readpages(struct file *filp, struct address_space *mapping, in v9fs_vfs_readpages() argument
103 inode = mapping->host; in v9fs_vfs_readpages()
106 ret = v9fs_readpages_from_fscache(inode, mapping, pages, &nr_pages); in v9fs_vfs_readpages()
110 ret = read_cache_pages(mapping, pages, v9fs_fid_readpage, in v9fs_vfs_readpages()
111 filp->private_data); in v9fs_vfs_readpages()
117 * v9fs_release_page - release the private state associated with a page
132 * v9fs_invalidate_page - Invalidate a page completely or partially
151 struct inode *inode = page->mapping->host; in v9fs_vfs_writepage_locked()
158 if (page->index == size >> PAGE_SHIFT) in v9fs_vfs_writepage_locked()
169 BUG_ON(!v9inode->writeback_fid); in v9fs_vfs_writepage_locked()
173 p9_client_write(v9inode->writeback_fid, page_offset(page), &from, &err); in v9fs_vfs_writepage_locked()
187 if (retval == -EAGAIN) { in v9fs_vfs_writepage()
192 mapping_set_error(page->mapping, retval); in v9fs_vfs_writepage()
202 * v9fs_launder_page - Writeback a dirty page
211 struct inode *inode = page->mapping->host; in v9fs_launder_page()
223 * v9fs_direct_IO - 9P address space operation for direct I/O
225 * @iter: The data/buffer to use
230 * In the non-cached mode, we shunt off direct read and write requests before
241 struct file *file = iocb->ki_filp; in v9fs_direct_IO()
242 loff_t pos = iocb->ki_pos; in v9fs_direct_IO()
246 n = p9_client_write(file->private_data, pos, iter, &err); in v9fs_direct_IO()
251 inode_add_bytes(inode, pos + n - i_size); in v9fs_direct_IO()
254 n = p9_client_read(file->private_data, pos, iter, &err); in v9fs_direct_IO()
259 static int v9fs_write_begin(struct file *filp, struct address_space *mapping, in v9fs_write_begin() argument
267 struct inode *inode = mapping->host; in v9fs_write_begin()
270 p9_debug(P9_DEBUG_VFS, "filp %p, mapping %p\n", filp, mapping); in v9fs_write_begin()
274 page = grab_cache_page_write_begin(mapping, index, flags); in v9fs_write_begin()
276 retval = -ENOMEM; in v9fs_write_begin()
279 BUG_ON(!v9inode->writeback_fid); in v9fs_write_begin()
286 retval = v9fs_fid_readpage(v9inode->writeback_fid, page); in v9fs_write_begin()
295 static int v9fs_write_end(struct file *filp, struct address_space *mapping, in v9fs_write_end() argument
300 struct inode *inode = page->mapping->host; in v9fs_write_end()
302 p9_debug(P9_DEBUG_VFS, "filp %p, mapping %p\n", filp, mapping); in v9fs_write_end()
316 if (last_pos > inode->i_size) { in v9fs_write_end()
317 inode_add_bytes(inode, last_pos - inode->i_size); in v9fs_write_end()