diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2015-04-20 19:52:47 -0700 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2015-05-28 15:41:49 -0700 |
commit | 57e5055b0a5e33267b8be366ee52ce5cdc239bc7 (patch) | |
tree | 55ece877a625b61e64729edbfe5648a96051ffce /fs/f2fs/f2fs.h | |
parent | f424f664f0e8949361d268e2e91c7acc8cf63eb2 (diff) | |
download | op-kernel-dev-57e5055b0a5e33267b8be366ee52ce5cdc239bc7.zip op-kernel-dev-57e5055b0a5e33267b8be366ee52ce5cdc239bc7.tar.gz |
f2fs crypto: add f2fs encryption facilities
Most of parts were copied from ext4, except:
- add f2fs_restore_and_release_control_page which returns control page and
restore control page
- remove ext4_encrypted_zeroout()
- remove sbi->s_file_encryption_mode & sbi->s_dir_encryption_mode
- add f2fs_end_io_crypto_work for mpage_end_io
Signed-off-by: Michael Halcrow <mhalcrow@google.com>
Signed-off-by: Ildar Muslukhov <ildarm@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/f2fs.h')
-rw-r--r-- | fs/f2fs/f2fs.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 709660b..b0490cb 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -1962,4 +1962,29 @@ int f2fs_is_child_context_consistent_with_parent(struct inode *, int f2fs_inherit_context(struct inode *, struct inode *, struct page *); int f2fs_process_policy(const struct f2fs_encryption_policy *, struct inode *); int f2fs_get_policy(struct inode *, struct f2fs_encryption_policy *); + +/* crypt.c */ +extern struct workqueue_struct *f2fs_read_workqueue; +bool f2fs_valid_contents_enc_mode(uint32_t); +uint32_t f2fs_validate_encryption_key_size(uint32_t, uint32_t); +struct f2fs_crypto_ctx *f2fs_get_crypto_ctx(struct inode *); +void f2fs_release_crypto_ctx(struct f2fs_crypto_ctx *); +struct page *f2fs_encrypt(struct inode *, struct page *); +int f2fs_decrypt(struct f2fs_crypto_ctx *, struct page *); +int f2fs_decrypt_one(struct inode *, struct page *); +void f2fs_end_io_crypto_work(struct f2fs_crypto_ctx *, struct bio *); + +#ifdef CONFIG_F2FS_FS_ENCRYPTION +void f2fs_restore_and_release_control_page(struct page **); +void f2fs_restore_control_page(struct page *); + +int f2fs_init_crypto(void); +void f2fs_exit_crypto(void); +#else +static inline void f2fs_restore_and_release_control_page(struct page **p) { } +static inline void f2fs_restore_control_page(struct page *p) { } + +static inline int f2fs_init_crypto(void) { return 0; } +static inline void f2fs_exit_crypto(void) { } +#endif #endif |