Lines Matching refs:inode

37 static inline int ufs_add_nondir(struct dentry *dentry, struct inode *inode)  in ufs_add_nondir()  argument
39 int err = ufs_add_link(dentry, inode); in ufs_add_nondir()
41 unlock_new_inode(inode); in ufs_add_nondir()
42 d_instantiate(dentry, inode); in ufs_add_nondir()
45 inode_dec_link_count(inode); in ufs_add_nondir()
46 unlock_new_inode(inode); in ufs_add_nondir()
47 iput(inode); in ufs_add_nondir()
51 static struct dentry *ufs_lookup(struct inode * dir, struct dentry *dentry, unsigned int flags) in ufs_lookup()
53 struct inode * inode = NULL; in ufs_lookup() local
62 inode = ufs_iget(dir->i_sb, ino); in ufs_lookup()
64 return d_splice_alias(inode, dentry); in ufs_lookup()
75 static int ufs_create (struct inode * dir, struct dentry * dentry, umode_t mode, in ufs_create()
78 struct inode *inode; in ufs_create() local
83 inode = ufs_new_inode(dir, mode); in ufs_create()
84 err = PTR_ERR(inode); in ufs_create()
86 if (!IS_ERR(inode)) { in ufs_create()
87 inode->i_op = &ufs_file_inode_operations; in ufs_create()
88 inode->i_fop = &ufs_file_operations; in ufs_create()
89 inode->i_mapping->a_ops = &ufs_aops; in ufs_create()
90 mark_inode_dirty(inode); in ufs_create()
92 err = ufs_add_nondir(dentry, inode); in ufs_create()
99 static int ufs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t rdev) in ufs_mknod()
101 struct inode *inode; in ufs_mknod() local
107 inode = ufs_new_inode(dir, mode); in ufs_mknod()
108 err = PTR_ERR(inode); in ufs_mknod()
109 if (!IS_ERR(inode)) { in ufs_mknod()
110 init_special_inode(inode, mode, rdev); in ufs_mknod()
111 ufs_set_inode_dev(inode->i_sb, UFS_I(inode), rdev); in ufs_mknod()
112 mark_inode_dirty(inode); in ufs_mknod()
114 err = ufs_add_nondir(dentry, inode); in ufs_mknod()
120 static int ufs_symlink (struct inode * dir, struct dentry * dentry, in ufs_symlink()
126 struct inode * inode; in ufs_symlink() local
132 inode = ufs_new_inode(dir, S_IFLNK | S_IRWXUGO); in ufs_symlink()
133 err = PTR_ERR(inode); in ufs_symlink()
134 if (IS_ERR(inode)) in ufs_symlink()
139 inode->i_op = &ufs_symlink_inode_operations; in ufs_symlink()
140 inode->i_mapping->a_ops = &ufs_aops; in ufs_symlink()
141 err = page_symlink(inode, symname, l); in ufs_symlink()
146 inode->i_op = &ufs_fast_symlink_inode_operations; in ufs_symlink()
147 memcpy(UFS_I(inode)->i_u1.i_symlink, symname, l); in ufs_symlink()
148 inode->i_size = l-1; in ufs_symlink()
150 mark_inode_dirty(inode); in ufs_symlink()
152 err = ufs_add_nondir(dentry, inode); in ufs_symlink()
159 inode_dec_link_count(inode); in ufs_symlink()
160 unlock_new_inode(inode); in ufs_symlink()
161 iput(inode); in ufs_symlink()
165 static int ufs_link (struct dentry * old_dentry, struct inode * dir, in ufs_link()
168 struct inode *inode = d_inode(old_dentry); in ufs_link() local
173 inode->i_ctime = CURRENT_TIME_SEC; in ufs_link()
174 inode_inc_link_count(inode); in ufs_link()
175 ihold(inode); in ufs_link()
177 error = ufs_add_link(dentry, inode); in ufs_link()
179 inode_dec_link_count(inode); in ufs_link()
180 iput(inode); in ufs_link()
182 d_instantiate(dentry, inode); in ufs_link()
187 static int ufs_mkdir(struct inode * dir, struct dentry * dentry, umode_t mode) in ufs_mkdir()
189 struct inode * inode; in ufs_mkdir() local
195 inode = ufs_new_inode(dir, S_IFDIR|mode); in ufs_mkdir()
196 err = PTR_ERR(inode); in ufs_mkdir()
197 if (IS_ERR(inode)) in ufs_mkdir()
200 inode->i_op = &ufs_dir_inode_operations; in ufs_mkdir()
201 inode->i_fop = &ufs_dir_operations; in ufs_mkdir()
202 inode->i_mapping->a_ops = &ufs_aops; in ufs_mkdir()
204 inode_inc_link_count(inode); in ufs_mkdir()
206 err = ufs_make_empty(inode, dir); in ufs_mkdir()
210 err = ufs_add_link(dentry, inode); in ufs_mkdir()
215 unlock_new_inode(inode); in ufs_mkdir()
216 d_instantiate(dentry, inode); in ufs_mkdir()
221 inode_dec_link_count(inode); in ufs_mkdir()
222 inode_dec_link_count(inode); in ufs_mkdir()
223 unlock_new_inode(inode); in ufs_mkdir()
224 iput (inode); in ufs_mkdir()
231 static int ufs_unlink(struct inode *dir, struct dentry *dentry) in ufs_unlink()
233 struct inode * inode = d_inode(dentry); in ufs_unlink() local
246 inode->i_ctime = dir->i_ctime; in ufs_unlink()
247 inode_dec_link_count(inode); in ufs_unlink()
253 static int ufs_rmdir (struct inode * dir, struct dentry *dentry) in ufs_rmdir()
255 struct inode * inode = d_inode(dentry); in ufs_rmdir() local
259 if (ufs_empty_dir (inode)) { in ufs_rmdir()
262 inode->i_size = 0; in ufs_rmdir()
263 inode_dec_link_count(inode); in ufs_rmdir()
271 static int ufs_rename(struct inode *old_dir, struct dentry *old_dentry, in ufs_rename()
272 struct inode *new_dir, struct dentry *new_dentry) in ufs_rename()
274 struct inode *old_inode = d_inode(old_dentry); in ufs_rename()
275 struct inode *new_inode = d_inode(new_dentry); in ufs_rename()