Lines Matching full:fi
18 struct fuse_inode *fi = get_fuse_inode(dir); in fuse_use_readdirplus() local
24 if (test_and_clear_bit(FUSE_I_ADVISE_RDPLUS, &fi->state)) in fuse_use_readdirplus()
34 struct fuse_inode *fi = get_fuse_inode(file_inode(file)); in fuse_add_dirent_to_cache() local
47 spin_lock(&fi->rdc.lock); in fuse_add_dirent_to_cache()
52 if (fi->rdc.cached || pos != fi->rdc.pos) { in fuse_add_dirent_to_cache()
53 spin_unlock(&fi->rdc.lock); in fuse_add_dirent_to_cache()
56 version = fi->rdc.version; in fuse_add_dirent_to_cache()
57 size = fi->rdc.size; in fuse_add_dirent_to_cache()
65 spin_unlock(&fi->rdc.lock); in fuse_add_dirent_to_cache()
76 spin_lock(&fi->rdc.lock); in fuse_add_dirent_to_cache()
78 if (fi->rdc.version != version || fi->rdc.size != size || in fuse_add_dirent_to_cache()
79 WARN_ON(fi->rdc.pos != pos)) in fuse_add_dirent_to_cache()
89 fi->rdc.size = (index << PAGE_SHIFT) + offset + reclen; in fuse_add_dirent_to_cache()
90 fi->rdc.pos = dirent->off; in fuse_add_dirent_to_cache()
92 spin_unlock(&fi->rdc.lock); in fuse_add_dirent_to_cache()
99 struct fuse_inode *fi = get_fuse_inode(file_inode(file)); in fuse_readdir_cache_end() local
102 spin_lock(&fi->rdc.lock); in fuse_readdir_cache_end()
104 if (fi->rdc.pos != pos) { in fuse_readdir_cache_end()
105 spin_unlock(&fi->rdc.lock); in fuse_readdir_cache_end()
109 fi->rdc.cached = true; in fuse_readdir_cache_end()
110 end = ALIGN(fi->rdc.size, PAGE_SIZE); in fuse_readdir_cache_end()
111 spin_unlock(&fi->rdc.lock); in fuse_readdir_cache_end()
207 struct fuse_inode *fi; in fuse_direntplus_link() local
224 fi = get_fuse_inode(inode); in fuse_direntplus_link()
225 spin_lock(&fi->lock); in fuse_direntplus_link()
226 fi->nlookup++; in fuse_direntplus_link()
227 spin_unlock(&fi->lock); in fuse_direntplus_link()
252 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_direntplus_link() local
254 spin_lock(&fi->lock); in fuse_direntplus_link()
255 fi->nlookup--; in fuse_direntplus_link()
256 spin_unlock(&fi->lock); in fuse_direntplus_link()
485 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_rdc_reset() local
487 fi->rdc.cached = false; in fuse_rdc_reset()
488 fi->rdc.version++; in fuse_rdc_reset()
489 fi->rdc.size = 0; in fuse_rdc_reset()
490 fi->rdc.pos = 0; in fuse_rdc_reset()
491 fi->rdc.epoch = 0; in fuse_rdc_reset()
501 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_readdir_cached() local
526 spin_lock(&fi->rdc.lock); in fuse_readdir_cached()
528 if (!fi->rdc.cached) { in fuse_readdir_cached()
530 if (!ctx->pos && !fi->rdc.size) { in fuse_readdir_cached()
531 fi->rdc.mtime = inode_get_mtime(inode); in fuse_readdir_cached()
532 fi->rdc.iversion = inode_query_iversion(inode); in fuse_readdir_cached()
533 fi->rdc.epoch = atomic_read(&fc->epoch); in fuse_readdir_cached()
535 spin_unlock(&fi->rdc.lock); in fuse_readdir_cached()
546 if (inode_peek_iversion(inode) != fi->rdc.iversion || in fuse_readdir_cached()
547 !timespec64_equal(&fi->rdc.mtime, &mtime) || in fuse_readdir_cached()
548 fi->rdc.epoch != atomic_read(&fc->epoch)) { in fuse_readdir_cached()
558 if (ff->readdir.version != fi->rdc.version) { in fuse_readdir_cached()
567 ff->readdir.version = fi->rdc.version; in fuse_readdir_cached()
569 WARN_ON(fi->rdc.size < ff->readdir.cache_off); in fuse_readdir_cached()
573 if (index == (fi->rdc.size >> PAGE_SHIFT)) in fuse_readdir_cached()
574 size = offset_in_page(fi->rdc.size); in fuse_readdir_cached()
577 spin_unlock(&fi->rdc.lock); in fuse_readdir_cached()
591 spin_lock(&fi->rdc.lock); in fuse_readdir_cached()
596 if (fi->rdc.version == ff->readdir.version) in fuse_readdir_cached()
602 if (ff->readdir.version != fi->rdc.version) { in fuse_readdir_cached()
603 spin_unlock(&fi->rdc.lock); in fuse_readdir_cached()
608 spin_unlock(&fi->rdc.lock); in fuse_readdir_cached()