hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/include/linux/f2fs_fs.h
....@@ -34,6 +34,7 @@
3434 #define F2FS_ROOT_INO(sbi) ((sbi)->root_ino_num)
3535 #define F2FS_NODE_INO(sbi) ((sbi)->node_ino_num)
3636 #define F2FS_META_INO(sbi) ((sbi)->meta_ino_num)
37
+#define F2FS_COMPRESS_INO(sbi) (NM_I(sbi)->max_nid)
3738
3839 #define F2FS_MAX_QUOTAS 3
3940
....@@ -71,6 +72,20 @@
7172 __u8 path[MAX_PATH_LEN];
7273 __le32 total_segments;
7374 } __packed;
75
+
76
+/* reason of stop_checkpoint */
77
+enum stop_cp_reason {
78
+ STOP_CP_REASON_SHUTDOWN,
79
+ STOP_CP_REASON_FAULT_INJECT,
80
+ STOP_CP_REASON_META_PAGE,
81
+ STOP_CP_REASON_WRITE_FAIL,
82
+ STOP_CP_REASON_CORRUPTED_SUMMARY,
83
+ STOP_CP_REASON_UPDATE_INODE,
84
+ STOP_CP_REASON_FLUSH_FAIL,
85
+ STOP_CP_REASON_MAX,
86
+};
87
+
88
+#define MAX_STOP_REASON 32
7489
7590 struct f2fs_super_block {
7691 __le32 magic; /* Magic Number */
....@@ -115,7 +130,8 @@
115130 __u8 hot_ext_count; /* # of hot file extension */
116131 __le16 s_encoding; /* Filename charset encoding */
117132 __le16 s_encoding_flags; /* Filename charset encoding flags */
118
- __u8 reserved[306]; /* valid reserved region */
133
+ __u8 s_stop_reason[MAX_STOP_REASON]; /* stop checkpoint reason */
134
+ __u8 reserved[274]; /* valid reserved region */
119135 __le32 crc; /* checksum of superblock */
120136 } __packed;
121137
....@@ -168,7 +184,7 @@
168184 unsigned char alloc_type[MAX_ACTIVE_LOGS];
169185
170186 /* SIT and NAT version bitmap */
171
- unsigned char sit_nat_version_bitmap[1];
187
+ unsigned char sit_nat_version_bitmap[];
172188 } __packed;
173189
174190 #define CP_CHKSUM_OFFSET 4092 /* default chksum offset in checkpoint */
....@@ -229,6 +245,7 @@
229245 #define F2FS_INLINE_DOTS 0x10 /* file having implicit dot dentries */
230246 #define F2FS_EXTRA_ATTR 0x20 /* file having extra attribute */
231247 #define F2FS_PIN_FILE 0x40 /* file should not be gced */
248
+#define F2FS_COMPRESS_RELEASED 0x80 /* file released compressed blocks */
232249
233250 struct f2fs_inode {
234251 __le16 i_mode; /* file mode */
....@@ -273,7 +290,10 @@
273290 __le64 i_compr_blocks; /* # of compressed blocks */
274291 __u8 i_compress_algorithm; /* compress algorithm */
275292 __u8 i_log_cluster_size; /* log of cluster size */
276
- __le16 i_padding; /* padding */
293
+ __le16 i_compress_flag; /* compress flag */
294
+ /* 0 bit: chksum flag
295
+ * [10,15] bits: compress level
296
+ */
277297 __le32 i_extra_end[0]; /* for attribute size calculation */
278298 } __packed;
279299 __le32 i_addr[DEF_ADDRS_PER_INODE]; /* Pointers to data blocks */