Lines Matching refs:inode

88 					struct inode *inode, pgoff_t index)  in hugetlb_set_vma_policy()  argument
90 vma->vm_policy = mpol_shared_policy_lookup(&HUGETLBFS_I(inode)->policy, in hugetlb_set_vma_policy()
100 struct inode *inode, pgoff_t index) in hugetlb_set_vma_policy() argument
121 struct inode *inode = file_inode(file); in hugetlbfs_file_mmap() local
122 struct hugetlbfs_inode_info *info = HUGETLBFS_I(inode); in hugetlbfs_file_mmap()
164 inode_lock(inode); in hugetlbfs_file_mmap()
175 if (inode->i_flags & S_PRIVATE) in hugetlbfs_file_mmap()
178 if (!hugetlb_reserve_pages(inode, in hugetlbfs_file_mmap()
185 if (vma->vm_flags & VM_WRITE && inode->i_size < len) in hugetlbfs_file_mmap()
186 i_size_write(inode, len); in hugetlbfs_file_mmap()
188 inode_unlock(inode); in hugetlbfs_file_mmap()
340 struct inode *inode = mapping->host; in hugetlbfs_read_iter() local
353 isize = i_size_read(inode); in hugetlbfs_read_iter()
613 static bool remove_inode_single_folio(struct hstate *h, struct inode *inode, in remove_inode_single_folio() argument
641 if (unlikely(hugetlb_unreserve_pages(inode, index, in remove_inode_single_folio()
643 hugetlb_fix_reserve_counts(inode); in remove_inode_single_folio()
670 static void remove_inode_hugepages(struct inode *inode, loff_t lstart, in remove_inode_hugepages() argument
673 struct hstate *h = hstate_inode(inode); in remove_inode_hugepages()
674 struct address_space *mapping = &inode->i_data; in remove_inode_hugepages()
696 if (remove_inode_single_folio(h, inode, mapping, folio, in remove_inode_hugepages()
707 (void)hugetlb_unreserve_pages(inode, start, LONG_MAX, freed); in remove_inode_hugepages()
710 static void hugetlbfs_evict_inode(struct inode *inode) in hugetlbfs_evict_inode() argument
714 remove_inode_hugepages(inode, 0, LLONG_MAX); in hugetlbfs_evict_inode()
722 resv_map = (struct resv_map *)(&inode->i_data)->private_data; in hugetlbfs_evict_inode()
726 clear_inode(inode); in hugetlbfs_evict_inode()
729 static void hugetlb_vmtruncate(struct inode *inode, loff_t offset) in hugetlb_vmtruncate() argument
732 struct address_space *mapping = inode->i_mapping; in hugetlb_vmtruncate()
733 struct hstate *h = hstate_inode(inode); in hugetlb_vmtruncate()
738 i_size_write(inode, offset); in hugetlb_vmtruncate()
744 remove_inode_hugepages(inode, offset, LLONG_MAX); in hugetlb_vmtruncate()
770 static long hugetlbfs_punch_hole(struct inode *inode, loff_t offset, loff_t len) in hugetlbfs_punch_hole() argument
772 struct hugetlbfs_inode_info *info = HUGETLBFS_I(inode); in hugetlbfs_punch_hole()
773 struct address_space *mapping = inode->i_mapping; in hugetlbfs_punch_hole()
774 struct hstate *h = hstate_inode(inode); in hugetlbfs_punch_hole()
784 inode_lock(inode); in hugetlbfs_punch_hole()
788 inode_unlock(inode); in hugetlbfs_punch_hole()
816 remove_inode_hugepages(inode, hole_start, hole_end); in hugetlbfs_punch_hole()
818 inode_unlock(inode); in hugetlbfs_punch_hole()
826 struct inode *inode = file_inode(file); in hugetlbfs_fallocate() local
827 struct hugetlbfs_inode_info *info = HUGETLBFS_I(inode); in hugetlbfs_fallocate()
828 struct address_space *mapping = inode->i_mapping; in hugetlbfs_fallocate()
829 struct hstate *h = hstate_inode(inode); in hugetlbfs_fallocate()
842 return hugetlbfs_punch_hole(inode, offset, len); in hugetlbfs_fallocate()
852 inode_lock(inode); in hugetlbfs_fallocate()
855 error = inode_newsize_ok(inode, offset + len); in hugetlbfs_fallocate()
859 if ((info->seals & F_SEAL_GROW) && offset + len > inode->i_size) { in hugetlbfs_fallocate()
915 hugetlb_set_vma_policy(&pseudo_vma, inode, index); in hugetlbfs_fallocate()
944 if (!(mode & FALLOC_FL_KEEP_SIZE) && offset + len > inode->i_size) in hugetlbfs_fallocate()
945 i_size_write(inode, offset + len); in hugetlbfs_fallocate()
946 inode_set_ctime_current(inode); in hugetlbfs_fallocate()
948 inode_unlock(inode); in hugetlbfs_fallocate()
955 struct inode *inode = d_inode(dentry); in hugetlbfs_setattr() local
956 struct hstate *h = hstate_inode(inode); in hugetlbfs_setattr()
959 struct hugetlbfs_inode_info *info = HUGETLBFS_I(inode); in hugetlbfs_setattr()
966 loff_t oldsize = inode->i_size; in hugetlbfs_setattr()
975 hugetlb_vmtruncate(inode, newsize); in hugetlbfs_setattr()
978 setattr_copy(&nop_mnt_idmap, inode, attr); in hugetlbfs_setattr()
979 mark_inode_dirty(inode); in hugetlbfs_setattr()
983 static struct inode *hugetlbfs_get_root(struct super_block *sb, in hugetlbfs_get_root()
986 struct inode *inode; in hugetlbfs_get_root() local
988 inode = new_inode(sb); in hugetlbfs_get_root()
989 if (inode) { in hugetlbfs_get_root()
990 inode->i_ino = get_next_ino(); in hugetlbfs_get_root()
991 inode->i_mode = S_IFDIR | ctx->mode; in hugetlbfs_get_root()
992 inode->i_uid = ctx->uid; in hugetlbfs_get_root()
993 inode->i_gid = ctx->gid; in hugetlbfs_get_root()
994 inode->i_atime = inode->i_mtime = inode_set_ctime_current(inode); in hugetlbfs_get_root()
995 inode->i_op = &hugetlbfs_dir_inode_operations; in hugetlbfs_get_root()
996 inode->i_fop = &simple_dir_operations; in hugetlbfs_get_root()
998 inc_nlink(inode); in hugetlbfs_get_root()
999 lockdep_annotate_inode_mutex_key(inode); in hugetlbfs_get_root()
1001 return inode; in hugetlbfs_get_root()
1012 static struct inode *hugetlbfs_get_inode(struct super_block *sb, in hugetlbfs_get_inode()
1013 struct inode *dir, in hugetlbfs_get_inode()
1016 struct inode *inode; in hugetlbfs_get_inode() local
1029 inode = new_inode(sb); in hugetlbfs_get_inode()
1030 if (inode) { in hugetlbfs_get_inode()
1031 struct hugetlbfs_inode_info *info = HUGETLBFS_I(inode); in hugetlbfs_get_inode()
1033 inode->i_ino = get_next_ino(); in hugetlbfs_get_inode()
1034 inode_init_owner(&nop_mnt_idmap, inode, dir, mode); in hugetlbfs_get_inode()
1035 lockdep_set_class(&inode->i_mapping->i_mmap_rwsem, in hugetlbfs_get_inode()
1037 inode->i_mapping->a_ops = &hugetlbfs_aops; in hugetlbfs_get_inode()
1038 inode->i_atime = inode->i_mtime = inode_set_ctime_current(inode); in hugetlbfs_get_inode()
1039 inode->i_mapping->private_data = resv_map; in hugetlbfs_get_inode()
1043 init_special_inode(inode, mode, dev); in hugetlbfs_get_inode()
1046 inode->i_op = &hugetlbfs_inode_operations; in hugetlbfs_get_inode()
1047 inode->i_fop = &hugetlbfs_file_operations; in hugetlbfs_get_inode()
1050 inode->i_op = &hugetlbfs_dir_inode_operations; in hugetlbfs_get_inode()
1051 inode->i_fop = &simple_dir_operations; in hugetlbfs_get_inode()
1054 inc_nlink(inode); in hugetlbfs_get_inode()
1057 inode->i_op = &page_symlink_inode_operations; in hugetlbfs_get_inode()
1058 inode_nohighmem(inode); in hugetlbfs_get_inode()
1061 lockdep_annotate_inode_mutex_key(inode); in hugetlbfs_get_inode()
1067 return inode; in hugetlbfs_get_inode()
1073 static int hugetlbfs_mknod(struct mnt_idmap *idmap, struct inode *dir, in hugetlbfs_mknod()
1076 struct inode *inode; in hugetlbfs_mknod() local
1078 inode = hugetlbfs_get_inode(dir->i_sb, dir, mode, dev); in hugetlbfs_mknod()
1079 if (!inode) in hugetlbfs_mknod()
1082 d_instantiate(dentry, inode); in hugetlbfs_mknod()
1087 static int hugetlbfs_mkdir(struct mnt_idmap *idmap, struct inode *dir, in hugetlbfs_mkdir()
1098 struct inode *dir, struct dentry *dentry, in hugetlbfs_create()
1105 struct inode *dir, struct file *file, in hugetlbfs_tmpfile()
1108 struct inode *inode; in hugetlbfs_tmpfile() local
1110 inode = hugetlbfs_get_inode(dir->i_sb, dir, mode | S_IFREG, 0); in hugetlbfs_tmpfile()
1111 if (!inode) in hugetlbfs_tmpfile()
1114 d_tmpfile(file, inode); in hugetlbfs_tmpfile()
1119 struct inode *dir, struct dentry *dentry, in hugetlbfs_symlink()
1122 struct inode *inode; in hugetlbfs_symlink() local
1125 inode = hugetlbfs_get_inode(dir->i_sb, dir, S_IFLNK|S_IRWXUGO, 0); in hugetlbfs_symlink()
1126 if (inode) { in hugetlbfs_symlink()
1128 error = page_symlink(inode, symname, l); in hugetlbfs_symlink()
1130 d_instantiate(dentry, inode); in hugetlbfs_symlink()
1133 iput(inode); in hugetlbfs_symlink()
1284 static struct inode *hugetlbfs_alloc_inode(struct super_block *sb) in hugetlbfs_alloc_inode()
1311 static void hugetlbfs_free_inode(struct inode *inode) in hugetlbfs_free_inode() argument
1313 kmem_cache_free(hugetlbfs_inode_cachep, HUGETLBFS_I(inode)); in hugetlbfs_free_inode()
1316 static void hugetlbfs_destroy_inode(struct inode *inode) in hugetlbfs_destroy_inode() argument
1318 hugetlbfs_inc_free_inodes(HUGETLBFS_SB(inode->i_sb)); in hugetlbfs_destroy_inode()
1319 mpol_free_shared_policy(&HUGETLBFS_I(inode)->policy); in hugetlbfs_destroy_inode()
1633 struct inode *inode; in hugetlb_file_setup() local
1658 inode = hugetlbfs_get_inode(mnt->mnt_sb, NULL, S_IFREG | S_IRWXUGO, 0); in hugetlb_file_setup()
1659 if (!inode) in hugetlb_file_setup()
1662 inode->i_flags |= S_PRIVATE; in hugetlb_file_setup()
1664 inode->i_size = size; in hugetlb_file_setup()
1665 clear_nlink(inode); in hugetlb_file_setup()
1667 if (!hugetlb_reserve_pages(inode, 0, in hugetlb_file_setup()
1668 size >> huge_page_shift(hstate_inode(inode)), NULL, in hugetlb_file_setup()
1672 file = alloc_file_pseudo(inode, mnt, name, O_RDWR, in hugetlb_file_setup()
1677 iput(inode); in hugetlb_file_setup()