Lines Matching refs:fi
98 struct fuse_inode *fi; in fuse_alloc_inode() local
100 fi = alloc_inode_sb(sb, fuse_inode_cachep, GFP_KERNEL); in fuse_alloc_inode()
101 if (!fi) in fuse_alloc_inode()
104 fi->i_time = 0; in fuse_alloc_inode()
105 fi->inval_mask = ~0; in fuse_alloc_inode()
106 fi->nodeid = 0; in fuse_alloc_inode()
107 fi->nlookup = 0; in fuse_alloc_inode()
108 fi->attr_version = 0; in fuse_alloc_inode()
109 fi->orig_ino = 0; in fuse_alloc_inode()
110 fi->state = 0; in fuse_alloc_inode()
111 fi->submount_lookup = NULL; in fuse_alloc_inode()
112 mutex_init(&fi->mutex); in fuse_alloc_inode()
113 spin_lock_init(&fi->lock); in fuse_alloc_inode()
114 fi->forget = fuse_alloc_forget(); in fuse_alloc_inode()
115 if (!fi->forget) in fuse_alloc_inode()
118 if (IS_ENABLED(CONFIG_FUSE_DAX) && !fuse_dax_inode_alloc(sb, fi)) in fuse_alloc_inode()
122 fuse_inode_backing_set(fi, NULL); in fuse_alloc_inode()
124 return &fi->inode; in fuse_alloc_inode()
127 kfree(fi->forget); in fuse_alloc_inode()
129 kmem_cache_free(fuse_inode_cachep, fi); in fuse_alloc_inode()
135 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_free_inode() local
137 mutex_destroy(&fi->mutex); in fuse_free_inode()
138 kfree(fi->forget); in fuse_free_inode()
140 kfree(fi->dax); in fuse_free_inode()
143 fuse_backing_put(fuse_inode_backing(fi)); in fuse_free_inode()
145 kmem_cache_free(fuse_inode_cachep, fi); in fuse_free_inode()
161 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_evict_inode() local
176 if (fi->nlookup) { in fuse_evict_inode()
177 fuse_queue_forget(fc, fi->forget, fi->nodeid, in fuse_evict_inode()
178 fi->nlookup); in fuse_evict_inode()
179 fi->forget = NULL; in fuse_evict_inode()
182 if (fi->submount_lookup) { in fuse_evict_inode()
183 fuse_cleanup_submount_lookup(fc, fi->submount_lookup); in fuse_evict_inode()
184 fi->submount_lookup = NULL; in fuse_evict_inode()
196 WARN_ON(fi->iocachectr != 0); in fuse_evict_inode()
197 WARN_ON(!list_empty(&fi->write_files)); in fuse_evict_inode()
198 WARN_ON(!list_empty(&fi->queued_writes)); in fuse_evict_inode()
231 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_change_attributes_common() local
233 lockdep_assert_held(&fi->lock); in fuse_change_attributes_common()
246 if (!evict_ctr || fi->attr_version || evict_ctr == fuse_get_evict_ctr(fc)) in fuse_change_attributes_common()
247 set_mask_bits(&fi->inval_mask, STATX_BASIC_STATS, 0); in fuse_change_attributes_common()
249 fi->attr_version = atomic64_inc_return(&fc->attr_version); in fuse_change_attributes_common()
250 fi->i_time = attr_valid; in fuse_change_attributes_common()
284 set_mask_bits(&fi->inval_mask, STATX_BTIME, 0); in fuse_change_attributes_common()
286 set_bit(FUSE_I_BTIME, &fi->state); in fuse_change_attributes_common()
287 fi->i_btime.tv_sec = sx->btime.tv_sec; in fuse_change_attributes_common()
288 fi->i_btime.tv_nsec = sx->btime.tv_nsec; in fuse_change_attributes_common()
297 fi->orig_i_mode = inode->i_mode; in fuse_change_attributes_common()
301 fi->orig_ino = attr->ino; in fuse_change_attributes_common()
329 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_change_attributes_i() local
334 spin_lock(&fi->lock); in fuse_change_attributes_i()
353 if ((attr_version != 0 && fi->attr_version > attr_version) || in fuse_change_attributes_i()
354 test_bit(FUSE_I_SIZE_UNSTABLE, &fi->state)) { in fuse_change_attributes_i()
355 spin_unlock(&fi->lock); in fuse_change_attributes_i()
371 spin_unlock(&fi->lock); in fuse_change_attributes_i()
467 struct fuse_inode *fi; in fuse_iget() local
479 struct fuse_inode *fi; in fuse_iget() local
486 fi = get_fuse_inode(inode); in fuse_iget()
487 fi->nodeid = nodeid; in fuse_iget()
488 fi->submount_lookup = fuse_alloc_submount_lookup(); in fuse_iget()
489 if (!fi->submount_lookup) { in fuse_iget()
494 fuse_init_submount_lookup(fi->submount_lookup, nodeid); in fuse_iget()
520 fi = get_fuse_inode(inode); in fuse_iget()
521 spin_lock(&fi->lock); in fuse_iget()
522 fi->nlookup++; in fuse_iget()
523 spin_unlock(&fi->lock); in fuse_iget()
555 struct fuse_inode *fi; in fuse_reverse_inval_inode() local
564 fi = get_fuse_inode(inode); in fuse_reverse_inval_inode()
565 spin_lock(&fi->lock); in fuse_reverse_inval_inode()
566 fi->attr_version = atomic64_inc_return(&fc->attr_version); in fuse_reverse_inval_inode()
567 spin_unlock(&fi->lock); in fuse_reverse_inval_inode()
1641 const struct fuse_inode *fi) in fuse_fill_attr_from_inode() argument
1643 struct timespec64 atime = inode_get_atime(&fi->inode); in fuse_fill_attr_from_inode()
1644 struct timespec64 mtime = inode_get_mtime(&fi->inode); in fuse_fill_attr_from_inode()
1645 struct timespec64 ctime = inode_get_ctime(&fi->inode); in fuse_fill_attr_from_inode()
1648 .ino = fi->inode.i_ino, in fuse_fill_attr_from_inode()
1649 .size = fi->inode.i_size, in fuse_fill_attr_from_inode()
1650 .blocks = fi->inode.i_blocks, in fuse_fill_attr_from_inode()
1657 .mode = fi->inode.i_mode, in fuse_fill_attr_from_inode()
1658 .nlink = fi->inode.i_nlink, in fuse_fill_attr_from_inode()
1659 .uid = __kuid_val(fi->inode.i_uid), in fuse_fill_attr_from_inode()
1660 .gid = __kgid_val(fi->inode.i_gid), in fuse_fill_attr_from_inode()
1661 .rdev = fi->inode.i_rdev, in fuse_fill_attr_from_inode()
1662 .blksize = 1u << fi->inode.i_blkbits, in fuse_fill_attr_from_inode()
1689 struct fuse_inode *fi; in fuse_fill_super_submount() local
1714 fi = get_fuse_inode(root); in fuse_fill_super_submount()
1715 fi->nlookup--; in fuse_fill_super_submount()
1732 fi->submount_lookup = sl; in fuse_fill_super_submount()