Lines Matching refs:inode

81 static struct inode *bpf_get_inode(struct super_block *sb,  in bpf_get_inode()
82 const struct inode *dir, in bpf_get_inode()
85 struct inode *inode; in bpf_get_inode() local
95 inode = new_inode(sb); in bpf_get_inode()
96 if (!inode) in bpf_get_inode()
99 inode->i_ino = get_next_ino(); in bpf_get_inode()
100 inode->i_atime = CURRENT_TIME; in bpf_get_inode()
101 inode->i_mtime = inode->i_atime; in bpf_get_inode()
102 inode->i_ctime = inode->i_atime; in bpf_get_inode()
104 inode_init_owner(inode, dir, mode); in bpf_get_inode()
106 return inode; in bpf_get_inode()
109 static int bpf_inode_type(const struct inode *inode, enum bpf_type *type) in bpf_inode_type() argument
112 if (inode->i_op == &bpf_prog_iops) in bpf_inode_type()
114 else if (inode->i_op == &bpf_map_iops) in bpf_inode_type()
127 static int bpf_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in bpf_mkdir()
129 struct inode *inode; in bpf_mkdir() local
134 inode = bpf_get_inode(dir->i_sb, dir, mode | S_IFDIR); in bpf_mkdir()
135 if (IS_ERR(inode)) in bpf_mkdir()
136 return PTR_ERR(inode); in bpf_mkdir()
138 inode->i_op = &bpf_dir_iops; in bpf_mkdir()
139 inode->i_fop = &simple_dir_operations; in bpf_mkdir()
141 inc_nlink(inode); in bpf_mkdir()
144 d_instantiate(dentry, inode); in bpf_mkdir()
150 static int bpf_mkobj_ops(struct inode *dir, struct dentry *dentry, in bpf_mkobj_ops()
153 struct inode *inode; in bpf_mkobj_ops() local
158 inode = bpf_get_inode(dir->i_sb, dir, mode | S_IFREG); in bpf_mkobj_ops()
159 if (IS_ERR(inode)) in bpf_mkobj_ops()
160 return PTR_ERR(inode); in bpf_mkobj_ops()
162 inode->i_op = iops; in bpf_mkobj_ops()
163 inode->i_private = dentry->d_fsdata; in bpf_mkobj_ops()
165 d_instantiate(dentry, inode); in bpf_mkobj_ops()
171 static int bpf_mkobj(struct inode *dir, struct dentry *dentry, umode_t mode, in bpf_mkobj()
202 struct inode *dir; in bpf_obj_do_pin()
261 struct inode *inode; in bpf_obj_do_get() local
270 inode = d_backing_inode(path.dentry); in bpf_obj_do_get()
271 ret = inode_permission(inode, MAY_WRITE); in bpf_obj_do_get()
275 ret = bpf_inode_type(inode, type); in bpf_obj_do_get()
279 raw = bpf_any_get(inode->i_private, *type); in bpf_obj_do_get()
321 static void bpf_evict_inode(struct inode *inode) in bpf_evict_inode() argument
325 truncate_inode_pages_final(&inode->i_data); in bpf_evict_inode()
326 clear_inode(inode); in bpf_evict_inode()
328 if (!bpf_inode_type(inode, &type)) in bpf_evict_inode()
329 bpf_any_put(inode->i_private, type); in bpf_evict_inode()
341 struct inode *inode; in bpf_fill_super() local
350 inode = sb->s_root->d_inode; in bpf_fill_super()
351 inode->i_op = &bpf_dir_iops; in bpf_fill_super()
352 inode->i_mode &= ~S_IALLUGO; in bpf_fill_super()
353 inode->i_mode |= S_ISVTX | S_IRWXUGO; in bpf_fill_super()