Lines Matching refs:vnode
17 static void afs_write_to_cache(struct afs_vnode *vnode, loff_t start, size_t len,
48 struct afs_vnode *vnode = AFS_FS_I(file_inode(file)); in afs_write_begin() local
57 vnode->fid.vid, vnode->fid.vnode, pos, len); in afs_write_begin()
63 ret = netfs_write_begin(&vnode->netfs, file, mapping, pos, len, &folio, fsdata); in afs_write_begin()
82 trace_afs_folio_dirty(vnode, tracepoint_string("alrdy"), folio); in afs_write_begin()
89 if (!test_bit(AFS_VNODE_NEW_CONTENT, &vnode->flags) && in afs_write_begin()
126 struct afs_vnode *vnode = AFS_FS_I(file_inode(file)); in afs_write_end() local
133 vnode->fid.vid, vnode->fid.vnode, folio_index(folio)); in afs_write_end()
149 i_size = i_size_read(&vnode->netfs.inode); in afs_write_end()
151 write_seqlock(&vnode->cb_lock); in afs_write_end()
152 i_size = i_size_read(&vnode->netfs.inode); in afs_write_end()
154 afs_set_i_size(vnode, write_end_pos); in afs_write_end()
155 write_sequnlock(&vnode->cb_lock); in afs_write_end()
156 fscache_update_cookie(afs_vnode_cache(vnode), NULL, &write_end_pos); in afs_write_end()
169 trace_afs_folio_dirty(vnode, tracepoint_string("dirty+"), folio); in afs_write_end()
173 trace_afs_folio_dirty(vnode, tracepoint_string("dirty"), folio); in afs_write_end()
191 struct afs_vnode *vnode = AFS_FS_I(mapping->host); in afs_kill_pages() local
197 vnode->fid.vid, vnode->fid.vnode, len, start); in afs_kill_pages()
229 struct afs_vnode *vnode = AFS_FS_I(mapping->host); in afs_redirty_pages() local
235 vnode->fid.vid, vnode->fid.vnode, len, start); in afs_redirty_pages()
258 static void afs_pages_written_back(struct afs_vnode *vnode, loff_t start, unsigned int len) in afs_pages_written_back() argument
260 struct address_space *mapping = vnode->netfs.inode.i_mapping; in afs_pages_written_back()
267 vnode->fid.vid, vnode->fid.vnode, len, start); in afs_pages_written_back()
279 trace_afs_folio_dirty(vnode, tracepoint_string("clear"), folio); in afs_pages_written_back()
286 afs_prune_wb_keys(vnode); in afs_pages_written_back()
295 static int afs_get_writeback_key(struct afs_vnode *vnode, in afs_get_writeback_key() argument
302 spin_lock(&vnode->wb_lock); in afs_get_writeback_key()
306 p = vnode->wb_keys.next; in afs_get_writeback_key()
308 while (p != &vnode->wb_keys) { in afs_get_writeback_key()
324 spin_unlock(&vnode->wb_lock); in afs_get_writeback_key()
333 struct afs_vnode *vnode = op->file[0].vnode; in afs_store_data_success() local
339 afs_pages_written_back(vnode, op->store.pos, op->store.size); in afs_store_data_success()
340 afs_stat_v(vnode, n_stores); in afs_store_data_success()
341 atomic_long_add(op->store.size, &afs_v2net(vnode)->n_store_bytes); in afs_store_data_success()
354 static int afs_store_data(struct afs_vnode *vnode, struct iov_iter *iter, loff_t pos, in afs_store_data() argument
363 vnode->volume->name, in afs_store_data()
364 vnode->fid.vid, in afs_store_data()
365 vnode->fid.vnode, in afs_store_data()
366 vnode->fid.unique, in afs_store_data()
369 ret = afs_get_writeback_key(vnode, &wbk); in afs_store_data()
375 op = afs_alloc_operation(wbk->key, vnode->volume); in afs_store_data()
381 afs_op_set_vnode(op, 0, vnode); in afs_store_data()
387 op->store.i_size = max(pos + size, vnode->netfs.remote_i_size); in afs_store_data()
389 op->mtime = vnode->netfs.inode.i_mtime; in afs_store_data()
406 ret = afs_get_writeback_key(vnode, &wbk); in afs_store_data()
428 struct afs_vnode *vnode, in afs_extend_writeback() argument
524 trace_afs_folio_dirty(vnode, tracepoint_string("store+"), folio); in afs_extend_writeback()
552 struct afs_vnode *vnode = AFS_FS_I(mapping->host); in afs_write_back_from_locked_folio() local
556 loff_t i_size = i_size_read(&vnode->netfs.inode); in afs_write_back_from_locked_folio()
557 bool new_content = test_bit(AFS_VNODE_NEW_CONTENT, &vnode->flags); in afs_write_back_from_locked_folio()
558 bool caching = fscache_cookie_enabled(afs_vnode_cache(vnode)); in afs_write_back_from_locked_folio()
578 trace_afs_folio_dirty(vnode, tracepoint_string("store"), folio); in afs_write_back_from_locked_folio()
592 afs_extend_writeback(mapping, vnode, &count, in afs_write_back_from_locked_folio()
610 afs_write_to_cache(vnode, start, len, i_size, caching); in afs_write_back_from_locked_folio()
613 ret = afs_store_data(vnode, &iter, start, false); in afs_write_back_from_locked_folio()
619 afs_pages_written_back(vnode, start, len); in afs_write_back_from_locked_folio()
656 trace_afs_file_error(vnode, ret, afs_file_error_writeback_fail); in afs_write_back_from_locked_folio()
792 struct afs_vnode *vnode = AFS_FS_I(mapping->host); in afs_writepages() local
803 down_read(&vnode->validate_lock); in afs_writepages()
804 else if (!down_read_trylock(&vnode->validate_lock)) in afs_writepages()
829 up_read(&vnode->validate_lock); in afs_writepages()
839 struct afs_vnode *vnode = AFS_FS_I(file_inode(iocb->ki_filp)); in afs_file_write() local
845 vnode->fid.vid, vnode->fid.vnode, count); in afs_file_write()
847 if (IS_SWAPFILE(&vnode->netfs.inode)) { in afs_file_write()
856 result = afs_validate(vnode, af->key); in afs_file_write()
873 struct afs_vnode *vnode = AFS_FS_I(file_inode(file)); in afs_fsync() local
878 vnode->fid.vid, vnode->fid.vnode, file, in afs_fsync()
881 ret = afs_validate(vnode, af->key); in afs_fsync()
897 struct afs_vnode *vnode = AFS_FS_I(inode); in afs_page_mkwrite() local
902 _enter("{{%llx:%llu}},{%lx}", vnode->fid.vid, vnode->fid.vnode, folio_index(folio)); in afs_page_mkwrite()
904 afs_validate(vnode, af->key); in afs_page_mkwrite()
936 trace_afs_folio_dirty(vnode, tracepoint_string("mkwrite+"), folio); in afs_page_mkwrite()
939 trace_afs_folio_dirty(vnode, tracepoint_string("mkwrite"), folio); in afs_page_mkwrite()
952 void afs_prune_wb_keys(struct afs_vnode *vnode) in afs_prune_wb_keys() argument
958 spin_lock(&vnode->wb_lock); in afs_prune_wb_keys()
960 if (!mapping_tagged(&vnode->netfs.inode.i_data, PAGECACHE_TAG_WRITEBACK) && in afs_prune_wb_keys()
961 !mapping_tagged(&vnode->netfs.inode.i_data, PAGECACHE_TAG_DIRTY)) { in afs_prune_wb_keys()
962 list_for_each_entry_safe(wbk, tmp, &vnode->wb_keys, vnode_link) { in afs_prune_wb_keys()
968 spin_unlock(&vnode->wb_lock); in afs_prune_wb_keys()
982 struct afs_vnode *vnode = AFS_FS_I(folio_inode(folio)); in afs_launder_folio() local
1005 trace_afs_folio_dirty(vnode, tracepoint_string("launder"), folio); in afs_launder_folio()
1006 ret = afs_store_data(vnode, &iter, folio_pos(folio) + f, true); in afs_launder_folio()
1009 trace_afs_folio_dirty(vnode, tracepoint_string("laundered"), folio); in afs_launder_folio()
1021 struct afs_vnode *vnode = priv; in afs_write_to_cache_done() local
1025 afs_invalidate_cache(vnode, 0); in afs_write_to_cache_done()
1031 static void afs_write_to_cache(struct afs_vnode *vnode, in afs_write_to_cache() argument
1035 fscache_write_to_cache(afs_vnode_cache(vnode), in afs_write_to_cache()
1036 vnode->netfs.inode.i_mapping, start, len, i_size, in afs_write_to_cache()
1037 afs_write_to_cache_done, vnode, caching); in afs_write_to_cache()