diff mbox series

[08/42] mkfs.ubifs: Implement UBIFS_FLG_ENCRYPTION

Message ID 20181018143718.26298-9-richard@nod.at
State Accepted
Delegated to: David Oberhollenzer
Headers show
Series mtd-utils: Add fscrypt support to mkfs.ubifs | expand

Commit Message

Richard Weinberger Oct. 18, 2018, 2:36 p.m. UTC
...and set UBIFS format version

Signed-off-by: Richard Weinberger <richard@nod.at>
---
 ubifs-utils/mkfs.ubifs/mkfs.ubifs.c | 13 ++++++++++++-
 ubifs-utils/mkfs.ubifs/ubifs.h      |  1 +
 2 files changed, 13 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
index fc1b0cb1f6cc..09c28ab0b6bd 100644
--- a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
+++ b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
@@ -2357,6 +2357,15 @@  static int finalize_leb_cnt(void)
 	return 0;
 }
 
+static int ubifs_format_version(void)
+{
+	if (c->double_hash || c->encrypted)
+		return 5;
+
+	/* Default */
+	return 4;
+}
+
 /**
  * write_super - write the super block.
  */
@@ -2379,7 +2388,7 @@  static int write_super(void)
 	sup.jhead_cnt     = cpu_to_le32(c->jhead_cnt);
 	sup.fanout        = cpu_to_le32(c->fanout);
 	sup.lsave_cnt     = cpu_to_le32(c->lsave_cnt);
-	sup.fmt_version   = cpu_to_le32(UBIFS_FORMAT_VERSION);
+	sup.fmt_version   = cpu_to_le32(ubifs_format_version());
 	sup.default_compr = cpu_to_le16(c->default_compr);
 	sup.rp_size       = cpu_to_le64(c->rp_size);
 	sup.time_gran     = cpu_to_le32(DEFAULT_TIME_GRAN);
@@ -2396,6 +2405,8 @@  static int write_super(void)
 		sup.flags |= cpu_to_le32(UBIFS_FLG_SPACE_FIXUP);
 	if (c->double_hash)
 		sup.flags |= cpu_to_le32(UBIFS_FLG_DOUBLE_HASH);
+	if (c->encrypted)
+		sup.flags |= cpu_to_le32(UBIFS_FLG_ENCRYPTION);
 
 	return write_node(&sup, UBIFS_SB_NODE_SZ, UBIFS_SB_LNUM);
 }
diff --git a/ubifs-utils/mkfs.ubifs/ubifs.h b/ubifs-utils/mkfs.ubifs/ubifs.h
index 5a4af997e7bd..c26d0944ac50 100644
--- a/ubifs-utils/mkfs.ubifs/ubifs.h
+++ b/ubifs-utils/mkfs.ubifs/ubifs.h
@@ -410,6 +410,7 @@  struct ubifs_info
 	int big_lpt;
 	int space_fixup;
 	int double_hash;
+	int encrypted;
 	long long lpt_sz;
 
 	int ltab_lnum;