Commit 0747fdb2 authored by Al Viro's avatar Al Viro

ecryptfs: switch ecryptfs_decode_and_decrypt_filename() from dentry to sb

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent cb5e05d1
...@@ -2243,12 +2243,11 @@ int ecryptfs_encrypt_and_encode_filename( ...@@ -2243,12 +2243,11 @@ int ecryptfs_encrypt_and_encode_filename(
*/ */
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, ...@@ -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, ...@@ -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, ...@@ -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) ...@@ -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, ...@@ -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);
......
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