diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-05-20 12:43:20 -0400 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-06-02 21:05:10 -0400 |
commit | a1961246c392dbf7dabdc81b4e074c32053fbf61 (patch) | |
tree | 452d915dba0d3dffdaeeb207c59edea09228d922 /fs/f2fs/dir.c | |
parent | 8edd03c870e4eb8d635d507a7d83fe35d76117c2 (diff) |
f2fs: introduce f2fs_i_links_write with mark_inode_dirty_sync
This patch introduces f2fs_i_links_write() to call mark_inode_dirty_sync() when
changing inode->i_links.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/dir.c')
-rw-r--r-- | fs/f2fs/dir.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c index dc4beae14c92..f8ca0f31271f 100644 --- a/fs/f2fs/dir.c +++ b/fs/f2fs/dir.c | |||
@@ -437,7 +437,7 @@ struct page *init_inode_metadata(struct inode *inode, struct inode *dir, | |||
437 | */ | 437 | */ |
438 | if (inode->i_nlink == 0) | 438 | if (inode->i_nlink == 0) |
439 | remove_orphan_inode(F2FS_I_SB(dir), inode->i_ino); | 439 | remove_orphan_inode(F2FS_I_SB(dir), inode->i_ino); |
440 | inc_nlink(inode); | 440 | f2fs_i_links_write(inode, true); |
441 | } | 441 | } |
442 | return page; | 442 | return page; |
443 | 443 | ||
@@ -456,7 +456,7 @@ void update_parent_metadata(struct inode *dir, struct inode *inode, | |||
456 | { | 456 | { |
457 | if (inode && is_inode_flag_set(inode, FI_NEW_INODE)) { | 457 | if (inode && is_inode_flag_set(inode, FI_NEW_INODE)) { |
458 | if (S_ISDIR(inode->i_mode)) { | 458 | if (S_ISDIR(inode->i_mode)) { |
459 | inc_nlink(dir); | 459 | f2fs_i_links_write(dir, true); |
460 | set_inode_flag(dir, FI_UPDATE_DIR); | 460 | set_inode_flag(dir, FI_UPDATE_DIR); |
461 | } | 461 | } |
462 | clear_inode_flag(inode, FI_NEW_INODE); | 462 | clear_inode_flag(inode, FI_NEW_INODE); |
@@ -675,7 +675,7 @@ void f2fs_drop_nlink(struct inode *dir, struct inode *inode, struct page *page) | |||
675 | down_write(&F2FS_I(inode)->i_sem); | 675 | down_write(&F2FS_I(inode)->i_sem); |
676 | 676 | ||
677 | if (S_ISDIR(inode->i_mode)) { | 677 | if (S_ISDIR(inode->i_mode)) { |
678 | drop_nlink(dir); | 678 | f2fs_i_links_write(dir, false); |
679 | if (page) | 679 | if (page) |
680 | update_inode(dir, page); | 680 | update_inode(dir, page); |
681 | else | 681 | else |
@@ -683,9 +683,9 @@ void f2fs_drop_nlink(struct inode *dir, struct inode *inode, struct page *page) | |||
683 | } | 683 | } |
684 | inode->i_ctime = CURRENT_TIME; | 684 | inode->i_ctime = CURRENT_TIME; |
685 | 685 | ||
686 | drop_nlink(inode); | 686 | f2fs_i_links_write(inode, false); |
687 | if (S_ISDIR(inode->i_mode)) { | 687 | if (S_ISDIR(inode->i_mode)) { |
688 | drop_nlink(inode); | 688 | f2fs_i_links_write(inode, false); |
689 | f2fs_i_size_write(inode, 0); | 689 | f2fs_i_size_write(inode, 0); |
690 | } | 690 | } |
691 | up_write(&F2FS_I(inode)->i_sem); | 691 | up_write(&F2FS_I(inode)->i_sem); |