diff options
author | Jaegeuk Kim <jaegeuk.kim@samsung.com> | 2013-04-01 08:32:21 +0900 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk.kim@samsung.com> | 2013-04-03 17:27:51 +0900 |
commit | b74737541c5190ab2ad3ee0d7b323e860b988df1 (patch) | |
tree | 5f836c7bf8ac075169b89238a5f6a865c9d4c3a8 /fs/f2fs/super.c | |
parent | 60374688a1a1cc8ef173d3dab42574719b851ac4 (diff) | |
download | blackbird-op-linux-b74737541c5190ab2ad3ee0d7b323e860b988df1.tar.gz blackbird-op-linux-b74737541c5190ab2ad3ee0d7b323e860b988df1.zip |
f2fs: avoid race for summary information
In order to do GC more reliably, I'd like to lock the vicitm summary page
until its GC is completed, and also prevent any checkpoint process.
Reviewed-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Diffstat (limited to 'fs/f2fs/super.c')
-rw-r--r-- | fs/f2fs/super.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index 728c20a8e456..ca5413346653 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -137,10 +137,13 @@ int f2fs_sync_fs(struct super_block *sb, int sync) if (!sbi->s_dirty && !get_pages(sbi, F2FS_DIRTY_NODES)) return 0; - if (sync) + if (sync) { + mutex_lock(&sbi->gc_mutex); write_checkpoint(sbi, false); - else + mutex_unlock(&sbi->gc_mutex); + } else { f2fs_balance_fs(sbi); + } return 0; } |