Lines Matching refs:fi
19 struct fuse_inode *fi = get_fuse_inode(dir); in fuse_use_readdirplus() local
25 if (test_and_clear_bit(FUSE_I_ADVISE_RDPLUS, &fi->state)) in fuse_use_readdirplus()
35 struct fuse_inode *fi = get_fuse_inode(file_inode(file)); in fuse_add_dirent_to_cache() local
44 spin_lock(&fi->rdc.lock); in fuse_add_dirent_to_cache()
49 if (fi->rdc.cached || pos != fi->rdc.pos) { in fuse_add_dirent_to_cache()
50 spin_unlock(&fi->rdc.lock); in fuse_add_dirent_to_cache()
53 version = fi->rdc.version; in fuse_add_dirent_to_cache()
54 size = fi->rdc.size; in fuse_add_dirent_to_cache()
62 spin_unlock(&fi->rdc.lock); in fuse_add_dirent_to_cache()
73 spin_lock(&fi->rdc.lock); in fuse_add_dirent_to_cache()
75 if (fi->rdc.version != version || fi->rdc.size != size || in fuse_add_dirent_to_cache()
76 WARN_ON(fi->rdc.pos != pos)) in fuse_add_dirent_to_cache()
86 fi->rdc.size = (index << PAGE_SHIFT) + offset + reclen; in fuse_add_dirent_to_cache()
87 fi->rdc.pos = dirent->off; in fuse_add_dirent_to_cache()
89 spin_unlock(&fi->rdc.lock); in fuse_add_dirent_to_cache()
96 struct fuse_inode *fi = get_fuse_inode(file_inode(file)); in fuse_readdir_cache_end() local
99 spin_lock(&fi->rdc.lock); in fuse_readdir_cache_end()
101 if (fi->rdc.pos != pos) { in fuse_readdir_cache_end()
102 spin_unlock(&fi->rdc.lock); in fuse_readdir_cache_end()
106 fi->rdc.cached = true; in fuse_readdir_cache_end()
107 end = ALIGN(fi->rdc.size, PAGE_SIZE); in fuse_readdir_cache_end()
108 spin_unlock(&fi->rdc.lock); in fuse_readdir_cache_end()
205 struct fuse_inode *fi; in fuse_direntplus_link() local
222 fi = get_fuse_inode(inode); in fuse_direntplus_link()
223 spin_lock(&fi->lock); in fuse_direntplus_link()
224 fi->nlookup++; in fuse_direntplus_link()
225 spin_unlock(&fi->lock); in fuse_direntplus_link()
250 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_direntplus_link() local
252 spin_lock(&fi->lock); in fuse_direntplus_link()
253 fi->nlookup--; in fuse_direntplus_link()
254 spin_unlock(&fi->lock); in fuse_direntplus_link()
435 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_rdc_reset() local
437 fi->rdc.cached = false; in fuse_rdc_reset()
438 fi->rdc.version++; in fuse_rdc_reset()
439 fi->rdc.size = 0; in fuse_rdc_reset()
440 fi->rdc.pos = 0; in fuse_rdc_reset()
450 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_readdir_cached() local
475 spin_lock(&fi->rdc.lock); in fuse_readdir_cached()
477 if (!fi->rdc.cached) { in fuse_readdir_cached()
479 if (!ctx->pos && !fi->rdc.size) { in fuse_readdir_cached()
480 fi->rdc.mtime = inode_get_mtime(inode); in fuse_readdir_cached()
481 fi->rdc.iversion = inode_query_iversion(inode); in fuse_readdir_cached()
483 spin_unlock(&fi->rdc.lock); in fuse_readdir_cached()
494 if (inode_peek_iversion(inode) != fi->rdc.iversion || in fuse_readdir_cached()
495 !timespec64_equal(&fi->rdc.mtime, &mtime)) { in fuse_readdir_cached()
505 if (ff->readdir.version != fi->rdc.version) { in fuse_readdir_cached()
514 ff->readdir.version = fi->rdc.version; in fuse_readdir_cached()
516 WARN_ON(fi->rdc.size < ff->readdir.cache_off); in fuse_readdir_cached()
520 if (index == (fi->rdc.size >> PAGE_SHIFT)) in fuse_readdir_cached()
521 size = fi->rdc.size & ~PAGE_MASK; in fuse_readdir_cached()
524 spin_unlock(&fi->rdc.lock); in fuse_readdir_cached()
538 spin_lock(&fi->rdc.lock); in fuse_readdir_cached()
543 if (fi->rdc.version == ff->readdir.version) in fuse_readdir_cached()
549 if (ff->readdir.version != fi->rdc.version) { in fuse_readdir_cached()
550 spin_unlock(&fi->rdc.lock); in fuse_readdir_cached()
555 spin_unlock(&fi->rdc.lock); in fuse_readdir_cached()