/openbmc/linux/fs/nfs/ |
H A D | fscache.c | 287 netfs = kzalloc(sizeof(*netfs), GFP_KERNEL_ACCOUNT); in nfs_netfs_alloc() 288 if (!netfs) in nfs_netfs_alloc() 290 netfs->sreq = sreq; in nfs_netfs_alloc() 292 return netfs; in nfs_netfs_alloc() 320 if (!netfs) in nfs_netfs_issue_read() 340 struct nfs_netfs_io_data *netfs = hdr->netfs; in nfs_netfs_initiate_read() local 342 if (!netfs) in nfs_netfs_initiate_read() 363 struct nfs_netfs_io_data *netfs = hdr->netfs; in nfs_netfs_read_completion() local 366 if (!netfs) in nfs_netfs_read_completion() 369 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() 61 static inline void nfs_netfs_put(struct nfs_netfs_io_data *netfs) in nfs_netfs_put() argument 66 if (!refcount_dec_and_test(&netfs->refcount)) in nfs_netfs_put() 77 final_len = min_t(s64, netfs->sreq->len, atomic64_read(&netfs->transferred)); in nfs_netfs_put() 78 netfs_subreq_terminated(netfs->sreq, netfs->error ?: final_len, false); in nfs_netfs_put() 79 kfree(netfs); in nfs_netfs_put() 83 netfs_inode_init(&nfsi->netfs, &nfs_netfs_ops); in nfs_netfs_inode_init() 132 struct fscache_cookie *cookie = netfs_i_cookie(&NFS_I(inode)->netfs); in nfs_fscache_invalidate() 151 hdr->netfs = desc->pg_netfs; in nfs_netfs_set_pgio_header() [all …]
|
/openbmc/linux/fs/netfs/ |
H A D | Makefile | 3 netfs-y := \ 10 netfs-$(CONFIG_NETFS_STATS) += stats.o 12 obj-$(CONFIG_NETFS_SUPPORT) := netfs.o
|
/openbmc/linux/fs/afs/ |
H A D | inode.c | 61 netfs_inode_init(&vnode->netfs, &afs_req_ops); in afs_set_netfs_context() 168 struct inode *inode = &vnode->netfs.inode; in afs_apply_status() 295 clear_nlink(&vnode->netfs.inode); in afs_vnode_commit_status() 312 drop_nlink(&vnode->netfs.inode); in afs_vnode_commit_status() 313 if (vnode->netfs.inode.i_nlink == 0) { in afs_vnode_commit_status() 332 if (vnode->netfs.inode.i_state & I_NEW) { in afs_fetch_status_success() 436 vnode->netfs.cache = NULL; in afs_get_inode_cache() 453 i_size_read(&vnode->netfs.inode))); in afs_get_inode_cache() 588 if (S_ISREG(vnode->netfs.inode.i_mode)) in afs_zap_data() 677 if (vnode->netfs.inode.i_nlink) in afs_pagecache_valid() [all …]
|
H 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()
|
H A D | write.c | 87 ret = netfs_write_begin(&vnode->netfs, file, mapping, pos, len, &folio, fsdata); in afs_write_begin() 181 i_size = i_size_read(&vnode->netfs.inode); in afs_write_end() 184 i_size = i_size_read(&vnode->netfs.inode); in afs_write_end() 292 struct address_space *mapping = vnode->netfs.inode.i_mapping; in afs_pages_written_back() 426 op->store.i_size = max(pos + size, vnode->netfs.remote_i_size); in afs_store_data() 427 op->mtime = vnode->netfs.inode.i_mtime; in afs_store_data() 590 loff_t i_size = i_size_read(&vnode->netfs.inode); in afs_write_back_from_locked_folio() 865 if (IS_SWAPFILE(&vnode->netfs.inode)) { in afs_file_write() 978 if (!mapping_tagged(&vnode->netfs.inode.i_data, PAGECACHE_TAG_WRITEBACK) && in afs_prune_wb_keys() 979 !mapping_tagged(&vnode->netfs.inode.i_data, PAGECACHE_TAG_DIRTY)) { in afs_prune_wb_keys() [all …]
|
H 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() 903 inode = &op->file[1].vnode->netfs.inode; in afs_do_lookup() 1176 vnode->netfs.inode.i_generation); in afs_d_revalidate() 1375 clear_nlink(&vnode->netfs.inode); in afs_dir_remove_subdir() 1494 drop_nlink(&vnode->netfs.inode); in afs_dir_remove_link() 1495 if (vnode->netfs.inode.i_nlink == 0) { in afs_dir_remove_link() 1688 ihold(&vp->vnode->netfs.inode); in afs_link_success() 1689 d_instantiate(op->dentry, &vp->vnode->netfs.inode); in afs_link_success() 1828 if (S_ISDIR(vnode->netfs.inode.i_mode) && in afs_rename_success() [all …]
|
H A D | fs_operation.c | 235 iput(&op->file[0].vnode->netfs.inode); in afs_put_operation() 237 iput(&op->file[1].vnode->netfs.inode); in afs_put_operation() 242 iput(&op->more_files[i].vnode->netfs.inode); in afs_put_operation()
|
H A D | internal.h | 624 struct netfs_inode netfs; /* Netfslib context and vfs inode */ member 675 return netfs_i_cookie(&vnode->netfs); in afs_vnode_cache() 685 vnode->netfs.cache = cookie; in afs_vnode_set_cache() 687 mapping_set_release_always(vnode->netfs.inode.i_mapping); in afs_vnode_set_cache() 894 i_size_read(&vnode->netfs.inode), flags); in afs_invalidate_cache() 1215 return afs_i2net(&vnode->netfs.inode); in afs_v2net() 1591 return container_of(inode, struct afs_vnode, netfs.inode); in AFS_FS_I() 1596 return &vnode->netfs.inode; in AFS_VNODE_TO_I() 1619 i_size_write(&vnode->netfs.inode, size); in afs_set_i_size() 1620 vnode->netfs.inode.i_blocks = ((size + 1023) >> 10) << 1; in afs_set_i_size()
|
H A D | dir_silly.c | 134 ihold(&vnode->netfs.inode); in afs_sillyrename() 151 iput(&vnode->netfs.inode); in afs_sillyrename()
|
H A D | super.c | 664 inode_init_once(&vnode->netfs.inode); in afs_i_init_once() 705 _leave(" = %p", &vnode->netfs.inode); in afs_alloc_inode() 706 return &vnode->netfs.inode; in afs_alloc_inode()
|
/openbmc/linux/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()
|
H A D | vfs_addr.c | 147 i_size_read(&v9inode->netfs.inode), 0); in v9fs_write_to_cache_done() 289 retval = netfs_write_begin(&v9inode->netfs, filp, mapping, pos, len, &folio, fsdata); in v9fs_write_begin()
|
/openbmc/linux/Documentation/filesystems/caching/ |
H A D | fscache.rst | 25 | | | netfs |-->| |--+ 71 FS-Cache does not follow the idea of completely loading every netfs file 73 then serving the pages out of that cache rather than the netfs inode because: 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 101 * The interface to the netfs returns as few errors as possible, preferring 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: [all …]
|
H A D | index.rst | 10 netfs-api
|
H 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
|
/openbmc/linux/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 | 573 if (S_ISREG(ci->netfs.inode.i_mode) && in __check_cap_issue() 588 if (S_ISDIR(ci->netfs.inode.i_mode)) { in __check_cap_issue() 956 struct inode *inode = &ci->netfs.inode; in ceph_caps_revoking() 976 ci->netfs.inode.i_data.nrpages)) in __ceph_caps_used() 1003 if (S_ISDIR(ci->netfs.inode.i_mode)) { in __ceph_caps_file_wanted() 1056 if (S_ISDIR(ci->netfs.inode.i_mode)) { in __ceph_caps_wanted() 2723 ihold(&ci->netfs.inode); in ceph_take_cap_refs() 3795 i_flushing_item)->netfs.inode); in handle_cap_flush_ack() 4536 inode = igrab(&ci->netfs.inode); in ceph_check_delayed_caps() 4564 inode = &ci->netfs.inode; in flush_dirty_session_caps() [all …]
|
H A D | cache.h | 31 return netfs_i_cookie(&ci->netfs); in ceph_fscache_cookie()
|
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() 72 dout("ceph_vxattrcb_layout %p\n", &ci->netfs.inode); in ceph_vxattrcb_layout() 164 struct ceph_fs_client *fsc = ceph_sb_to_fs_client(ci->netfs.inode.i_sb); in ceph_vxattrcb_layout_pool() 316 struct ceph_fs_client *fsc = ceph_sb_to_fs_client(ci->netfs.inode.i_sb); in ceph_vxattrcb_cluster_fsid() 324 struct ceph_fs_client *fsc = ceph_sb_to_fs_client(ci->netfs.inode.i_sb); in ceph_vxattrcb_client_id() 661 ceph_vinop(&ci->netfs.inode), xattr, name_len, name, in __set_xattr() 907 dout("__build_xattrs_blob %p\n", &ci->netfs.inode); in __ceph_build_xattrs_blob()
|
/openbmc/linux/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 | fscache.h | 65 return netfs_i_cookie(&CIFS_I(inode)->netfs); in cifs_inode_cookie()
|
/openbmc/linux/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 197 The above fields are the ones the netfs can use. They are: 608 .. kernel-doc:: include/linux/netfs.h 609 .. kernel-doc:: fs/netfs/buffered_read.c [all …]
|
/openbmc/linux/fs/cachefiles/ |
H A D | Kconfig | 37 the data lies with the cachefiles backend instead of with the netfs
|