Lines Matching refs:fi

91 	struct fuse_inode *fi;  in fuse_alloc_inode()  local
93 fi = alloc_inode_sb(sb, fuse_inode_cachep, GFP_KERNEL); in fuse_alloc_inode()
94 if (!fi) in fuse_alloc_inode()
97 fi->i_time = 0; in fuse_alloc_inode()
98 fi->inval_mask = ~0; in fuse_alloc_inode()
99 fi->nodeid = 0; in fuse_alloc_inode()
100 fi->nlookup = 0; in fuse_alloc_inode()
101 fi->attr_version = 0; in fuse_alloc_inode()
102 fi->orig_ino = 0; in fuse_alloc_inode()
103 fi->state = 0; in fuse_alloc_inode()
104 fi->submount_lookup = NULL; in fuse_alloc_inode()
105 mutex_init(&fi->mutex); in fuse_alloc_inode()
106 spin_lock_init(&fi->lock); in fuse_alloc_inode()
107 fi->forget = fuse_alloc_forget(); in fuse_alloc_inode()
108 if (!fi->forget) in fuse_alloc_inode()
111 if (IS_ENABLED(CONFIG_FUSE_DAX) && !fuse_dax_inode_alloc(sb, fi)) in fuse_alloc_inode()
115 fuse_inode_backing_set(fi, NULL); in fuse_alloc_inode()
117 return &fi->inode; in fuse_alloc_inode()
120 kfree(fi->forget); in fuse_alloc_inode()
122 kmem_cache_free(fuse_inode_cachep, fi); in fuse_alloc_inode()
128 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_free_inode() local
130 mutex_destroy(&fi->mutex); in fuse_free_inode()
131 kfree(fi->forget); in fuse_free_inode()
133 kfree(fi->dax); in fuse_free_inode()
136 fuse_backing_put(fuse_inode_backing(fi)); in fuse_free_inode()
138 kmem_cache_free(fuse_inode_cachep, fi); in fuse_free_inode()
154 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_evict_inode() local
166 if (fi->nlookup) { in fuse_evict_inode()
167 fuse_queue_forget(fc, fi->forget, fi->nodeid, in fuse_evict_inode()
168 fi->nlookup); in fuse_evict_inode()
169 fi->forget = NULL; in fuse_evict_inode()
172 if (fi->submount_lookup) { in fuse_evict_inode()
173 fuse_cleanup_submount_lookup(fc, fi->submount_lookup); in fuse_evict_inode()
174 fi->submount_lookup = NULL; in fuse_evict_inode()
178 WARN_ON(fi->iocachectr != 0); in fuse_evict_inode()
179 WARN_ON(!list_empty(&fi->write_files)); in fuse_evict_inode()
180 WARN_ON(!list_empty(&fi->queued_writes)); in fuse_evict_inode()
212 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_change_attributes_common() local
214 lockdep_assert_held(&fi->lock); in fuse_change_attributes_common()
216 fi->attr_version = atomic64_inc_return(&fc->attr_version); in fuse_change_attributes_common()
217 fi->i_time = attr_valid; in fuse_change_attributes_common()
219 set_mask_bits(&fi->inval_mask, STATX_BASIC_STATS, 0); in fuse_change_attributes_common()
253 set_mask_bits(&fi->inval_mask, STATX_BTIME, 0); in fuse_change_attributes_common()
255 set_bit(FUSE_I_BTIME, &fi->state); in fuse_change_attributes_common()
256 fi->i_btime.tv_sec = sx->btime.tv_sec; in fuse_change_attributes_common()
257 fi->i_btime.tv_nsec = sx->btime.tv_nsec; in fuse_change_attributes_common()
271 fi->orig_i_mode = inode->i_mode; in fuse_change_attributes_common()
275 fi->orig_ino = attr->ino; in fuse_change_attributes_common()
303 struct fuse_inode *fi = get_fuse_inode(inode); in fuse_change_attributes() local
308 spin_lock(&fi->lock); in fuse_change_attributes()
327 if ((attr_version != 0 && fi->attr_version > attr_version) || in fuse_change_attributes()
328 test_bit(FUSE_I_SIZE_UNSTABLE, &fi->state)) { in fuse_change_attributes()
329 spin_unlock(&fi->lock); in fuse_change_attributes()
344 spin_unlock(&fi->lock); in fuse_change_attributes()
432 struct fuse_inode *fi; in fuse_iget() local
444 struct fuse_inode *fi; in fuse_iget() local
451 fi = get_fuse_inode(inode); in fuse_iget()
452 fi->nodeid = nodeid; in fuse_iget()
453 fi->submount_lookup = fuse_alloc_submount_lookup(); in fuse_iget()
454 if (!fi->submount_lookup) { in fuse_iget()
459 fuse_init_submount_lookup(fi->submount_lookup, nodeid); in fuse_iget()
485 fi = get_fuse_inode(inode); in fuse_iget()
486 spin_lock(&fi->lock); in fuse_iget()
487 fi->nlookup++; in fuse_iget()
488 spin_unlock(&fi->lock); in fuse_iget()
520 struct fuse_inode *fi; in fuse_reverse_inval_inode() local
529 fi = get_fuse_inode(inode); in fuse_reverse_inval_inode()
530 spin_lock(&fi->lock); in fuse_reverse_inval_inode()
531 fi->attr_version = atomic64_inc_return(&fc->attr_version); in fuse_reverse_inval_inode()
532 spin_unlock(&fi->lock); in fuse_reverse_inval_inode()
1547 const struct fuse_inode *fi) in fuse_fill_attr_from_inode() argument
1549 struct timespec64 atime = inode_get_atime(&fi->inode); in fuse_fill_attr_from_inode()
1550 struct timespec64 mtime = inode_get_mtime(&fi->inode); in fuse_fill_attr_from_inode()
1551 struct timespec64 ctime = inode_get_ctime(&fi->inode); in fuse_fill_attr_from_inode()
1554 .ino = fi->inode.i_ino, in fuse_fill_attr_from_inode()
1555 .size = fi->inode.i_size, in fuse_fill_attr_from_inode()
1556 .blocks = fi->inode.i_blocks, in fuse_fill_attr_from_inode()
1563 .mode = fi->inode.i_mode, in fuse_fill_attr_from_inode()
1564 .nlink = fi->inode.i_nlink, in fuse_fill_attr_from_inode()
1565 .uid = __kuid_val(fi->inode.i_uid), in fuse_fill_attr_from_inode()
1566 .gid = __kgid_val(fi->inode.i_gid), in fuse_fill_attr_from_inode()
1567 .rdev = fi->inode.i_rdev, in fuse_fill_attr_from_inode()
1568 .blksize = 1u << fi->inode.i_blkbits, in fuse_fill_attr_from_inode()
1595 struct fuse_inode *fi; in fuse_fill_super_submount() local
1619 fi = get_fuse_inode(root); in fuse_fill_super_submount()
1620 fi->nlookup--; in fuse_fill_super_submount()
1637 fi->submount_lookup = sl; in fuse_fill_super_submount()