diff options
author | Jaegeuk Kim <jaegeuk.kim@samsung.com> | 2014-03-20 08:52:53 -0400 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk.kim@samsung.com> | 2014-03-20 09:10:11 -0400 |
commit | 479f40c44ae30e02642ce0391be707a53852d545 (patch) | |
tree | 0ad83458da430f524f70a681c4d88c1b22e54233 /fs/f2fs/node.h | |
parent | d928bfbfe77aa457b765c19e9db8cd4cc72b3c89 (diff) |
f2fs: skip unnecessary node writes during fsync
If multiple redundant fsync calls are triggered, we don't need to write its
node pages with fsync mark continuously.
So, this patch adds FI_NEED_FSYNC to track whether the latest node block is
written with the fsync mark or not.
If the mark was set, a new fsync doesn't need to write a node block.
Otherwise, we should do a new node block with the mark for roll-forward
recovery.
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Diffstat (limited to 'fs/f2fs/node.h')
-rw-r--r-- | fs/f2fs/node.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/f2fs/node.h b/fs/f2fs/node.h index c2015b71ff87..5decc1a375f0 100644 --- a/fs/f2fs/node.h +++ b/fs/f2fs/node.h | |||
@@ -42,6 +42,7 @@ struct node_info { | |||
42 | struct nat_entry { | 42 | struct nat_entry { |
43 | struct list_head list; /* for clean or dirty nat list */ | 43 | struct list_head list; /* for clean or dirty nat list */ |
44 | bool checkpointed; /* whether it is checkpointed or not */ | 44 | bool checkpointed; /* whether it is checkpointed or not */ |
45 | bool fsync_done; /* whether the latest node has fsync mark */ | ||
45 | struct node_info ni; /* in-memory node information */ | 46 | struct node_info ni; /* in-memory node information */ |
46 | }; | 47 | }; |
47 | 48 | ||