ecryptfs: switch ecryptfs_decode_and_decrypt_filename() from dentry to sb
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Родитель
cb5e05d1a6
Коммит
0747fdb2bd
|
@ -2243,12 +2243,11 @@ out:
|
||||||
*/
|
*/
|
||||||
int ecryptfs_decode_and_decrypt_filename(char **plaintext_name,
|
int ecryptfs_decode_and_decrypt_filename(char **plaintext_name,
|
||||||
size_t *plaintext_name_size,
|
size_t *plaintext_name_size,
|
||||||
struct dentry *ecryptfs_dir_dentry,
|
struct super_block *sb,
|
||||||
const char *name, size_t name_size)
|
const char *name, size_t name_size)
|
||||||
{
|
{
|
||||||
struct ecryptfs_mount_crypt_stat *mount_crypt_stat =
|
struct ecryptfs_mount_crypt_stat *mount_crypt_stat =
|
||||||
&ecryptfs_superblock_to_private(
|
&ecryptfs_superblock_to_private(sb)->mount_crypt_stat;
|
||||||
ecryptfs_dir_dentry->d_sb)->mount_crypt_stat;
|
|
||||||
char *decoded_name;
|
char *decoded_name;
|
||||||
size_t decoded_name_size;
|
size_t decoded_name_size;
|
||||||
size_t packet_size;
|
size_t packet_size;
|
||||||
|
|
|
@ -575,7 +575,7 @@ int ecryptfs_initialize_file(struct dentry *ecryptfs_dentry,
|
||||||
struct inode *ecryptfs_inode);
|
struct inode *ecryptfs_inode);
|
||||||
int ecryptfs_decode_and_decrypt_filename(char **decrypted_name,
|
int ecryptfs_decode_and_decrypt_filename(char **decrypted_name,
|
||||||
size_t *decrypted_name_size,
|
size_t *decrypted_name_size,
|
||||||
struct dentry *ecryptfs_dentry,
|
struct super_block *sb,
|
||||||
const char *name, size_t name_size);
|
const char *name, size_t name_size);
|
||||||
int ecryptfs_fill_zeros(struct file *file, loff_t new_length);
|
int ecryptfs_fill_zeros(struct file *file, loff_t new_length);
|
||||||
int ecryptfs_encrypt_and_encode_filename(
|
int ecryptfs_encrypt_and_encode_filename(
|
||||||
|
|
|
@ -70,7 +70,7 @@ static ssize_t ecryptfs_read_update_atime(struct kiocb *iocb,
|
||||||
struct ecryptfs_getdents_callback {
|
struct ecryptfs_getdents_callback {
|
||||||
struct dir_context ctx;
|
struct dir_context ctx;
|
||||||
struct dir_context *caller;
|
struct dir_context *caller;
|
||||||
struct dentry *dentry;
|
struct super_block *sb;
|
||||||
int filldir_called;
|
int filldir_called;
|
||||||
int entries_written;
|
int entries_written;
|
||||||
};
|
};
|
||||||
|
@ -88,7 +88,7 @@ ecryptfs_filldir(void *dirent, const char *lower_name, int lower_namelen,
|
||||||
|
|
||||||
buf->filldir_called++;
|
buf->filldir_called++;
|
||||||
rc = ecryptfs_decode_and_decrypt_filename(&name, &name_size,
|
rc = ecryptfs_decode_and_decrypt_filename(&name, &name_size,
|
||||||
buf->dentry, lower_name,
|
buf->sb, lower_name,
|
||||||
lower_namelen);
|
lower_namelen);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
printk(KERN_ERR "%s: Error attempting to decode and decrypt "
|
printk(KERN_ERR "%s: Error attempting to decode and decrypt "
|
||||||
|
@ -114,15 +114,14 @@ static int ecryptfs_readdir(struct file *file, struct dir_context *ctx)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
struct file *lower_file;
|
struct file *lower_file;
|
||||||
struct inode *inode;
|
struct inode *inode = file_inode(file);
|
||||||
struct ecryptfs_getdents_callback buf = {
|
struct ecryptfs_getdents_callback buf = {
|
||||||
.ctx.actor = ecryptfs_filldir,
|
.ctx.actor = ecryptfs_filldir,
|
||||||
.caller = ctx,
|
.caller = ctx,
|
||||||
.dentry = file->f_path.dentry
|
.sb = inode->i_sb,
|
||||||
};
|
};
|
||||||
lower_file = ecryptfs_file_to_lower(file);
|
lower_file = ecryptfs_file_to_lower(file);
|
||||||
lower_file->f_pos = ctx->pos;
|
lower_file->f_pos = ctx->pos;
|
||||||
inode = file_inode(file);
|
|
||||||
rc = iterate_dir(lower_file, &buf.ctx);
|
rc = iterate_dir(lower_file, &buf.ctx);
|
||||||
ctx->pos = buf.ctx.pos;
|
ctx->pos = buf.ctx.pos;
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
|
|
|
@ -679,7 +679,7 @@ static int ecryptfs_readlink_lower(struct dentry *dentry, char **buf,
|
||||||
set_fs(old_fs);
|
set_fs(old_fs);
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
goto out;
|
goto out;
|
||||||
rc = ecryptfs_decode_and_decrypt_filename(buf, bufsiz, dentry,
|
rc = ecryptfs_decode_and_decrypt_filename(buf, bufsiz, dentry->d_sb,
|
||||||
lower_buf, rc);
|
lower_buf, rc);
|
||||||
out:
|
out:
|
||||||
kfree(lower_buf);
|
kfree(lower_buf);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче