| /linux-6.15/fs/nfs/ |
| H A D | fscache.c | 291 netfs = kzalloc(sizeof(*netfs), GFP_KERNEL_ACCOUNT); in nfs_netfs_alloc() 292 if (!netfs) in nfs_netfs_alloc() 294 netfs->sreq = sreq; in nfs_netfs_alloc() 296 return netfs; in nfs_netfs_alloc() 317 if (!netfs) { in nfs_netfs_issue_read() 339 struct nfs_netfs_io_data *netfs = hdr->netfs; in nfs_netfs_initiate_read() local 341 if (!netfs) in nfs_netfs_initiate_read() 362 struct nfs_netfs_io_data *netfs = hdr->netfs; in nfs_netfs_read_completion() local 365 if (!netfs) in nfs_netfs_read_completion() 368 sreq = netfs->sreq; in nfs_netfs_read_completion() [all …]
|
| H A D | fscache.h | 56 static inline void nfs_netfs_get(struct nfs_netfs_io_data *netfs) in nfs_netfs_get() argument 58 refcount_inc(&netfs->refcount); in nfs_netfs_get() 64 if (!refcount_dec_and_test(&netfs->refcount)) in nfs_netfs_put() 75 netfs->sreq->transferred = min_t(s64, netfs->sreq->len, in nfs_netfs_put() 76 atomic64_read(&netfs->transferred)); in nfs_netfs_put() 77 netfs->sreq->error = netfs->error; in nfs_netfs_put() 78 netfs_read_subreq_terminated(netfs->sreq); in nfs_netfs_put() 79 kfree(netfs); in nfs_netfs_put() 83 netfs_inode_init(&nfsi->netfs, &nfs_netfs_ops, false); in nfs_netfs_inode_init() 151 hdr->netfs = desc->pg_netfs; in nfs_netfs_set_pgio_header() [all …]
|
| /linux-6.15/fs/netfs/ |
| H A D | Makefile | 3 netfs-y := \ 22 netfs-$(CONFIG_NETFS_STATS) += stats.o 24 netfs-$(CONFIG_FSCACHE) += \ 32 netfs-$(CONFIG_FSCACHE) += fscache_proc.o 34 netfs-$(CONFIG_FSCACHE_STATS) += fscache_stats.o 36 obj-$(CONFIG_NETFS_SUPPORT) += netfs.o
|
| /linux-6.15/fs/afs/ |
| H A D | inode.c | 256 struct inode *inode = &vnode->netfs.inode; in afs_apply_status() 346 vnode->netfs.remote_i_size = status->size; in afs_apply_status() 350 vnode->netfs.zero_point = status->size; in afs_apply_status() 393 clear_nlink(&vnode->netfs.inode); in afs_vnode_commit_status() 410 drop_nlink(&vnode->netfs.inode); in afs_vnode_commit_status() 411 if (vnode->netfs.inode.i_nlink == 0) { in afs_vnode_commit_status() 430 if (vnode->netfs.inode.i_state & I_NEW) { in afs_fetch_status_success() 536 vnode->netfs.cache = NULL; in afs_get_inode_cache() 553 i_size_read(&vnode->netfs.inode))); in afs_get_inode_cache() 712 stat->size = vnode->netfs.remote_i_size; in afs_getattr() [all …]
|
| H A D | dir_edit.c | 125 mapping_gfp_mask(dvnode->netfs.inode.i_mapping)); in afs_dir_get_block() 254 i_size = i_size_read(&vnode->netfs.inode); in afs_edit_dir_add() 363 inode_inc_iversion_raw(&vnode->netfs.inode); in afs_edit_dir_add() 367 netfs_single_mark_inode_dirty(&vnode->netfs.inode); in afs_edit_dir_add() 407 i_size = i_size_read(&vnode->netfs.inode); in afs_edit_dir_remove() 499 netfs_single_mark_inode_dirty(&vnode->netfs.inode); in afs_edit_dir_remove() 501 inode_set_iversion_raw(&vnode->netfs.inode, vnode->status.data_version); in afs_edit_dir_remove() 540 i_size = i_size_read(&vnode->netfs.inode); in afs_edit_dir_update_dotdot() 582 netfs_single_mark_inode_dirty(&vnode->netfs.inode); in afs_edit_dir_update_dotdot() 612 i_size = i_size_read(&dvnode->netfs.inode); in afs_mkdir_init_dir() [all …]
|
| H A D | dir.c | 152 __func__, dvnode->netfs.inode.i_ino, in afs_dir_check_block() 239 i_size = i_size_read(&dvnode->netfs.inode); in afs_do_read_single() 317 i_size = i_size_read(&dvnode->netfs.inode); in afs_read_dir() 893 inode = &op->file[1].vnode->netfs.inode; in afs_do_lookup() 1230 clear_nlink(&vnode->netfs.inode); in afs_check_for_remote_deletion() 1357 clear_nlink(&vnode->netfs.inode); in afs_dir_remove_subdir() 1489 drop_nlink(&vnode->netfs.inode); in afs_dir_remove_link() 1490 if (vnode->netfs.inode.i_nlink == 0) { in afs_dir_remove_link() 1692 ihold(&vp->vnode->netfs.inode); in afs_link_success() 1841 if (S_ISDIR(vnode->netfs.inode.i_mode) && in afs_rename_success() [all …]
|
| H A D | write.c | 146 op->store.i_size = umax(pos + len, vnode->netfs.remote_i_size); in afs_issue_write_worker() 147 op->mtime = inode_get_mtime(&vnode->netfs.inode); in afs_issue_write_worker() 293 if (!mapping_tagged(&vnode->netfs.inode.i_data, PAGECACHE_TAG_WRITEBACK) && in afs_prune_wb_keys() 294 !mapping_tagged(&vnode->netfs.inode.i_data, PAGECACHE_TAG_DIRTY)) { in afs_prune_wb_keys()
|
| H A D | dir_search.c | 42 unsigned long long i_size = i_size_read(&iter->dvnode->netfs.inode); in afs_dir_reset_iter() 197 _enter("{%lu},,,", dvnode->netfs.inode.i_ino); in afs_dir_search() 217 *_dir_version = inode_peek_iversion_raw(&dvnode->netfs.inode); in afs_dir_search()
|
| H A D | validation.c | 376 if (S_ISREG(vnode->netfs.inode.i_mode)) in afs_zap_data() 377 filemap_invalidate_inode(&vnode->netfs.inode, true, 0, LLONG_MAX); in afs_zap_data() 379 filemap_invalidate_inode(&vnode->netfs.inode, false, 0, LLONG_MAX); in afs_zap_data() 432 unmap_mapping_pages(vnode->netfs.inode.i_mapping, 0, 0, false); in afs_validate()
|
| H A D | fs_operation.c | 343 iput(&op->file[0].vnode->netfs.inode); in afs_put_operation() 345 iput(&op->file[1].vnode->netfs.inode); in afs_put_operation() 350 iput(&op->more_files[i].vnode->netfs.inode); in afs_put_operation()
|
| H A D | internal.h | 678 struct netfs_inode netfs; /* Netfslib context and vfs inode */ member 732 return netfs_i_cookie(&vnode->netfs); in afs_vnode_cache() 742 vnode->netfs.cache = cookie; in afs_vnode_set_cache() 744 mapping_set_release_always(vnode->netfs.inode.i_mapping); in afs_vnode_set_cache() 966 i_size_read(&vnode->netfs.inode), flags); in afs_invalidate_cache() 1260 return afs_i2net(&vnode->netfs.inode); in afs_v2net() 1704 return container_of(inode, struct afs_vnode, netfs.inode); in AFS_FS_I() 1709 return &vnode->netfs.inode; in AFS_VNODE_TO_I() 1732 i_size_write(&vnode->netfs.inode, size); in afs_set_i_size() 1733 vnode->netfs.inode.i_blocks = ((size + 1023) >> 10) << 1; in afs_set_i_size()
|
| H A D | file.c | 189 i_size = i_size_read(&vnode->netfs.inode); in afs_release() 433 i_size = i_size_read(&vnode->netfs.inode); in afs_update_i_size() 435 i_size_write(&vnode->netfs.inode, new_i_size); in afs_update_i_size() 436 inode_set_bytes(&vnode->netfs.inode, new_i_size); in afs_update_i_size()
|
| H A D | dynroot.c | 68 netfs_inode_init(&vnode->netfs, NULL, false); in afs_iget_pseudo_dir() 262 netfs_inode_init(&vnode->netfs, NULL, false); in afs_lookup_atcell() 387 netfs_inode_init(&vnode->netfs, NULL, false); in afs_dynroot_iget_root()
|
| H A D | dir_silly.c | 134 ihold(&vnode->netfs.inode); in afs_sillyrename() 151 iput(&vnode->netfs.inode); in afs_sillyrename()
|
| /linux-6.15/fs/smb/client/ |
| H A D | fscache.c | 138 cifs_fscache_fill_coherency(&cifsi->netfs.inode, &cd); in cifs_fscache_get_inode_cookie() 140 cifsi->netfs.cache = in cifs_fscache_get_inode_cookie() 144 i_size_read(&cifsi->netfs.inode)); in cifs_fscache_get_inode_cookie() 145 if (cifsi->netfs.cache) in cifs_fscache_get_inode_cookie() 170 cifsi->netfs.cache = NULL; in cifs_fscache_release_inode_cookie()
|
| H A D | cifsfs.c | 413 cifs_inode->netfs.remote_i_size = 0; in cifs_alloc_inode() 430 return &cifs_inode->netfs.inode; in cifs_alloc_inode() 1321 if (src_cifsi->netfs.remote_i_size < off + len) { in cifs_remap_file_range() 1342 if (fend > target_cifsi->netfs.zero_point) in cifs_remap_file_range() 1343 target_cifsi->netfs.zero_point = fend + 1; in cifs_remap_file_range() 1344 old_size = target_cifsi->netfs.remote_i_size; in cifs_remap_file_range() 1363 target_cifsi->netfs.zero_point = new_size; in cifs_remap_file_range() 1434 if (src_cifsi->netfs.remote_i_size < off + len) { in cifs_file_copychunk_range() 1457 netfs_resize_file(&target_cifsi->netfs, in cifs_file_copychunk_range() 1463 target_cifsi->netfs.zero_point = destoff + rc; in cifs_file_copychunk_range() [all …]
|
| /linux-6.15/Documentation/filesystems/caching/ |
| H A D | fscache.rst | 25 | | | netfs |-->| |--+ 71 FS-Cache does not follow the idea of completely loading every netfs file 87 It instead serves the cache out in chunks as and when requested by the netfs 98 * The netfs is provided with an interface that allows either party to 102 rather to let the netfs remain oblivious. 106 to the netfs; the netfs gets a volume cookie to represent a collection of 136 netfs using an iov_iter. 145 The netfs API to FS-Cache can be found in: 147 Documentation/filesystems/caching/netfs-api.rst 324 /sys/module/netfs/parameters/debug [all …]
|
| H A D | index.rst | 10 netfs-api
|
| /linux-6.15/fs/9p/ |
| H A D | cache.c | 65 v9inode->netfs.cache = in v9fs_cache_inode_get_cookie() 70 i_size_read(&v9inode->netfs.inode)); in v9fs_cache_inode_get_cookie() 71 if (v9inode->netfs.cache) in v9fs_cache_inode_get_cookie()
|
| H A D | v9fs.h | 137 struct netfs_inode netfs; /* Netfslib context and vfs inode */ member 145 return container_of(inode, struct v9fs_inode, netfs.inode); in V9FS_I() 151 return netfs_i_cookie(&v9inode->netfs); in v9fs_inode_cookie()
|
| /linux-6.15/fs/ceph/ |
| H A D | cache.c | 32 WARN_ON_ONCE(ci->netfs.cache); in ceph_fscache_register_inode_cookie() 34 ci->netfs.cache = in ceph_fscache_register_inode_cookie() 39 if (ci->netfs.cache) in ceph_fscache_register_inode_cookie()
|
| H A D | caps.c | 500 struct inode *inode = &ci->netfs.inode; in __cap_set_timeouts() 520 struct inode *inode = &ci->netfs.inode; in __cap_delay_requeue() 547 struct inode *inode = &ci->netfs.inode; in __cap_delay_requeue_front() 566 struct inode *inode = &ci->netfs.inode; in __cap_delay_cancel() 580 struct inode *inode = &ci->netfs.inode; in __check_cap_issue() 591 if (S_ISREG(ci->netfs.inode.i_mode) && in __check_cap_issue() 990 ci->netfs.inode.i_data.nrpages)) in __ceph_caps_used() 1017 if (S_ISDIR(ci->netfs.inode.i_mode)) { in __ceph_caps_file_wanted() 1070 if (S_ISDIR(ci->netfs.inode.i_mode)) { in __ceph_caps_wanted() 4633 inode = igrab(&ci->netfs.inode); in ceph_check_delayed_caps() [all …]
|
| H A D | xattr.c | 60 struct ceph_fs_client *fsc = ceph_sb_to_fs_client(ci->netfs.inode.i_sb); in ceph_vxattrcb_layout() 73 doutc(cl, "%p\n", &ci->netfs.inode); in ceph_vxattrcb_layout() 165 struct ceph_fs_client *fsc = ceph_sb_to_fs_client(ci->netfs.inode.i_sb); in ceph_vxattrcb_layout_pool() 317 struct ceph_fs_client *fsc = ceph_sb_to_fs_client(ci->netfs.inode.i_sb); in ceph_vxattrcb_cluster_fsid() 325 struct ceph_fs_client *fsc = ceph_sb_to_fs_client(ci->netfs.inode.i_sb); in ceph_vxattrcb_client_id() 574 struct inode *inode = &ci->netfs.inode; in __set_xattr() 674 struct ceph_client *cl = ceph_inode_to_client(&ci->netfs.inode); in __get_xattr() 742 struct ceph_client *cl = ceph_inode_to_client(&ci->netfs.inode); in __copy_xattr_names() 766 struct ceph_client *cl = ceph_inode_to_client(&ci->netfs.inode); in __ceph_destroy_xattrs() 883 struct ceph_client *cl = ceph_inode_to_client(&ci->netfs.inode); in __get_required_blob_size() [all …]
|
| H A D | cache.h | 31 return netfs_i_cookie(&ci->netfs); in ceph_fscache_cookie()
|
| /linux-6.15/Documentation/filesystems/ |
| H A D | netfs_library.rst | 30 access must be provided by the netfs. 37 its use on each netfs inode it is helping to manage. To this end, a context 46 A network filesystem that wants to use netfs lib must place one of these in its 51 struct netfs_inode netfs; /* Netfslib context and vfs inode */ 85 then a function to cast from the VFS inode structure to the netfs context:: 106 * Insulate the netfs from VM interface changes. 108 * Allow the netfs to arbitrarily split reads up into pieces, even ones that 114 * Allow the netfs to partially fulfil a read, which will then be resubmitted. 197 The above fields are the ones the netfs can use. They are: 593 .. kernel-doc:: include/linux/netfs.h [all …]
|