diff options
| -rw-r--r-- | fs/ext2/namei.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/fs/ext2/namei.c b/fs/ext2/namei.c index 2e1d8341d827..adb91855ccd0 100644 --- a/fs/ext2/namei.c +++ b/fs/ext2/namei.c | |||
| @@ -344,7 +344,6 @@ static int ext2_rename (struct inode * old_dir, struct dentry * old_dentry, | |||
| 344 | new_de = ext2_find_entry (new_dir, &new_dentry->d_name, &new_page); | 344 | new_de = ext2_find_entry (new_dir, &new_dentry->d_name, &new_page); |
| 345 | if (!new_de) | 345 | if (!new_de) |
| 346 | goto out_dir; | 346 | goto out_dir; |
| 347 | inode_inc_link_count(old_inode); | ||
| 348 | ext2_set_link(new_dir, new_de, new_page, old_inode, 1); | 347 | ext2_set_link(new_dir, new_de, new_page, old_inode, 1); |
| 349 | new_inode->i_ctime = CURRENT_TIME_SEC; | 348 | new_inode->i_ctime = CURRENT_TIME_SEC; |
| 350 | if (dir_de) | 349 | if (dir_de) |
| @@ -356,12 +355,9 @@ static int ext2_rename (struct inode * old_dir, struct dentry * old_dentry, | |||
| 356 | if (new_dir->i_nlink >= EXT2_LINK_MAX) | 355 | if (new_dir->i_nlink >= EXT2_LINK_MAX) |
| 357 | goto out_dir; | 356 | goto out_dir; |
| 358 | } | 357 | } |
| 359 | inode_inc_link_count(old_inode); | ||
| 360 | err = ext2_add_link(new_dentry, old_inode); | 358 | err = ext2_add_link(new_dentry, old_inode); |
| 361 | if (err) { | 359 | if (err) |
| 362 | inode_dec_link_count(old_inode); | ||
| 363 | goto out_dir; | 360 | goto out_dir; |
| 364 | } | ||
| 365 | if (dir_de) | 361 | if (dir_de) |
| 366 | inode_inc_link_count(new_dir); | 362 | inode_inc_link_count(new_dir); |
| 367 | } | 363 | } |
| @@ -369,12 +365,11 @@ static int ext2_rename (struct inode * old_dir, struct dentry * old_dentry, | |||
| 369 | /* | 365 | /* |
| 370 | * Like most other Unix systems, set the ctime for inodes on a | 366 | * Like most other Unix systems, set the ctime for inodes on a |
| 371 | * rename. | 367 | * rename. |
| 372 | * inode_dec_link_count() will mark the inode dirty. | ||
| 373 | */ | 368 | */ |
| 374 | old_inode->i_ctime = CURRENT_TIME_SEC; | 369 | old_inode->i_ctime = CURRENT_TIME_SEC; |
| 370 | mark_inode_dirty(old_inode); | ||
| 375 | 371 | ||
| 376 | ext2_delete_entry (old_de, old_page); | 372 | ext2_delete_entry (old_de, old_page); |
| 377 | inode_dec_link_count(old_inode); | ||
| 378 | 373 | ||
| 379 | if (dir_de) { | 374 | if (dir_de) { |
| 380 | if (old_dir != new_dir) | 375 | if (old_dir != new_dir) |
