Lines Matching refs:fi

188 	struct fuse_inode *fi = get_fuse_inode(inode);
206 args.nodeid = fi->nodeid;
222 /* Protected by fi->dax->sem */
223 interval_tree_insert(&dmap->itn, &fi->dax->tree);
224 fi->dax->nr++;
237 struct fuse_inode *fi = get_fuse_inode(inode);
242 args.nodeid = fi->nodeid;
313 struct fuse_inode *fi = get_fuse_inode(inode);
322 node = interval_tree_iter_first(&fi->dax->tree, start_idx,
329 interval_tree_remove(&dmap->itn, &fi->dax->tree);
338 WARN_ON(fi->dax->nr < num);
339 fi->dax->nr -= num;
370 * this function does not take any locks like fi->dax->sem for traversing
377 struct fuse_inode *fi = get_fuse_inode(inode);
385 WARN_ON(fi->dax->nr);
417 * use. This assumes fi->dax->sem mutex is held either
435 struct fuse_inode *fi = get_fuse_inode(inode);
472 down_write(&fi->dax->sem);
477 node = interval_tree_iter_first(&fi->dax->tree, start_idx, start_idx);
482 up_write(&fi->dax->sem);
491 up_write(&fi->dax->sem);
495 up_write(&fi->dax->sem);
503 struct fuse_inode *fi = get_fuse_inode(inode);
513 down_write(&fi->dax->sem);
514 node = interval_tree_iter_first(&fi->dax->tree, idx, idx);
520 * re-acquired the fi->dax->sem lock.
529 * Now we hold fi->dax->sem lock and that reference is not needed
554 up_write(&fi->dax->sem);
565 struct fuse_inode *fi = get_fuse_inode(inode);
588 down_read(&fi->dax->sem);
589 node = interval_tree_iter_first(&fi->dax->tree, start_idx, start_idx);
594 * require exclusive fi->dax->sem lock as we don't want
599 * Before dropping fi->dax->sem lock, take reference
603 up_read(&fi->dax->sem);
610 up_read(&fi->dax->sem);
614 up_read(&fi->dax->sem);
893 struct fuse_inode *fi = get_fuse_inode(inode);
904 interval_tree_remove(&dmap->itn, &fi->dax->tree);
905 fi->dax->nr--;
920 * to hold fi->dax->sem lock either shared or exclusive.
924 struct fuse_inode *fi = get_fuse_inode(inode);
928 for (node = interval_tree_iter_first(&fi->dax->tree, 0, -1); node;
949 struct fuse_inode *fi = get_fuse_inode(inode);
959 down_read(&fi->dax->sem);
966 up_read(&fi->dax->sem);
982 down_write(&fi->dax->sem);
983 node = interval_tree_iter_first(&fi->dax->tree, start_idx, start_idx);
1015 up_write(&fi->dax->sem);
1025 struct fuse_inode *fi = get_fuse_inode(inode);
1049 * mapping->invalidate_lock. So sleep only if fi->dax->nr=0
1055 * We are not holding fi->dax->sem. So it is possible
1060 if (!fi->dax->nr && !(fcd->nr_free_ranges > 0)) {
1074 struct fuse_inode *fi = get_fuse_inode(inode);
1079 node = interval_tree_iter_first(&fi->dax->tree, start_idx, start_idx);
1105 * 2. Take fi->dax->sem to protect interval tree and also to make sure
1114 struct fuse_inode *fi = get_fuse_inode(inode);
1126 down_write(&fi->dax->sem);
1128 up_write(&fi->dax->sem);
1308 bool fuse_dax_inode_alloc(struct super_block *sb, struct fuse_inode *fi)
1312 fi->dax = NULL;
1314 fi->dax = kzalloc(sizeof(*fi->dax), GFP_KERNEL_ACCOUNT);
1315 if (!fi->dax)
1318 init_rwsem(&fi->dax->sem);
1319 fi->dax->tree = RB_ROOT_CACHED;