Commit 0b93e1b9 authored by David Gstir's avatar David Gstir Committed by Theodore Ts'o

fscrypt: Constify struct inode pointer

Some filesystems, such as UBIFS, maintain a const pointer for struct
inode.
Signed-off-by: default avatarDavid Gstir <david@sigma-star.at>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent 7821d4dd
...@@ -88,7 +88,7 @@ EXPORT_SYMBOL(fscrypt_release_ctx); ...@@ -88,7 +88,7 @@ EXPORT_SYMBOL(fscrypt_release_ctx);
* Return: An allocated and initialized encryption context on success; error * Return: An allocated and initialized encryption context on success; error
* value or NULL otherwise. * value or NULL otherwise.
*/ */
struct fscrypt_ctx *fscrypt_get_ctx(struct inode *inode, gfp_t gfp_flags) struct fscrypt_ctx *fscrypt_get_ctx(const struct inode *inode, gfp_t gfp_flags)
{ {
struct fscrypt_ctx *ctx = NULL; struct fscrypt_ctx *ctx = NULL;
struct fscrypt_info *ci = inode->i_crypt_info; struct fscrypt_info *ci = inode->i_crypt_info;
...@@ -146,7 +146,7 @@ typedef enum { ...@@ -146,7 +146,7 @@ typedef enum {
FS_ENCRYPT, FS_ENCRYPT,
} fscrypt_direction_t; } fscrypt_direction_t;
static int do_page_crypto(struct inode *inode, static int do_page_crypto(const struct inode *inode,
fscrypt_direction_t rw, pgoff_t index, fscrypt_direction_t rw, pgoff_t index,
struct page *src_page, struct page *dest_page, struct page *src_page, struct page *dest_page,
unsigned int src_len, unsigned int src_offset, unsigned int src_len, unsigned int src_offset,
...@@ -231,7 +231,7 @@ static struct page *alloc_bounce_page(struct fscrypt_ctx *ctx, gfp_t gfp_flags) ...@@ -231,7 +231,7 @@ static struct page *alloc_bounce_page(struct fscrypt_ctx *ctx, gfp_t gfp_flags)
* Return: An allocated page with the encrypted content on success. Else, an * Return: An allocated page with the encrypted content on success. Else, an
* error value or NULL. * error value or NULL.
*/ */
struct page *fscrypt_encrypt_page(struct inode *inode, struct page *fscrypt_encrypt_page(const struct inode *inode,
struct page *plaintext_page, struct page *plaintext_page,
unsigned int plaintext_len, unsigned int plaintext_len,
unsigned int plaintext_offset, unsigned int plaintext_offset,
...@@ -290,7 +290,7 @@ EXPORT_SYMBOL(fscrypt_encrypt_page); ...@@ -290,7 +290,7 @@ EXPORT_SYMBOL(fscrypt_encrypt_page);
* *
* Return: Zero on success, non-zero otherwise. * Return: Zero on success, non-zero otherwise.
*/ */
int fscrypt_decrypt_page(struct inode *inode, struct page *page, int fscrypt_decrypt_page(const struct inode *inode, struct page *page,
unsigned int len, unsigned int offs) unsigned int len, unsigned int offs)
{ {
return do_page_crypto(inode, FS_DECRYPT, page->index, page, page, len, offs, return do_page_crypto(inode, FS_DECRYPT, page->index, page, page, len, offs,
...@@ -298,7 +298,7 @@ int fscrypt_decrypt_page(struct inode *inode, struct page *page, ...@@ -298,7 +298,7 @@ int fscrypt_decrypt_page(struct inode *inode, struct page *page,
} }
EXPORT_SYMBOL(fscrypt_decrypt_page); EXPORT_SYMBOL(fscrypt_decrypt_page);
int fscrypt_zeroout_range(struct inode *inode, pgoff_t lblk, int fscrypt_zeroout_range(const struct inode *inode, pgoff_t lblk,
sector_t pblk, unsigned int len) sector_t pblk, unsigned int len)
{ {
struct fscrypt_ctx *ctx; struct fscrypt_ctx *ctx;
......
...@@ -220,7 +220,7 @@ static int digest_decode(const char *src, int len, char *dst) ...@@ -220,7 +220,7 @@ static int digest_decode(const char *src, int len, char *dst)
return cp - dst; return cp - dst;
} }
u32 fscrypt_fname_encrypted_size(struct inode *inode, u32 ilen) u32 fscrypt_fname_encrypted_size(const struct inode *inode, u32 ilen)
{ {
int padding = 32; int padding = 32;
struct fscrypt_info *ci = inode->i_crypt_info; struct fscrypt_info *ci = inode->i_crypt_info;
...@@ -238,7 +238,7 @@ EXPORT_SYMBOL(fscrypt_fname_encrypted_size); ...@@ -238,7 +238,7 @@ EXPORT_SYMBOL(fscrypt_fname_encrypted_size);
* Allocates an output buffer that is sufficient for the crypto operation * Allocates an output buffer that is sufficient for the crypto operation
* specified by the context and the direction. * specified by the context and the direction.
*/ */
int fscrypt_fname_alloc_buffer(struct inode *inode, int fscrypt_fname_alloc_buffer(const struct inode *inode,
u32 ilen, struct fscrypt_str *crypto_str) u32 ilen, struct fscrypt_str *crypto_str)
{ {
unsigned int olen = fscrypt_fname_encrypted_size(inode, ilen); unsigned int olen = fscrypt_fname_encrypted_size(inode, ilen);
......
...@@ -212,7 +212,7 @@ static inline struct page *fscrypt_control_page(struct page *page) ...@@ -212,7 +212,7 @@ static inline struct page *fscrypt_control_page(struct page *page)
#endif #endif
} }
static inline int fscrypt_has_encryption_key(struct inode *inode) static inline int fscrypt_has_encryption_key(const struct inode *inode)
{ {
#if IS_ENABLED(CONFIG_FS_ENCRYPTION) #if IS_ENABLED(CONFIG_FS_ENCRYPTION)
return (inode->i_crypt_info != NULL); return (inode->i_crypt_info != NULL);
...@@ -246,17 +246,17 @@ static inline void fscrypt_set_d_op(struct dentry *dentry) ...@@ -246,17 +246,17 @@ static inline void fscrypt_set_d_op(struct dentry *dentry)
extern struct kmem_cache *fscrypt_info_cachep; extern struct kmem_cache *fscrypt_info_cachep;
int fscrypt_initialize(void); int fscrypt_initialize(void);
extern struct fscrypt_ctx *fscrypt_get_ctx(struct inode *, gfp_t); extern struct fscrypt_ctx *fscrypt_get_ctx(const struct inode *, gfp_t);
extern void fscrypt_release_ctx(struct fscrypt_ctx *); extern void fscrypt_release_ctx(struct fscrypt_ctx *);
extern struct page *fscrypt_encrypt_page(struct inode *, struct page *, extern struct page *fscrypt_encrypt_page(const struct inode *, struct page *,
unsigned int, unsigned int, unsigned int, unsigned int,
gfp_t); gfp_t);
extern int fscrypt_decrypt_page(struct inode *, struct page *, unsigned int, extern int fscrypt_decrypt_page(const struct inode *, struct page *, unsigned int,
unsigned int); unsigned int);
extern void fscrypt_decrypt_bio_pages(struct fscrypt_ctx *, struct bio *); extern void fscrypt_decrypt_bio_pages(struct fscrypt_ctx *, struct bio *);
extern void fscrypt_pullback_bio_page(struct page **, bool); extern void fscrypt_pullback_bio_page(struct page **, bool);
extern void fscrypt_restore_control_page(struct page *); extern void fscrypt_restore_control_page(struct page *);
extern int fscrypt_zeroout_range(struct inode *, pgoff_t, sector_t, extern int fscrypt_zeroout_range(const struct inode *, pgoff_t, sector_t,
unsigned int); unsigned int);
/* policy.c */ /* policy.c */
extern int fscrypt_process_policy(struct file *, const struct fscrypt_policy *); extern int fscrypt_process_policy(struct file *, const struct fscrypt_policy *);
...@@ -273,8 +273,8 @@ extern void fscrypt_put_encryption_info(struct inode *, struct fscrypt_info *); ...@@ -273,8 +273,8 @@ extern void fscrypt_put_encryption_info(struct inode *, struct fscrypt_info *);
extern int fscrypt_setup_filename(struct inode *, const struct qstr *, extern int fscrypt_setup_filename(struct inode *, const struct qstr *,
int lookup, struct fscrypt_name *); int lookup, struct fscrypt_name *);
extern void fscrypt_free_filename(struct fscrypt_name *); extern void fscrypt_free_filename(struct fscrypt_name *);
extern u32 fscrypt_fname_encrypted_size(struct inode *, u32); extern u32 fscrypt_fname_encrypted_size(const struct inode *, u32);
extern int fscrypt_fname_alloc_buffer(struct inode *, u32, extern int fscrypt_fname_alloc_buffer(const struct inode *, u32,
struct fscrypt_str *); struct fscrypt_str *);
extern void fscrypt_fname_free_buffer(struct fscrypt_str *); extern void fscrypt_fname_free_buffer(struct fscrypt_str *);
extern int fscrypt_fname_disk_to_usr(struct inode *, u32, u32, extern int fscrypt_fname_disk_to_usr(struct inode *, u32, u32,
...@@ -284,7 +284,7 @@ extern int fscrypt_fname_usr_to_disk(struct inode *, const struct qstr *, ...@@ -284,7 +284,7 @@ extern int fscrypt_fname_usr_to_disk(struct inode *, const struct qstr *,
#endif #endif
/* crypto.c */ /* crypto.c */
static inline struct fscrypt_ctx *fscrypt_notsupp_get_ctx(struct inode *i, static inline struct fscrypt_ctx *fscrypt_notsupp_get_ctx(const struct inode *i,
gfp_t f) gfp_t f)
{ {
return ERR_PTR(-EOPNOTSUPP); return ERR_PTR(-EOPNOTSUPP);
...@@ -295,7 +295,7 @@ static inline void fscrypt_notsupp_release_ctx(struct fscrypt_ctx *c) ...@@ -295,7 +295,7 @@ static inline void fscrypt_notsupp_release_ctx(struct fscrypt_ctx *c)
return; return;
} }
static inline struct page *fscrypt_notsupp_encrypt_page(struct inode *i, static inline struct page *fscrypt_notsupp_encrypt_page(const struct inode *i,
struct page *p, struct page *p,
unsigned int len, unsigned int len,
unsigned int offs, unsigned int offs,
...@@ -304,7 +304,7 @@ static inline struct page *fscrypt_notsupp_encrypt_page(struct inode *i, ...@@ -304,7 +304,7 @@ static inline struct page *fscrypt_notsupp_encrypt_page(struct inode *i,
return ERR_PTR(-EOPNOTSUPP); return ERR_PTR(-EOPNOTSUPP);
} }
static inline int fscrypt_notsupp_decrypt_page(struct inode *i, struct page *p, static inline int fscrypt_notsupp_decrypt_page(const struct inode *i, struct page *p,
unsigned int len, unsigned int offs) unsigned int len, unsigned int offs)
{ {
return -EOPNOTSUPP; return -EOPNOTSUPP;
...@@ -326,7 +326,7 @@ static inline void fscrypt_notsupp_restore_control_page(struct page *p) ...@@ -326,7 +326,7 @@ static inline void fscrypt_notsupp_restore_control_page(struct page *p)
return; return;
} }
static inline int fscrypt_notsupp_zeroout_range(struct inode *i, pgoff_t p, static inline int fscrypt_notsupp_zeroout_range(const struct inode *i, pgoff_t p,
sector_t s, unsigned int f) sector_t s, unsigned int f)
{ {
return -EOPNOTSUPP; return -EOPNOTSUPP;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment