Commit 8a4ab0b8 authored by Eric Biggers's avatar Eric Biggers

fscrypt: constify inode parameter to filename encryption functions

Constify the struct inode parameter to fscrypt_fname_disk_to_usr() and
the other filename encryption functions so that users don't have to pass
in a non-const inode when they are dealing with a const one, as in [1].

[1] https://lkml.kernel.org/linux-ext4/20191203051049.44573-6-drosen@google.com/

Cc: Daniel Rosenberg <drosen@google.com>
Link: https://lore.kernel.org/r/20191215213947.9521-1-ebiggers@kernel.orgSigned-off-by: default avatarEric Biggers <ebiggers@google.com>
parent 2a5831b1
...@@ -34,12 +34,12 @@ static inline bool fscrypt_is_dot_dotdot(const struct qstr *str) ...@@ -34,12 +34,12 @@ static inline bool fscrypt_is_dot_dotdot(const struct qstr *str)
* *
* Return: 0 on success, -errno on failure * Return: 0 on success, -errno on failure
*/ */
int fname_encrypt(struct inode *inode, const struct qstr *iname, int fname_encrypt(const struct inode *inode, const struct qstr *iname,
u8 *out, unsigned int olen) u8 *out, unsigned int olen)
{ {
struct skcipher_request *req = NULL; struct skcipher_request *req = NULL;
DECLARE_CRYPTO_WAIT(wait); DECLARE_CRYPTO_WAIT(wait);
struct fscrypt_info *ci = inode->i_crypt_info; const struct fscrypt_info *ci = inode->i_crypt_info;
struct crypto_skcipher *tfm = ci->ci_ctfm; struct crypto_skcipher *tfm = ci->ci_ctfm;
union fscrypt_iv iv; union fscrypt_iv iv;
struct scatterlist sg; struct scatterlist sg;
...@@ -85,14 +85,14 @@ int fname_encrypt(struct inode *inode, const struct qstr *iname, ...@@ -85,14 +85,14 @@ int fname_encrypt(struct inode *inode, const struct qstr *iname,
* *
* Return: 0 on success, -errno on failure * Return: 0 on success, -errno on failure
*/ */
static int fname_decrypt(struct inode *inode, static int fname_decrypt(const struct inode *inode,
const struct fscrypt_str *iname, const struct fscrypt_str *iname,
struct fscrypt_str *oname) struct fscrypt_str *oname)
{ {
struct skcipher_request *req = NULL; struct skcipher_request *req = NULL;
DECLARE_CRYPTO_WAIT(wait); DECLARE_CRYPTO_WAIT(wait);
struct scatterlist src_sg, dst_sg; struct scatterlist src_sg, dst_sg;
struct fscrypt_info *ci = inode->i_crypt_info; const struct fscrypt_info *ci = inode->i_crypt_info;
struct crypto_skcipher *tfm = ci->ci_ctfm; struct crypto_skcipher *tfm = ci->ci_ctfm;
union fscrypt_iv iv; union fscrypt_iv iv;
int res; int res;
...@@ -247,7 +247,7 @@ EXPORT_SYMBOL(fscrypt_fname_free_buffer); ...@@ -247,7 +247,7 @@ EXPORT_SYMBOL(fscrypt_fname_free_buffer);
* *
* Return: 0 on success, -errno on failure * Return: 0 on success, -errno on failure
*/ */
int fscrypt_fname_disk_to_usr(struct inode *inode, int fscrypt_fname_disk_to_usr(const struct inode *inode,
u32 hash, u32 minor_hash, u32 hash, u32 minor_hash,
const struct fscrypt_str *iname, const struct fscrypt_str *iname,
struct fscrypt_str *oname) struct fscrypt_str *oname)
......
...@@ -260,7 +260,7 @@ void fscrypt_generate_iv(union fscrypt_iv *iv, u64 lblk_num, ...@@ -260,7 +260,7 @@ void fscrypt_generate_iv(union fscrypt_iv *iv, u64 lblk_num,
const struct fscrypt_info *ci); const struct fscrypt_info *ci);
/* fname.c */ /* fname.c */
extern int fname_encrypt(struct inode *inode, const struct qstr *iname, extern int fname_encrypt(const struct inode *inode, const struct qstr *iname,
u8 *out, unsigned int olen); u8 *out, unsigned int olen);
extern bool fscrypt_fname_encrypted_size(const struct inode *inode, extern bool fscrypt_fname_encrypted_size(const struct inode *inode,
u32 orig_len, u32 max_len, u32 orig_len, u32 max_len,
......
...@@ -153,8 +153,10 @@ static inline void fscrypt_free_filename(struct fscrypt_name *fname) ...@@ -153,8 +153,10 @@ static inline void fscrypt_free_filename(struct fscrypt_name *fname)
extern int fscrypt_fname_alloc_buffer(const 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(const struct inode *inode,
const struct fscrypt_str *, struct fscrypt_str *); u32 hash, u32 minor_hash,
const struct fscrypt_str *iname,
struct fscrypt_str *oname);
#define FSCRYPT_FNAME_MAX_UNDIGESTED_SIZE 32 #define FSCRYPT_FNAME_MAX_UNDIGESTED_SIZE 32
...@@ -438,7 +440,7 @@ static inline void fscrypt_fname_free_buffer(struct fscrypt_str *crypto_str) ...@@ -438,7 +440,7 @@ static inline void fscrypt_fname_free_buffer(struct fscrypt_str *crypto_str)
return; return;
} }
static inline int fscrypt_fname_disk_to_usr(struct inode *inode, static inline int fscrypt_fname_disk_to_usr(const struct inode *inode,
u32 hash, u32 minor_hash, u32 hash, u32 minor_hash,
const struct fscrypt_str *iname, const struct fscrypt_str *iname,
struct fscrypt_str *oname) struct fscrypt_str *oname)
......
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