Lines Matching refs:inode
9 static int add_nondir(struct dentry *dentry, struct inode *inode) in add_nondir() argument
11 int err = minix_add_link(dentry, inode); in add_nondir()
13 d_instantiate(dentry, inode); in add_nondir()
16 inode_dec_link_count(inode); in add_nondir()
17 iput(inode); in add_nondir()
21 static struct dentry *minix_lookup(struct inode * dir, struct dentry *dentry, unsigned int flags) in minix_lookup()
23 struct inode * inode = NULL; in minix_lookup() local
31 inode = minix_iget(dir->i_sb, ino); in minix_lookup()
32 if (IS_ERR(inode)) in minix_lookup()
33 return ERR_CAST(inode); in minix_lookup()
35 d_add(dentry, inode); in minix_lookup()
39 static int minix_mknod(struct inode * dir, struct dentry *dentry, umode_t mode, dev_t rdev) in minix_mknod()
42 struct inode *inode; in minix_mknod() local
47 inode = minix_new_inode(dir, mode, &error); in minix_mknod()
49 if (inode) { in minix_mknod()
50 minix_set_inode(inode, rdev); in minix_mknod()
51 mark_inode_dirty(inode); in minix_mknod()
52 error = add_nondir(dentry, inode); in minix_mknod()
57 static int minix_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode) in minix_tmpfile()
60 struct inode *inode = minix_new_inode(dir, mode, &error); in minix_tmpfile() local
61 if (inode) { in minix_tmpfile()
62 minix_set_inode(inode, 0); in minix_tmpfile()
63 mark_inode_dirty(inode); in minix_tmpfile()
64 d_tmpfile(dentry, inode); in minix_tmpfile()
69 static int minix_create(struct inode *dir, struct dentry *dentry, umode_t mode, in minix_create()
75 static int minix_symlink(struct inode * dir, struct dentry *dentry, in minix_symlink()
80 struct inode * inode; in minix_symlink() local
85 inode = minix_new_inode(dir, S_IFLNK | 0777, &err); in minix_symlink()
86 if (!inode) in minix_symlink()
89 minix_set_inode(inode, 0); in minix_symlink()
90 err = page_symlink(inode, symname, i); in minix_symlink()
94 err = add_nondir(dentry, inode); in minix_symlink()
99 inode_dec_link_count(inode); in minix_symlink()
100 iput(inode); in minix_symlink()
104 static int minix_link(struct dentry * old_dentry, struct inode * dir, in minix_link()
107 struct inode *inode = d_inode(old_dentry); in minix_link() local
109 inode->i_ctime = CURRENT_TIME_SEC; in minix_link()
110 inode_inc_link_count(inode); in minix_link()
111 ihold(inode); in minix_link()
112 return add_nondir(dentry, inode); in minix_link()
115 static int minix_mkdir(struct inode * dir, struct dentry *dentry, umode_t mode) in minix_mkdir()
117 struct inode * inode; in minix_mkdir() local
122 inode = minix_new_inode(dir, S_IFDIR | mode, &err); in minix_mkdir()
123 if (!inode) in minix_mkdir()
126 minix_set_inode(inode, 0); in minix_mkdir()
128 inode_inc_link_count(inode); in minix_mkdir()
130 err = minix_make_empty(inode, dir); in minix_mkdir()
134 err = minix_add_link(dentry, inode); in minix_mkdir()
138 d_instantiate(dentry, inode); in minix_mkdir()
143 inode_dec_link_count(inode); in minix_mkdir()
144 inode_dec_link_count(inode); in minix_mkdir()
145 iput(inode); in minix_mkdir()
151 static int minix_unlink(struct inode * dir, struct dentry *dentry) in minix_unlink()
154 struct inode * inode = d_inode(dentry); in minix_unlink() local
166 inode->i_ctime = dir->i_ctime; in minix_unlink()
167 inode_dec_link_count(inode); in minix_unlink()
172 static int minix_rmdir(struct inode * dir, struct dentry *dentry) in minix_rmdir()
174 struct inode * inode = d_inode(dentry); in minix_rmdir() local
177 if (minix_empty_dir(inode)) { in minix_rmdir()
181 inode_dec_link_count(inode); in minix_rmdir()
187 static int minix_rename(struct inode * old_dir, struct dentry *old_dentry, in minix_rename()
188 struct inode * new_dir, struct dentry *new_dentry) in minix_rename()
190 struct inode * old_inode = d_inode(old_dentry); in minix_rename()
191 struct inode * new_inode = d_inode(new_dentry); in minix_rename()