From: Eric Biggers <ebigg...@google.com>

f2fs inode numbers are stable across filesystem resizing, and f2fs inode
and file logical block numbers are always 32-bit.  So f2fs can always
support INLINE_CRYPT_OPTIMIZED encryption policies.  Wire up the needed
fscrypt_operations to declare support.

Signed-off-by: Eric Biggers <ebigg...@google.com>
---
 fs/f2fs/super.c | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 1443cee158633..851ac95229263 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -2308,13 +2308,27 @@ static bool f2fs_dummy_context(struct inode *inode)
        return DUMMY_ENCRYPTION_ENABLED(F2FS_I_SB(inode));
 }
 
+static bool f2fs_has_stable_inodes(struct super_block *sb)
+{
+       return true;
+}
+
+static void f2fs_get_ino_and_lblk_bits(struct super_block *sb,
+                                      int *ino_bits_ret, int *lblk_bits_ret)
+{
+       *ino_bits_ret = 8 * sizeof(nid_t);
+       *lblk_bits_ret = 8 * sizeof(block_t);
+}
+
 static const struct fscrypt_operations f2fs_cryptops = {
-       .key_prefix     = "f2fs:",
-       .get_context    = f2fs_get_context,
-       .set_context    = f2fs_set_context,
-       .dummy_context  = f2fs_dummy_context,
-       .empty_dir      = f2fs_empty_dir,
-       .max_namelen    = F2FS_NAME_LEN,
+       .key_prefix             = "f2fs:",
+       .get_context            = f2fs_get_context,
+       .set_context            = f2fs_set_context,
+       .dummy_context          = f2fs_dummy_context,
+       .empty_dir              = f2fs_empty_dir,
+       .max_namelen            = F2FS_NAME_LEN,
+       .has_stable_inodes      = f2fs_has_stable_inodes,
+       .get_ino_and_lblk_bits  = f2fs_get_ino_and_lblk_bits,
 };
 #endif
 
-- 
2.23.0.866.gb869b98d4c-goog



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to