2013-08-26 12:28:15

by Jaegeuk Kim

[permalink] [raw]
Subject: [PATCH] f2fs: fix omitting to update inode page

The f2fs_set_link updates its parent inode number, so we should sync this to
the inode block.
Otherwise, the data can be lost after sudden-power-off.

Signed-off-by: Jaegeuk Kim <[email protected]>
---
fs/f2fs/namei.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
index 4e47518..9e90d31 100644
--- a/fs/f2fs/namei.c
+++ b/fs/f2fs/namei.c
@@ -447,6 +447,7 @@ static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry,
else
release_orphan_inode(sbi);

+ update_inode_page(old_inode):
update_inode_page(new_inode);
} else {
err = f2fs_add_link(new_dentry, old_inode);
--
1.8.3.1.437.g0dbd812


2013-08-27 04:54:50

by Gu Zheng

[permalink] [raw]
Subject: Re: [PATCH] f2fs: fix omitting to update inode page

On 08/26/2013 08:28 PM, Jaegeuk Kim wrote:

> The f2fs_set_link updates its parent inode number, so we should sync this to
> the inode block.
> Otherwise, the data can be lost after sudden-power-off.
>
> Signed-off-by: Jaegeuk Kim <[email protected]>
> ---
> fs/f2fs/namei.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
> index 4e47518..9e90d31 100644
> --- a/fs/f2fs/namei.c
> +++ b/fs/f2fs/namei.c
> @@ -447,6 +447,7 @@ static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry,
> else
> release_orphan_inode(sbi);
>
> + update_inode_page(old_inode):

':' --> ';'

> update_inode_page(new_inode);
> } else {
> err = f2fs_add_link(new_dentry, old_inode);