Lines Matching refs:inode

18 static int add_nondir(struct dentry *dentry, struct inode *inode)  in add_nondir()  argument
20 int err = sysv_add_link(dentry, inode); in add_nondir()
22 d_instantiate(dentry, inode); in add_nondir()
25 inode_dec_link_count(inode); in add_nondir()
26 iput(inode); in add_nondir()
45 static struct dentry *sysv_lookup(struct inode * dir, struct dentry * dentry, unsigned int flags) in sysv_lookup()
47 struct inode * inode = NULL; in sysv_lookup() local
55 inode = sysv_iget(dir->i_sb, ino); in sysv_lookup()
56 if (IS_ERR(inode)) in sysv_lookup()
57 return ERR_CAST(inode); in sysv_lookup()
59 d_add(dentry, inode); in sysv_lookup()
63 static int sysv_mknod(struct inode * dir, struct dentry * dentry, umode_t mode, dev_t rdev) in sysv_mknod()
65 struct inode * inode; in sysv_mknod() local
71 inode = sysv_new_inode(dir, mode); in sysv_mknod()
72 err = PTR_ERR(inode); in sysv_mknod()
74 if (!IS_ERR(inode)) { in sysv_mknod()
75 sysv_set_inode(inode, rdev); in sysv_mknod()
76 mark_inode_dirty(inode); in sysv_mknod()
77 err = add_nondir(dentry, inode); in sysv_mknod()
82 static int sysv_create(struct inode * dir, struct dentry * dentry, umode_t mode, bool excl) in sysv_create()
87 static int sysv_symlink(struct inode * dir, struct dentry * dentry, in sysv_symlink()
92 struct inode * inode; in sysv_symlink() local
97 inode = sysv_new_inode(dir, S_IFLNK|0777); in sysv_symlink()
98 err = PTR_ERR(inode); in sysv_symlink()
99 if (IS_ERR(inode)) in sysv_symlink()
102 sysv_set_inode(inode, 0); in sysv_symlink()
103 err = page_symlink(inode, symname, l); in sysv_symlink()
107 mark_inode_dirty(inode); in sysv_symlink()
108 err = add_nondir(dentry, inode); in sysv_symlink()
113 inode_dec_link_count(inode); in sysv_symlink()
114 iput(inode); in sysv_symlink()
118 static int sysv_link(struct dentry * old_dentry, struct inode * dir, in sysv_link()
121 struct inode *inode = d_inode(old_dentry); in sysv_link() local
123 inode->i_ctime = CURRENT_TIME_SEC; in sysv_link()
124 inode_inc_link_count(inode); in sysv_link()
125 ihold(inode); in sysv_link()
127 return add_nondir(dentry, inode); in sysv_link()
130 static int sysv_mkdir(struct inode * dir, struct dentry *dentry, umode_t mode) in sysv_mkdir()
132 struct inode * inode; in sysv_mkdir() local
137 inode = sysv_new_inode(dir, S_IFDIR|mode); in sysv_mkdir()
138 err = PTR_ERR(inode); in sysv_mkdir()
139 if (IS_ERR(inode)) in sysv_mkdir()
142 sysv_set_inode(inode, 0); in sysv_mkdir()
144 inode_inc_link_count(inode); in sysv_mkdir()
146 err = sysv_make_empty(inode, dir); in sysv_mkdir()
150 err = sysv_add_link(dentry, inode); in sysv_mkdir()
154 d_instantiate(dentry, inode); in sysv_mkdir()
159 inode_dec_link_count(inode); in sysv_mkdir()
160 inode_dec_link_count(inode); in sysv_mkdir()
161 iput(inode); in sysv_mkdir()
167 static int sysv_unlink(struct inode * dir, struct dentry * dentry) in sysv_unlink()
169 struct inode * inode = d_inode(dentry); in sysv_unlink() local
182 inode->i_ctime = dir->i_ctime; in sysv_unlink()
183 inode_dec_link_count(inode); in sysv_unlink()
188 static int sysv_rmdir(struct inode * dir, struct dentry * dentry) in sysv_rmdir()
190 struct inode *inode = d_inode(dentry); in sysv_rmdir() local
193 if (sysv_empty_dir(inode)) { in sysv_rmdir()
196 inode->i_size = 0; in sysv_rmdir()
197 inode_dec_link_count(inode); in sysv_rmdir()
208 static int sysv_rename(struct inode * old_dir, struct dentry * old_dentry, in sysv_rename()
209 struct inode * new_dir, struct dentry * new_dentry) in sysv_rename()
211 struct inode * old_inode = d_inode(old_dentry); in sysv_rename()
212 struct inode * new_inode = d_inode(new_dentry); in sysv_rename()