From: Jaegeuk Kim Date: Wed, 29 Apr 2015 18:18:42 +0000 (-0700) Subject: f2fs: fix race on allocating and deallocating a dentry block X-Git-Tag: omap-for-v4.3/legacy-v2-signed~156^2~66 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=01f28610a1691078d0f7ba62b365567f8799f07c;p=pandora-kernel.git f2fs: fix race on allocating and deallocating a dentry block There are two threads: f2fs_delete_entry() get_new_data_page() f2fs_reserve_block() dn.blkaddr = XXX lock_page(dentry_block) truncate_hole() dn.blkaddr = NULL unlock_page(dentry_block) lock_page(dentry_block) fill the block from XXX address add new dentries unlock_page(dentry_block) Later, f2fs_write_data_page() will truncate the dentry_block, since its block address is NULL. The reason for this was due to the wrong lock order. In this case, we should do f2fs_reserve_block() after locking its dentry block. Signed-off-by: Jaegeuk Kim --- Reading git-diff-tree failed