| /linux/fs/nfs/ |
| A D | fscache.c | 284 netfs = kzalloc(sizeof(*netfs), GFP_KERNEL_ACCOUNT); in nfs_netfs_alloc() 285 if (!netfs) in nfs_netfs_alloc() 287 netfs->sreq = sreq; in nfs_netfs_alloc() 289 return netfs; in nfs_netfs_alloc() 310 if (!netfs) in nfs_netfs_issue_read() 330 struct nfs_netfs_io_data *netfs = hdr->netfs; in nfs_netfs_initiate_read() local 332 if (!netfs) in nfs_netfs_initiate_read() 353 struct nfs_netfs_io_data *netfs = hdr->netfs; in nfs_netfs_read_completion() local 356 if (!netfs) in nfs_netfs_read_completion() 359 sreq = netfs->sreq; in nfs_netfs_read_completion() [all …]
|
| 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() 61 static inline void nfs_netfs_put(struct nfs_netfs_io_data *netfs) in nfs_netfs_put() argument 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_read_subreq_terminated(netfs->sreq, netfs->error, false); in nfs_netfs_put() 78 kfree(netfs); in nfs_netfs_put() 82 netfs_inode_init(&nfsi->netfs, &nfs_netfs_ops, false); in nfs_netfs_inode_init() 150 hdr->netfs = desc->pg_netfs; in nfs_netfs_set_pgio_header() [all …]
|
| /linux/fs/netfs/ |
| A D | Makefile | 3 netfs-y := \ 19 netfs-$(CONFIG_NETFS_STATS) += stats.o 21 netfs-$(CONFIG_FSCACHE) += \ 29 netfs-$(CONFIG_FSCACHE) += fscache_proc.o 31 netfs-$(CONFIG_FSCACHE_STATS) += fscache_stats.o 33 obj-$(CONFIG_NETFS_SUPPORT) += netfs.o
|
| /linux/fs/afs/ |
| A D | inode.c | 166 struct inode *inode = &vnode->netfs.inode; in afs_apply_status() 253 vnode->netfs.remote_i_size = status->size; in afs_apply_status() 257 vnode->netfs.zero_point = status->size; in afs_apply_status() 298 clear_nlink(&vnode->netfs.inode); in afs_vnode_commit_status() 315 drop_nlink(&vnode->netfs.inode); in afs_vnode_commit_status() 316 if (vnode->netfs.inode.i_nlink == 0) { in afs_vnode_commit_status() 335 if (vnode->netfs.inode.i_state & I_NEW) { in afs_fetch_status_success() 439 vnode->netfs.cache = NULL; in afs_get_inode_cache() 456 i_size_read(&vnode->netfs.inode))); in afs_get_inode_cache() 615 stat->size = vnode->netfs.remote_i_size; in afs_getattr() [all …]
|
| A D | dir_edit.c | 112 struct address_space *mapping = vnode->netfs.inode.i_mapping; in afs_dir_get_folio() 220 i_size = i_size_read(&vnode->netfs.inode); in afs_edit_dir_add() 340 inode_inc_iversion_raw(&vnode->netfs.inode); in afs_edit_dir_add() 387 i_size = i_size_read(&vnode->netfs.inode); in afs_edit_dir_remove() 467 inode_set_iversion_raw(&vnode->netfs.inode, vnode->status.data_version); in afs_edit_dir_remove() 513 i_size = i_size_read(&vnode->netfs.inode); in afs_edit_dir_update_dotdot() 561 inode_set_iversion_raw(&vnode->netfs.inode, vnode->status.data_version); in afs_edit_dir_update_dotdot()
|
| 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() 278 if (!mapping_tagged(&vnode->netfs.inode.i_data, PAGECACHE_TAG_WRITEBACK) && in afs_prune_wb_keys() 279 !mapping_tagged(&vnode->netfs.inode.i_data, PAGECACHE_TAG_DIRTY)) { in afs_prune_wb_keys()
|
| A D | validation.c | 367 if (S_ISREG(vnode->netfs.inode.i_mode)) in afs_zap_data() 368 filemap_invalidate_inode(&vnode->netfs.inode, true, 0, LLONG_MAX); in afs_zap_data() 370 filemap_invalidate_inode(&vnode->netfs.inode, false, 0, LLONG_MAX); in afs_zap_data() 423 unmap_mapping_pages(vnode->netfs.inode.i_mapping, 0, 0, false); in afs_validate()
|
| A D | dir.c | 158 __func__, dvnode->netfs.inode.i_ino, in afs_dir_check_folio() 293 i_size = i_size_read(&dvnode->netfs.inode); in afs_read_dir() 910 inode = &op->file[1].vnode->netfs.inode; in afs_do_lookup() 1189 vnode->netfs.inode.i_generation); in afs_d_revalidate() 1275 clear_nlink(&vnode->netfs.inode); in afs_check_for_remote_deletion() 1389 clear_nlink(&vnode->netfs.inode); in afs_dir_remove_subdir() 1508 drop_nlink(&vnode->netfs.inode); in afs_dir_remove_link() 1509 if (vnode->netfs.inode.i_nlink == 0) { in afs_dir_remove_link() 1702 ihold(&vp->vnode->netfs.inode); in afs_link_success() 1842 if (S_ISDIR(vnode->netfs.inode.i_mode) && in afs_rename_success() [all …]
|
| A D | fs_operation.c | 244 iput(&op->file[0].vnode->netfs.inode); in afs_put_operation() 246 iput(&op->file[1].vnode->netfs.inode); in afs_put_operation() 251 iput(&op->more_files[i].vnode->netfs.inode); in afs_put_operation()
|
| A D | internal.h | 699 struct netfs_inode netfs; /* Netfslib context and vfs inode */ member 750 return netfs_i_cookie(&vnode->netfs); in afs_vnode_cache() 760 vnode->netfs.cache = cookie; in afs_vnode_set_cache() 762 mapping_set_release_always(vnode->netfs.inode.i_mapping); in afs_vnode_set_cache() 983 i_size_read(&vnode->netfs.inode), flags); in afs_invalidate_cache() 1248 return afs_i2net(&vnode->netfs.inode); in afs_v2net() 1659 return container_of(inode, struct afs_vnode, netfs.inode); in AFS_FS_I() 1664 return &vnode->netfs.inode; in AFS_VNODE_TO_I() 1687 i_size_write(&vnode->netfs.inode, size); in afs_set_i_size() 1688 vnode->netfs.inode.i_blocks = ((size + 1023) >> 10) << 1; in afs_set_i_size()
|
| A D | file.c | 197 i_size = i_size_read(&vnode->netfs.inode); in afs_release() 397 i_size = i_size_read(&vnode->netfs.inode); in afs_update_i_size() 399 i_size_write(&vnode->netfs.inode, new_i_size); in afs_update_i_size() 400 inode_set_bytes(&vnode->netfs.inode, new_i_size); in afs_update_i_size()
|
| A D | dir_silly.c | 134 ihold(&vnode->netfs.inode); in afs_sillyrename() 151 iput(&vnode->netfs.inode); in afs_sillyrename()
|
| /linux/fs/smb/client/ |
| 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()
|
| A D | cifsfs.c | 412 cifs_inode->netfs.remote_i_size = 0; in cifs_alloc_inode() 429 return &cifs_inode->netfs.inode; in cifs_alloc_inode() 1285 if (src_cifsi->netfs.remote_i_size < off + len) { in cifs_remap_file_range() 1306 if (fend > target_cifsi->netfs.zero_point) in cifs_remap_file_range() 1307 target_cifsi->netfs.zero_point = fend + 1; in cifs_remap_file_range() 1308 old_size = target_cifsi->netfs.remote_i_size; in cifs_remap_file_range() 1327 target_cifsi->netfs.zero_point = new_size; in cifs_remap_file_range() 1398 if (src_cifsi->netfs.remote_i_size < off + len) { in cifs_file_copychunk_range() 1421 netfs_resize_file(&target_cifsi->netfs, in cifs_file_copychunk_range() 1427 target_cifsi->netfs.zero_point = destoff + rc; in cifs_file_copychunk_range() [all …]
|
| A D | fscache.h | 65 return netfs_i_cookie(&CIFS_I(inode)->netfs); in cifs_inode_cookie()
|
| /linux/Documentation/filesystems/caching/ |
| 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 …]
|
| A D | index.rst | 10 netfs-api
|
| A D | backend-api.rst | 206 * FSCACHE_COOKIE_LOCAL_WRITE - The netfs's data has been modified 328 called when the cookie is relinquished by the netfs, withdrawn or culled 345 the netfs file due to local truncation. The cache backend should make all 347 netfs inode mutex. 350 withdrawal and the netfs must have the cookie marked in-use to prevent 384 * Begin an operation for the netfs lib [mandatory]:: 416 A cache backend provides a data I/O API by through the netfs library's ``struct
|
| /linux/fs/9p/ |
| 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()
|
| 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/fs/ceph/ |
| 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()
|
| 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() 1004 ci->netfs.inode.i_data.nrpages)) in __ceph_caps_used() 1031 if (S_ISDIR(ci->netfs.inode.i_mode)) { in __ceph_caps_file_wanted() 1084 if (S_ISDIR(ci->netfs.inode.i_mode)) { in __ceph_caps_wanted() 4648 inode = igrab(&ci->netfs.inode); in ceph_check_delayed_caps() [all …]
|
| 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 …]
|
| A D | cache.h | 31 return netfs_i_cookie(&ci->netfs); in ceph_fscache_cookie()
|
| /linux/Documentation/filesystems/ |
| 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 …]
|