aboutsummaryrefslogtreecommitdiffstats
path: root/fs/jffs2/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/jffs2/dir.c')
-rw-r--r--fs/jffs2/dir.c40
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
242static int jffs2_link (struct dentry *old_dentry, struct inode *dir_i, struct dentry *dentry) 242static 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 }