f2fs: fix error path of ->symlink
PATCH 2/3 f2fs: fix error path of ->symlink
Now, in ->symlink of f2fs, we kept the fixed invoking order between f2fs_add_link and page_symlink since we should init node info firstly in f2fs_add_link, then such node info can be used in page_symlink.
But we didn't fix to release meta info which was done before page_symlink in our error path, so this will leave us corrupt symlink entry in its parent's dentry page. Fix this issue by adding f2fs_unlink in the error path for removing such linking.
Signed-off-by Chao Yu <[email protected]>
--- fs/f2fs/namei.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
fs/f2fs/namei.c +6 -3
@@ -410,11 +410,14 @@ err_out:* If the symlink path is stored into inline_data, there is no * performance regression. */ -if (!err) +if (!err) {filemap_write_and_wait_range (inode->i_mapping,0 , p_len -1 ); -if (IS_DIRSYNC (dir)) -f2fs_sync_fs (sbi->sb,1 ); +if (IS_DIRSYNC (dir)) +f2fs_sync_fs (sbi->sb,1 ); + }else { +f2fs_unlink (dir, dentry); + }kfree (sd);f2fs_fname_crypto_free_buffer (&disk_link);
Signature · 1 line
2.6.1