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.org Signed-off-by: Eric Biggers <ebiggers@google.com>
This commit is contained in:
parent
2a5831b1d2
commit
8a4ab0b866
@ -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,
|
|||||||
*
|
*
|
||||||
* 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,10 +247,10 @@ 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)
|
||||||
{
|
{
|
||||||
const struct qstr qname = FSTR_TO_QSTR(iname);
|
const struct qstr qname = FSTR_TO_QSTR(iname);
|
||||||
struct fscrypt_digested_name digested_name;
|
struct fscrypt_digested_name digested_name;
|
||||||
|
@ -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)
|
|||||||
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)
|
|||||||
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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user