|
@@ -38,6 +38,7 @@
|
|
|
#include <linux/backing-dev.h>
|
|
|
#include <linux/security.h>
|
|
|
#include <linux/xattr.h>
|
|
|
+#include <linux/fscrypto.h>
|
|
|
#include "ubifs-media.h"
|
|
|
|
|
|
/* Version of this UBIFS implementation */
|
|
@@ -1724,7 +1725,7 @@ int ubifs_update_time(struct inode *inode, struct timespec *time, int flags);
|
|
|
#endif
|
|
|
|
|
|
/* dir.c */
|
|
|
-struct inode *ubifs_new_inode(struct ubifs_info *c, const struct inode *dir,
|
|
|
+struct inode *ubifs_new_inode(struct ubifs_info *c, struct inode *dir,
|
|
|
umode_t mode);
|
|
|
int ubifs_getattr(struct vfsmount *mnt, struct dentry *dentry,
|
|
|
struct kstat *stat);
|
|
@@ -1773,10 +1774,44 @@ void ubifs_compress(const struct ubifs_info *c, const void *in_buf, int in_len,
|
|
|
int ubifs_decompress(const struct ubifs_info *c, const void *buf, int len,
|
|
|
void *out, int *out_len, int compr_type);
|
|
|
|
|
|
+extern struct fscrypt_operations ubifs_crypt_operations;
|
|
|
+
|
|
|
#include "debug.h"
|
|
|
#include "misc.h"
|
|
|
#include "key.h"
|
|
|
|
|
|
+#ifndef CONFIG_UBIFS_FS_ENCRYPTION
|
|
|
+#define fscrypt_set_d_op(i)
|
|
|
+#define fscrypt_get_ctx fscrypt_notsupp_get_ctx
|
|
|
+#define fscrypt_release_ctx fscrypt_notsupp_release_ctx
|
|
|
+#define fscrypt_encrypt_page fscrypt_notsupp_encrypt_page
|
|
|
+#define fscrypt_decrypt_page fscrypt_notsupp_decrypt_page
|
|
|
+#define fscrypt_decrypt_bio_pages fscrypt_notsupp_decrypt_bio_pages
|
|
|
+#define fscrypt_pullback_bio_page fscrypt_notsupp_pullback_bio_page
|
|
|
+#define fscrypt_restore_control_page fscrypt_notsupp_restore_control_page
|
|
|
+#define fscrypt_zeroout_range fscrypt_notsupp_zeroout_range
|
|
|
+#define fscrypt_process_policy fscrypt_notsupp_process_policy
|
|
|
+#define fscrypt_get_policy fscrypt_notsupp_get_policy
|
|
|
+#define fscrypt_has_permitted_context fscrypt_notsupp_has_permitted_context
|
|
|
+#define fscrypt_inherit_context fscrypt_notsupp_inherit_context
|
|
|
+#define fscrypt_get_encryption_info fscrypt_notsupp_get_encryption_info
|
|
|
+#define fscrypt_put_encryption_info fscrypt_notsupp_put_encryption_info
|
|
|
+#define fscrypt_setup_filename fscrypt_notsupp_setup_filename
|
|
|
+#define fscrypt_free_filename fscrypt_notsupp_free_filename
|
|
|
+#define fscrypt_fname_encrypted_size fscrypt_notsupp_fname_encrypted_size
|
|
|
+#define fscrypt_fname_alloc_buffer fscrypt_notsupp_fname_alloc_buffer
|
|
|
+#define fscrypt_fname_free_buffer fscrypt_notsupp_fname_free_buffer
|
|
|
+#define fscrypt_fname_disk_to_usr fscrypt_notsupp_fname_disk_to_usr
|
|
|
+#define fscrypt_fname_usr_to_disk fscrypt_notsupp_fname_usr_to_disk
|
|
|
+#endif
|
|
|
+
|
|
|
+static inline bool ubifs_crypt_is_encrypted(struct inode *inode)
|
|
|
+{
|
|
|
+ struct ubifs_inode *ui = ubifs_inode(inode);
|
|
|
+
|
|
|
+ return ui->flags & UBIFS_CRYPT_FL;
|
|
|
+}
|
|
|
+
|
|
|
/* Normal UBIFS messages */
|
|
|
__printf(2, 3)
|
|
|
void ubifs_msg(const struct ubifs_info *c, const char *fmt, ...);
|