mkfs.f2fs: support fsverity feature
authorJaegeuk Kim <jaegeuk@google.com>
Thu, 11 Jan 2018 03:33:47 +0000 (19:33 -0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 5 Apr 2018 05:22:33 +0000 (22:22 -0700)
This is aligned to f2fs which reserves fsverity feature bit.

Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
fsck/mount.c
include/f2fs_fs.h
mkfs/f2fs_format_main.c

index 4211e5f..5d234ec 100644 (file)
@@ -439,6 +439,9 @@ void print_sb_state(struct f2fs_super_block *sb)
        if (f & cpu_to_le32(F2FS_FEATURE_ENCRYPT)) {
                MSG(0, "%s", " encrypt");
        }
+       if (f & cpu_to_le32(F2FS_FEATURE_VERITY)) {
+               MSG(0, "%s", " verity");
+       }
        if (f & cpu_to_le32(F2FS_FEATURE_BLKZONED)) {
                MSG(0, "%s", " blkzoned");
        }
index 64d3046..8ed9db1 100644 (file)
@@ -552,6 +552,7 @@ enum {
 #define F2FS_FEATURE_FLEXIBLE_INLINE_XATTR     0x0040
 #define F2FS_FEATURE_QUOTA_INO         0x0080
 #define F2FS_FEATURE_INODE_CRTIME      0x0100
+#define F2FS_FEATURE_VERITY            0x0400  /* reserved */
 
 #define MAX_VOLUME_NAME                512
 
@@ -730,10 +731,13 @@ struct f2fs_extent {
 /*
  * i_advise uses FADVISE_XXX_BIT. We can add additional hints later.
  */
-#define FADVISE_COLD_BIT       0x01
-#define FADVISE_LOST_PINO_BIT  0x02
-#define FADVISE_ENCRYPT_BIT    0x04
-#define FADVISE_ENC_NAME_BIT   0x08
+#define FADVISE_COLD_BIT       0x01
+#define FADVISE_LOST_PINO_BIT  0x02
+#define FADVISE_ENCRYPT_BIT    0x04
+#define FADVISE_ENC_NAME_BIT   0x08
+#define FADVISE_KEEP_SIZE_BIT  0x10
+#define FADVISE_HOT_BIT                0x20
+#define FADVISE_VERITY_BIT     0x40    /* reserved */
 
 #define file_is_encrypt(fi)      ((fi)->i_advise & FADVISE_ENCRYPT_BIT)
 #define file_enc_name(fi)        ((fi)->i_advise & FADVISE_ENC_NAME_BIT)
index 19f0854..36228d5 100644 (file)
@@ -83,6 +83,8 @@ static void parse_feature(const char *features)
                features++;
        if (!strcmp(features, "encrypt")) {
                c.feature |= cpu_to_le32(F2FS_FEATURE_ENCRYPT);
+       } else if (!strcmp(features, "verity")) {
+               c.feature |= cpu_to_le32(F2FS_FEATURE_VERITY);
        } else if (!strcmp(features, "extra_attr")) {
                c.feature |= cpu_to_le32(F2FS_FEATURE_EXTRA_ATTR);
        } else if (!strcmp(features, "project_quota")) {