diff options
Diffstat (limited to 'fs/jffs2/dir.c')
-rw-r--r-- | fs/jffs2/dir.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/fs/jffs2/dir.c b/fs/jffs2/dir.c index f21b6fb5e4c4..1ba5c97943b8 100644 --- a/fs/jffs2/dir.c +++ b/fs/jffs2/dir.c | |||
@@ -224,14 +224,14 @@ static int jffs2_unlink(struct inode *dir_i, struct dentry *dentry) | |||
224 | { | 224 | { |
225 | struct jffs2_sb_info *c = JFFS2_SB_INFO(dir_i->i_sb); | 225 | struct jffs2_sb_info *c = JFFS2_SB_INFO(dir_i->i_sb); |
226 | struct jffs2_inode_info *dir_f = JFFS2_INODE_INFO(dir_i); | 226 | struct jffs2_inode_info *dir_f = JFFS2_INODE_INFO(dir_i); |
227 | struct jffs2_inode_info *dead_f = JFFS2_INODE_INFO(dentry->d_inode); | 227 | struct jffs2_inode_info *dead_f = JFFS2_INODE_INFO(d_inode(dentry)); |
228 | int ret; | 228 | int ret; |
229 | uint32_t now = get_seconds(); | 229 | uint32_t now = get_seconds(); |
230 | 230 | ||
231 | ret = jffs2_do_unlink(c, dir_f, dentry->d_name.name, | 231 | ret = jffs2_do_unlink(c, dir_f, dentry->d_name.name, |
232 | dentry->d_name.len, dead_f, now); | 232 | dentry->d_name.len, dead_f, now); |
233 | if (dead_f->inocache) | 233 | if (dead_f->inocache) |
234 | set_nlink(dentry->d_inode, dead_f->inocache->pino_nlink); | 234 | set_nlink(d_inode(dentry), dead_f->inocache->pino_nlink); |
235 | if (!ret) | 235 | if (!ret) |
236 | dir_i->i_mtime = dir_i->i_ctime = ITIME(now); | 236 | dir_i->i_mtime = dir_i->i_ctime = ITIME(now); |
237 | return ret; | 237 | return ret; |
@@ -241,8 +241,8 @@ static int jffs2_unlink(struct inode *dir_i, struct dentry *dentry) | |||
241 | 241 | ||
242 | static int jffs2_link (struct dentry *old_dentry, struct inode *dir_i, struct dentry *dentry) | 242 | static int jffs2_link (struct dentry *old_dentry, struct inode *dir_i, struct dentry *dentry) |
243 | { | 243 | { |
244 | struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dentry->d_inode->i_sb); | 244 | struct jffs2_sb_info *c = JFFS2_SB_INFO(d_inode(old_dentry)->i_sb); |
245 | struct jffs2_inode_info *f = JFFS2_INODE_INFO(old_dentry->d_inode); | 245 | struct jffs2_inode_info *f = JFFS2_INODE_INFO(d_inode(old_dentry)); |
246 | struct jffs2_inode_info *dir_f = JFFS2_INODE_INFO(dir_i); | 246 | struct jffs2_inode_info *dir_f = JFFS2_INODE_INFO(dir_i); |
247 | int ret; | 247 | int ret; |
248 | uint8_t type; | 248 | uint8_t type; |
@@ -256,7 +256,7 @@ static int jffs2_link (struct dentry *old_dentry, struct inode *dir_i, struct de | |||
256 | return -EPERM; | 256 | return -EPERM; |
257 | 257 | ||
258 | /* XXX: This is ugly */ | 258 | /* XXX: This is ugly */ |
259 | type = (old_dentry->d_inode->i_mode & S_IFMT) >> 12; | 259 | type = (d_inode(old_dentry)->i_mode & S_IFMT) >> 12; |
260 | if (!type) type = DT_REG; | 260 | if (!type) type = DT_REG; |
261 | 261 | ||
262 | now = get_seconds(); | 262 | now = get_seconds(); |
@@ -264,11 +264,11 @@ static int jffs2_link (struct dentry *old_dentry, struct inode *dir_i, struct de | |||
264 | 264 | ||
265 | if (!ret) { | 265 | if (!ret) { |
266 | mutex_lock(&f->sem); | 266 | mutex_lock(&f->sem); |
267 | set_nlink(old_dentry->d_inode, ++f->inocache->pino_nlink); | 267 | set_nlink(d_inode(old_dentry), ++f->inocache->pino_nlink); |
268 | mutex_unlock(&f->sem); | 268 | mutex_unlock(&f->sem); |
269 | d_instantiate(dentry, old_dentry->d_inode); | 269 | d_instantiate(dentry, d_inode(old_dentry)); |
270 | dir_i->i_mtime = dir_i->i_ctime = ITIME(now); | 270 | dir_i->i_mtime = dir_i->i_ctime = ITIME(now); |
271 | ihold(old_dentry->d_inode); | 271 | ihold(d_inode(old_dentry)); |
272 | } | 272 | } |
273 | return ret; | 273 | return ret; |
274 | } | 274 | } |
@@ -585,7 +585,7 @@ static int jffs2_rmdir (struct inode *dir_i, struct dentry *dentry) | |||
585 | { | 585 | { |
586 | struct jffs2_sb_info *c = JFFS2_SB_INFO(dir_i->i_sb); | 586 | struct jffs2_sb_info *c = JFFS2_SB_INFO(dir_i->i_sb); |
587 | struct jffs2_inode_info *dir_f = JFFS2_INODE_INFO(dir_i); | 587 | struct jffs2_inode_info *dir_f = JFFS2_INODE_INFO(dir_i); |
588 | struct jffs2_inode_info *f = JFFS2_INODE_INFO(dentry->d_inode); | 588 | struct jffs2_inode_info *f = JFFS2_INODE_INFO(d_inode(dentry)); |
589 | struct jffs2_full_dirent *fd; | 589 | struct jffs2_full_dirent *fd; |
590 | int ret; | 590 | int ret; |
591 | uint32_t now = get_seconds(); | 591 | uint32_t now = get_seconds(); |
@@ -599,7 +599,7 @@ static int jffs2_rmdir (struct inode *dir_i, struct dentry *dentry) | |||
599 | dentry->d_name.len, f, now); | 599 | dentry->d_name.len, f, now); |
600 | if (!ret) { | 600 | if (!ret) { |
601 | dir_i->i_mtime = dir_i->i_ctime = ITIME(now); | 601 | dir_i->i_mtime = dir_i->i_ctime = ITIME(now); |
602 | clear_nlink(dentry->d_inode); | 602 | clear_nlink(d_inode(dentry)); |
603 | drop_nlink(dir_i); | 603 | drop_nlink(dir_i); |
604 | } | 604 | } |
605 | return ret; | 605 | return ret; |
@@ -770,8 +770,8 @@ static int jffs2_rename (struct inode *old_dir_i, struct dentry *old_dentry, | |||
770 | * the VFS can't check whether the victim is empty. The filesystem | 770 | * the VFS can't check whether the victim is empty. The filesystem |
771 | * needs to do that for itself. | 771 | * needs to do that for itself. |
772 | */ | 772 | */ |
773 | if (new_dentry->d_inode) { | 773 | if (d_really_is_positive(new_dentry)) { |
774 | victim_f = JFFS2_INODE_INFO(new_dentry->d_inode); | 774 | victim_f = JFFS2_INODE_INFO(d_inode(new_dentry)); |
775 | if (d_is_dir(new_dentry)) { | 775 | if (d_is_dir(new_dentry)) { |
776 | struct jffs2_full_dirent *fd; | 776 | struct jffs2_full_dirent *fd; |
777 | 777 | ||
@@ -794,12 +794,12 @@ static int jffs2_rename (struct inode *old_dir_i, struct dentry *old_dentry, | |||
794 | /* Make a hard link */ | 794 | /* Make a hard link */ |
795 | 795 | ||
796 | /* XXX: This is ugly */ | 796 | /* XXX: This is ugly */ |
797 | type = (old_dentry->d_inode->i_mode & S_IFMT) >> 12; | 797 | type = (d_inode(old_dentry)->i_mode & S_IFMT) >> 12; |
798 | if (!type) type = DT_REG; | 798 | if (!type) type = DT_REG; |
799 | 799 | ||
800 | now = get_seconds(); | 800 | now = get_seconds(); |
801 | ret = jffs2_do_link(c, JFFS2_INODE_INFO(new_dir_i), | 801 | ret = jffs2_do_link(c, JFFS2_INODE_INFO(new_dir_i), |
802 | old_dentry->d_inode->i_ino, type, | 802 | d_inode(old_dentry)->i_ino, type, |
803 | new_dentry->d_name.name, new_dentry->d_name.len, now); | 803 | new_dentry->d_name.name, new_dentry->d_name.len, now); |
804 | 804 | ||
805 | if (ret) | 805 | if (ret) |
@@ -808,9 +808,9 @@ static int jffs2_rename (struct inode *old_dir_i, struct dentry *old_dentry, | |||
808 | if (victim_f) { | 808 | if (victim_f) { |
809 | /* There was a victim. Kill it off nicely */ | 809 | /* There was a victim. Kill it off nicely */ |
810 | if (d_is_dir(new_dentry)) | 810 | if (d_is_dir(new_dentry)) |
811 | clear_nlink(new_dentry->d_inode); | 811 | clear_nlink(d_inode(new_dentry)); |
812 | else | 812 | else |
813 | drop_nlink(new_dentry->d_inode); | 813 | drop_nlink(d_inode(new_dentry)); |
814 | /* Don't oops if the victim was a dirent pointing to an | 814 | /* Don't oops if the victim was a dirent pointing to an |
815 | inode which didn't exist. */ | 815 | inode which didn't exist. */ |
816 | if (victim_f->inocache) { | 816 | if (victim_f->inocache) { |
@@ -836,9 +836,9 @@ static int jffs2_rename (struct inode *old_dir_i, struct dentry *old_dentry, | |||
836 | 836 | ||
837 | if (ret) { | 837 | if (ret) { |
838 | /* Oh shit. We really ought to make a single node which can do both atomically */ | 838 | /* Oh shit. We really ought to make a single node which can do both atomically */ |
839 | struct jffs2_inode_info *f = JFFS2_INODE_INFO(old_dentry->d_inode); | 839 | struct jffs2_inode_info *f = JFFS2_INODE_INFO(d_inode(old_dentry)); |
840 | mutex_lock(&f->sem); | 840 | mutex_lock(&f->sem); |
841 | inc_nlink(old_dentry->d_inode); | 841 | inc_nlink(d_inode(old_dentry)); |
842 | if (f->inocache && !d_is_dir(old_dentry)) | 842 | if (f->inocache && !d_is_dir(old_dentry)) |
843 | f->inocache->pino_nlink++; | 843 | f->inocache->pino_nlink++; |
844 | mutex_unlock(&f->sem); | 844 | mutex_unlock(&f->sem); |
@@ -846,8 +846,8 @@ static int jffs2_rename (struct inode *old_dir_i, struct dentry *old_dentry, | |||
846 | pr_notice("%s(): Link succeeded, unlink failed (err %d). You now have a hard link\n", | 846 | pr_notice("%s(): Link succeeded, unlink failed (err %d). You now have a hard link\n", |
847 | __func__, ret); | 847 | __func__, ret); |
848 | /* Might as well let the VFS know */ | 848 | /* Might as well let the VFS know */ |
849 | d_instantiate(new_dentry, old_dentry->d_inode); | 849 | d_instantiate(new_dentry, d_inode(old_dentry)); |
850 | ihold(old_dentry->d_inode); | 850 | ihold(d_inode(old_dentry)); |
851 | new_dir_i->i_mtime = new_dir_i->i_ctime = ITIME(now); | 851 | new_dir_i->i_mtime = new_dir_i->i_ctime = ITIME(now); |
852 | return ret; | 852 | return ret; |
853 | } | 853 | } |