commit | 1e7c48fa9a34556639328d50780d12a304e0bb6d | [log] [tgz] |
---|---|---|
author | Jaegeuk Kim <jaegeuk@kernel.org> | Thu Jun 02 14:15:56 2016 -0700 |
committer | Jaegeuk Kim <jaegeuk@kernel.org> | Tue Jun 07 09:45:40 2016 -0700 |
tree | 9a974e4a957ecd15d9d87888e673fe0d6b864f6f | |
parent | 9a449e9c3b34ef3f7029bd966f98cbbfccd144e5 [diff] |
f2fs: avoid data race between FI_DIRTY_INODE flag and update_inode FI_DIRTY_INODE flag is not covered by inode page lock, so it can be unset at any time like below. Thread #1 Thread #2 - lock_page(ipage) - update i_fields - update i_size/i_blocks/and so on - set FI_DIRTY_INODE - reset FI_DIRTY_INODE - set_page_dirty(ipage) In this case, we can lose the latest i_field information. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>