Lines Matching refs:inode
38 static inline int ufs_add_nondir(struct dentry *dentry, struct inode *inode) in ufs_add_nondir() argument
40 int err = ufs_add_link(dentry, inode); in ufs_add_nondir()
42 d_instantiate_new(dentry, inode); in ufs_add_nondir()
45 inode_dec_link_count(inode); in ufs_add_nondir()
46 discard_new_inode(inode); in ufs_add_nondir()
50 static struct dentry *ufs_lookup(struct inode * dir, struct dentry *dentry, unsigned int flags) in ufs_lookup()
52 struct inode * inode = NULL; in ufs_lookup() local
60 inode = ufs_iget(dir->i_sb, ino); in ufs_lookup()
61 return d_splice_alias(inode, dentry); in ufs_lookup()
73 struct inode * dir, struct dentry * dentry, umode_t mode, in ufs_create()
76 struct inode *inode; in ufs_create() local
78 inode = ufs_new_inode(dir, mode); in ufs_create()
79 if (IS_ERR(inode)) in ufs_create()
80 return PTR_ERR(inode); in ufs_create()
82 inode->i_op = &ufs_file_inode_operations; in ufs_create()
83 inode->i_fop = &ufs_file_operations; in ufs_create()
84 inode->i_mapping->a_ops = &ufs_aops; in ufs_create()
85 mark_inode_dirty(inode); in ufs_create()
86 return ufs_add_nondir(dentry, inode); in ufs_create()
89 static int ufs_mknod(struct mnt_idmap *idmap, struct inode *dir, in ufs_mknod()
92 struct inode *inode; in ufs_mknod() local
98 inode = ufs_new_inode(dir, mode); in ufs_mknod()
99 err = PTR_ERR(inode); in ufs_mknod()
100 if (!IS_ERR(inode)) { in ufs_mknod()
101 init_special_inode(inode, mode, rdev); in ufs_mknod()
102 ufs_set_inode_dev(inode->i_sb, UFS_I(inode), rdev); in ufs_mknod()
103 mark_inode_dirty(inode); in ufs_mknod()
104 err = ufs_add_nondir(dentry, inode); in ufs_mknod()
109 static int ufs_symlink (struct mnt_idmap * idmap, struct inode * dir, in ufs_symlink()
115 struct inode * inode; in ufs_symlink() local
120 inode = ufs_new_inode(dir, S_IFLNK | S_IRWXUGO); in ufs_symlink()
121 err = PTR_ERR(inode); in ufs_symlink()
122 if (IS_ERR(inode)) in ufs_symlink()
127 inode->i_op = &page_symlink_inode_operations; in ufs_symlink()
128 inode_nohighmem(inode); in ufs_symlink()
129 inode->i_mapping->a_ops = &ufs_aops; in ufs_symlink()
130 err = page_symlink(inode, symname, l); in ufs_symlink()
135 inode->i_op = &simple_symlink_inode_operations; in ufs_symlink()
136 inode->i_link = (char *)UFS_I(inode)->i_u1.i_symlink; in ufs_symlink()
137 memcpy(inode->i_link, symname, l); in ufs_symlink()
138 inode->i_size = l-1; in ufs_symlink()
140 mark_inode_dirty(inode); in ufs_symlink()
142 return ufs_add_nondir(dentry, inode); in ufs_symlink()
145 inode_dec_link_count(inode); in ufs_symlink()
146 discard_new_inode(inode); in ufs_symlink()
150 static int ufs_link (struct dentry * old_dentry, struct inode * dir, in ufs_link()
153 struct inode *inode = d_inode(old_dentry); in ufs_link() local
156 inode_set_ctime_current(inode); in ufs_link()
157 inode_inc_link_count(inode); in ufs_link()
158 ihold(inode); in ufs_link()
160 error = ufs_add_link(dentry, inode); in ufs_link()
162 inode_dec_link_count(inode); in ufs_link()
163 iput(inode); in ufs_link()
165 d_instantiate(dentry, inode); in ufs_link()
169 static struct dentry *ufs_mkdir(struct mnt_idmap * idmap, struct inode * dir, in ufs_mkdir()
172 struct inode * inode; in ufs_mkdir() local
177 inode = ufs_new_inode(dir, S_IFDIR|mode); in ufs_mkdir()
178 err = PTR_ERR(inode); in ufs_mkdir()
179 if (IS_ERR(inode)) in ufs_mkdir()
182 inode->i_op = &ufs_dir_inode_operations; in ufs_mkdir()
183 inode->i_fop = &ufs_dir_operations; in ufs_mkdir()
184 inode->i_mapping->a_ops = &ufs_aops; in ufs_mkdir()
186 inode_inc_link_count(inode); in ufs_mkdir()
188 err = ufs_make_empty(inode, dir); in ufs_mkdir()
192 err = ufs_add_link(dentry, inode); in ufs_mkdir()
196 d_instantiate_new(dentry, inode); in ufs_mkdir()
200 inode_dec_link_count(inode); in ufs_mkdir()
201 inode_dec_link_count(inode); in ufs_mkdir()
202 discard_new_inode(inode); in ufs_mkdir()
208 static int ufs_unlink(struct inode *dir, struct dentry *dentry) in ufs_unlink()
210 struct inode * inode = d_inode(dentry); in ufs_unlink() local
221 inode_set_ctime_to_ts(inode, inode_get_ctime(dir)); in ufs_unlink()
222 inode_dec_link_count(inode); in ufs_unlink()
228 static int ufs_rmdir (struct inode * dir, struct dentry *dentry) in ufs_rmdir()
230 struct inode * inode = d_inode(dentry); in ufs_rmdir() local
233 if (ufs_empty_dir (inode)) { in ufs_rmdir()
236 inode->i_size = 0; in ufs_rmdir()
237 inode_dec_link_count(inode); in ufs_rmdir()
244 static int ufs_rename(struct mnt_idmap *idmap, struct inode *old_dir, in ufs_rename()
245 struct dentry *old_dentry, struct inode *new_dir, in ufs_rename()
248 struct inode *old_inode = d_inode(old_dentry); in ufs_rename()
249 struct inode *new_inode = d_inode(new_dentry); in ufs_rename()