OSDN Git Service

f2fs: add F2FS_GOING_DOWN_METAFLUSH to test power-failure
authorJaegeuk Kim <jaegeuk@kernel.org>
Wed, 7 Oct 2015 16:46:37 +0000 (09:46 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 12 Oct 2015 20:37:54 +0000 (13:37 -0700)
This patch introduces F2FS_GOING_DOWN_METAFLUSH which flushes meta pages like
SSA blocks and then blocks all the writes.
This can be used by power-failure tests.

Reviewed-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/f2fs.h
fs/f2fs/file.c

index aad4720..f05ae22 100644 (file)
@@ -250,6 +250,7 @@ static inline bool __has_cursum_space(struct f2fs_summary_block *sum, int size,
 #define F2FS_GOING_DOWN_FULLSYNC       0x0     /* going down with full sync */
 #define F2FS_GOING_DOWN_METASYNC       0x1     /* going down with metadata */
 #define F2FS_GOING_DOWN_NOSYNC         0x2     /* going down */
+#define F2FS_GOING_DOWN_METAFLUSH      0x3     /* going down with meta flush */
 
 #if defined(__KERNEL__) && defined(CONFIG_COMPAT)
 /*
index b3985a6..6d3cfd5 100644 (file)
@@ -1498,6 +1498,10 @@ static int f2fs_ioc_shutdown(struct file *filp, unsigned long arg)
        case F2FS_GOING_DOWN_NOSYNC:
                f2fs_stop_checkpoint(sbi);
                break;
+       case F2FS_GOING_DOWN_METAFLUSH:
+               sync_meta_pages(sbi, META, LONG_MAX);
+               f2fs_stop_checkpoint(sbi);
+               break;
        default:
                return -EINVAL;
        }