4 * This is included by filesystems configured with encryption support.
7 #ifndef _LINUX_FSCRYPT_SUPP_H
8 #define _LINUX_FSCRYPT_SUPP_H
10 #include <linux/fscrypt_common.h>
13 extern struct kmem_cache
*fscrypt_info_cachep
;
14 extern struct fscrypt_ctx
*fscrypt_get_ctx(const struct inode
*, gfp_t
);
15 extern void fscrypt_release_ctx(struct fscrypt_ctx
*);
16 extern struct page
*fscrypt_encrypt_page(const struct inode
*, struct page
*,
17 unsigned int, unsigned int,
19 extern int fscrypt_decrypt_page(const struct inode
*, struct page
*, unsigned int,
21 extern void fscrypt_restore_control_page(struct page
*);
23 extern const struct dentry_operations fscrypt_d_ops
;
25 static inline void fscrypt_set_d_op(struct dentry
*dentry
)
27 d_set_d_op(dentry
, &fscrypt_d_ops
);
30 static inline void fscrypt_set_encrypted_dentry(struct dentry
*dentry
)
32 spin_lock(&dentry
->d_lock
);
33 dentry
->d_flags
|= DCACHE_ENCRYPTED_WITH_KEY
;
34 spin_unlock(&dentry
->d_lock
);
38 extern int fscrypt_ioctl_set_policy(struct file
*, const void __user
*);
39 extern int fscrypt_ioctl_get_policy(struct file
*, void __user
*);
40 extern int fscrypt_has_permitted_context(struct inode
*, struct inode
*);
41 extern int fscrypt_inherit_context(struct inode
*, struct inode
*,
44 extern int fscrypt_get_encryption_info(struct inode
*);
45 extern void fscrypt_put_encryption_info(struct inode
*, struct fscrypt_info
*);
48 extern int fscrypt_setup_filename(struct inode
*, const struct qstr
*,
49 int lookup
, struct fscrypt_name
*);
50 extern void fscrypt_free_filename(struct fscrypt_name
*);
51 extern u32
fscrypt_fname_encrypted_size(const struct inode
*, u32
);
52 extern int fscrypt_fname_alloc_buffer(const struct inode
*, u32
,
53 struct fscrypt_str
*);
54 extern void fscrypt_fname_free_buffer(struct fscrypt_str
*);
55 extern int fscrypt_fname_disk_to_usr(struct inode
*, u32
, u32
,
56 const struct fscrypt_str
*, struct fscrypt_str
*);
57 extern int fscrypt_fname_usr_to_disk(struct inode
*, const struct qstr
*,
58 struct fscrypt_str
*);
61 extern void fscrypt_decrypt_bio_pages(struct fscrypt_ctx
*, struct bio
*);
62 extern void fscrypt_pullback_bio_page(struct page
**, bool);
63 extern int fscrypt_zeroout_range(const struct inode
*, pgoff_t
, sector_t
,
66 #endif /* _LINUX_FSCRYPT_SUPP_H */