aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/f2fs_fs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/f2fs_fs.h')
-rw-r--r--include/linux/f2fs_fs.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/include/linux/f2fs_fs.h b/include/linux/f2fs_fs.h
index 43e98d30d2df..58aecb60ea51 100644
--- a/include/linux/f2fs_fs.h
+++ b/include/linux/f2fs_fs.h
@@ -117,6 +117,7 @@ struct f2fs_super_block {
117/* 117/*
118 * For checkpoint 118 * For checkpoint
119 */ 119 */
120#define CP_NOCRC_RECOVERY_FLAG 0x00000200
120#define CP_TRIMMED_FLAG 0x00000100 121#define CP_TRIMMED_FLAG 0x00000100
121#define CP_NAT_BITS_FLAG 0x00000080 122#define CP_NAT_BITS_FLAG 0x00000080
122#define CP_CRC_RECOVERY_FLAG 0x00000040 123#define CP_CRC_RECOVERY_FLAG 0x00000040
@@ -212,6 +213,7 @@ struct f2fs_extent {
212#define F2FS_DATA_EXIST 0x08 /* file inline data exist flag */ 213#define F2FS_DATA_EXIST 0x08 /* file inline data exist flag */
213#define F2FS_INLINE_DOTS 0x10 /* file having implicit dot dentries */ 214#define F2FS_INLINE_DOTS 0x10 /* file having implicit dot dentries */
214#define F2FS_EXTRA_ATTR 0x20 /* file having extra attribute */ 215#define F2FS_EXTRA_ATTR 0x20 /* file having extra attribute */
216#define F2FS_PIN_FILE 0x40 /* file should not be gced */
215 217
216struct f2fs_inode { 218struct f2fs_inode {
217 __le16 i_mode; /* file mode */ 219 __le16 i_mode; /* file mode */
@@ -229,7 +231,13 @@ struct f2fs_inode {
229 __le32 i_ctime_nsec; /* change time in nano scale */ 231 __le32 i_ctime_nsec; /* change time in nano scale */
230 __le32 i_mtime_nsec; /* modification time in nano scale */ 232 __le32 i_mtime_nsec; /* modification time in nano scale */
231 __le32 i_generation; /* file version (for NFS) */ 233 __le32 i_generation; /* file version (for NFS) */
232 __le32 i_current_depth; /* only for directory depth */ 234 union {
235 __le32 i_current_depth; /* only for directory depth */
236 __le16 i_gc_failures; /*
237 * # of gc failures on pinned file.
238 * only for regular files.
239 */
240 };
233 __le32 i_xattr_nid; /* nid to save xattr */ 241 __le32 i_xattr_nid; /* nid to save xattr */
234 __le32 i_flags; /* file attributes */ 242 __le32 i_flags; /* file attributes */
235 __le32 i_pino; /* parent inode number */ 243 __le32 i_pino; /* parent inode number */
@@ -245,8 +253,10 @@ struct f2fs_inode {
245 __le16 i_inline_xattr_size; /* inline xattr size, unit: 4 bytes */ 253 __le16 i_inline_xattr_size; /* inline xattr size, unit: 4 bytes */
246 __le32 i_projid; /* project id */ 254 __le32 i_projid; /* project id */
247 __le32 i_inode_checksum;/* inode meta checksum */ 255 __le32 i_inode_checksum;/* inode meta checksum */
256 __le64 i_crtime; /* creation time */
257 __le32 i_crtime_nsec; /* creation time in nano scale */
248 __le32 i_extra_end[0]; /* for attribute size calculation */ 258 __le32 i_extra_end[0]; /* for attribute size calculation */
249 }; 259 } __packed;
250 __le32 i_addr[DEF_ADDRS_PER_INODE]; /* Pointers to data blocks */ 260 __le32 i_addr[DEF_ADDRS_PER_INODE]; /* Pointers to data blocks */
251 }; 261 };
252 __le32 i_nid[DEF_NIDS_PER_INODE]; /* direct(2), indirect(2), 262 __le32 i_nid[DEF_NIDS_PER_INODE]; /* direct(2), indirect(2),