summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/recovery.c
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2016-06-03 19:29:38 -0700
committerJaegeuk Kim <jaegeuk@kernel.org>2016-06-13 11:55:21 -0700
commit36abef4e796d382e81a0c2d21ea5327481dd7154 (patch)
tree64ddad32e0f684ef7a5b5d734bbc7a4684c8bafa /fs/f2fs/recovery.c
parentaa987273290d206b298e9d09db83e32ead661098 (diff)
downloadop-kernel-dev-36abef4e796d382e81a0c2d21ea5327481dd7154.zip
op-kernel-dev-36abef4e796d382e81a0c2d21ea5327481dd7154.tar.gz
f2fs: introduce mode=lfs mount option
This mount option is to enable original log-structured filesystem forcefully. So, there should be no random writes for main area. Especially, this supports host-managed SMR device. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/recovery.c')
-rw-r--r--fs/f2fs/recovery.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c
index b568b28..a39d84a 100644
--- a/fs/f2fs/recovery.c
+++ b/fs/f2fs/recovery.c
@@ -624,8 +624,12 @@ out:
if (err) {
bool invalidate = false;
- if (discard_next_dnode(sbi, blkaddr))
+ if (test_opt(sbi, LFS)) {
+ update_meta_page(sbi, NULL, blkaddr);
invalidate = true;
+ } else if (discard_next_dnode(sbi, blkaddr)) {
+ invalidate = true;
+ }
/* Flush all the NAT/SIT pages */
while (get_pages(sbi, F2FS_DIRTY_META))
OpenPOWER on IntegriCloud