aboutsummaryrefslogtreecommitdiffstats
path: root/fs/f2fs/f2fs.h
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk.kim@samsung.com>2013-08-09 14:46:15 +0900
committerZiyan <jaraidaniel@gmail.com>2015-05-02 14:34:58 +0200
commit9f721a1ba8bde20d0b3f5c98b292b993ac6ebbb5 (patch)
tree1f637d08fd4ceb75896651485b059727ba28090c /fs/f2fs/f2fs.h
parentd12aeeef08855336065562f4051e54bf1950764c (diff)
downloadkernel_samsung_tuna-9f721a1ba8bde20d0b3f5c98b292b993ac6ebbb5.zip
kernel_samsung_tuna-9f721a1ba8bde20d0b3f5c98b292b993ac6ebbb5.tar.gz
kernel_samsung_tuna-9f721a1ba8bde20d0b3f5c98b292b993ac6ebbb5.tar.bz2
f2fs: fix inconsistency between xattr node blocks and its inode
Previously xattr node blocks are stored to the COLD_NODE log, which means that our roll-forward mechanism doesn't recover the xattr node blocks at all. Only the direct node blocks in the WARM_NODE log can be recovered. So, let's resolve the issue simply by conducting checkpoint during fsync when a file has a modified xattr node block. This approach is able to degrade the performance, but normally the checkpoint overhead is shown at the initial fsync call after the xattr entry changes. Once the checkpoint is done, no additional overhead would be occurred. Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Diffstat (limited to 'fs/f2fs/f2fs.h')
-rw-r--r--fs/f2fs/f2fs.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 8f635c7..a9b04a8 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -181,6 +181,7 @@ struct f2fs_inode_info {
f2fs_hash_t chash; /* hash value of given file name */
unsigned int clevel; /* maximum level of given file name */
nid_t i_xattr_nid; /* node id that contains xattrs */
+ unsigned long long xattr_ver; /* cp version of xattr modification */
struct extent_info ext; /* in-memory extent cache entry */
};