diff options
author | Chao Yu <yuchao0@huawei.com> | 2018-02-27 17:45:24 +0300 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2018-03-13 02:05:55 +0300 |
commit | 1dc0f8991d4d93194fb7a3ac3164e05e8b24ad02 (patch) | |
tree | ee8b325d2471bfce3120d5eb211a6b9587453f84 /tools/perf/scripts/python/call-graph-from-sql.py | |
parent | b27bc8091ccf22f66ab105d10fa4f5cdeaef05a2 (diff) | |
download | linux-1dc0f8991d4d93194fb7a3ac3164e05e8b24ad02.tar.xz |
f2fs: fix to avoid race in between atomic write and background GC
Sqlite user Background GC
- move_data_block
: move page #1
- f2fs_is_atomic_file
- f2fs_ioc_start_atomic_write
- f2fs_ioc_commit_atomic_write
- commit_inmem_pages
: commit page #1 & set node #2 dirty
- f2fs_submit_page_write
- f2fs_update_data_blkaddr
- set_page_dirty
: set node #2 dirty
- f2fs_do_sync_file
- fsync_node_pages
: commit node #1 & node #2, then sudden power-cut
In a race case, we may check FI_ATOMIC_FILE flag before starting atomic
write flow, then we will commit meta data before data with reversed
order, after a sudden pow-cut, database transaction will be inconsistent.
So we'd better to exclude gc/atomic_write to each other by using lock
instead of flag checking.
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/call-graph-from-sql.py')
0 files changed, 0 insertions, 0 deletions