From: Pekka Enberg - Use kmem_cache_zalloc for ecryptfs_sb_info in ecryptfs_fill_super - Kill useless ecryptfs_set_superblock_private wrapper - Rename ecryptfs_superblock_to_private to ecryptfs_sb for readability Cc: Mike Halcrow Cc: Phillip Hellewell Signed-off-by: Pekka Enberg Signed-off-by: Andrew Morton --- fs/ecryptfs/crypto.c | 5 ++--- fs/ecryptfs/ecryptfs_kernel.h | 12 ++---------- fs/ecryptfs/file.c | 2 +- fs/ecryptfs/keystore.c | 6 ++---- fs/ecryptfs/main.c | 12 +++++------- fs/ecryptfs/super.c | 4 ++-- 6 files changed, 14 insertions(+), 27 deletions(-) diff -puN fs/ecryptfs/crypto.c~ecryptfs-superblock-cleanups fs/ecryptfs/crypto.c --- a/fs/ecryptfs/crypto.c~ecryptfs-superblock-cleanups +++ a/fs/ecryptfs/crypto.c @@ -913,8 +913,7 @@ int ecryptfs_new_file_context(struct den struct ecryptfs_crypt_stat *crypt_stat = &ecryptfs_inode_to_private(ecryptfs_dentry->d_inode)->crypt_stat; struct ecryptfs_mount_crypt_stat *mount_crypt_stat = - &ecryptfs_superblock_to_private( - ecryptfs_dentry->d_sb)->mount_crypt_stat; + &ecryptfs_sb(ecryptfs_dentry->d_sb)->mount_crypt_stat; int cipher_name_len; ecryptfs_set_default_crypt_stat_vals(crypt_stat, mount_crypt_stat); @@ -1389,7 +1388,7 @@ static int ecryptfs_read_headers_virt(ch int bytes_read; ecryptfs_set_default_sizes(crypt_stat); - crypt_stat->mount_crypt_stat = &ecryptfs_superblock_to_private( + crypt_stat->mount_crypt_stat = &ecryptfs_sb( ecryptfs_dentry->d_sb)->mount_crypt_stat; offset = ECRYPTFS_FILE_SIZE_BYTES; rc = contains_ecryptfs_marker(page_virt + offset); diff -puN fs/ecryptfs/ecryptfs_kernel.h~ecryptfs-superblock-cleanups fs/ecryptfs/ecryptfs_kernel.h --- a/fs/ecryptfs/ecryptfs_kernel.h~ecryptfs-superblock-cleanups +++ a/fs/ecryptfs/ecryptfs_kernel.h @@ -312,17 +312,9 @@ ecryptfs_set_inode_lower(struct inode *i ecryptfs_inode_to_private(inode)->wii_inode = lower_inode; } -static inline struct ecryptfs_sb_info * -ecryptfs_superblock_to_private(struct super_block *sb) +static inline struct ecryptfs_sb_info * ecryptfs_sb(struct super_block *sb) { - return (struct ecryptfs_sb_info *)sb->s_fs_info; -} - -static inline void -ecryptfs_set_superblock_private(struct super_block *sb, - struct ecryptfs_sb_info *sb_info) -{ - sb->s_fs_info = sb_info; + return sb->s_fs_info; } static inline struct super_block * diff -puN fs/ecryptfs/file.c~ecryptfs-superblock-cleanups fs/ecryptfs/file.c --- a/fs/ecryptfs/file.c~ecryptfs-superblock-cleanups +++ a/fs/ecryptfs/file.c @@ -234,7 +234,7 @@ static int ecryptfs_open(struct inode *i memset(file_info, 0, sizeof(*file_info)); lower_dentry = ecryptfs_dentry_to_lower(ecryptfs_dentry); crypt_stat = &ecryptfs_inode_to_private(inode)->crypt_stat; - mount_crypt_stat = &ecryptfs_superblock_to_private( + mount_crypt_stat = &ecryptfs_sb( ecryptfs_dentry->d_sb)->mount_crypt_stat; mutex_lock(&crypt_stat->cs_mutex); if (!ECRYPTFS_CHECK_FLAG(crypt_stat->flags, ECRYPTFS_POLICY_APPLIED)) { diff -puN fs/ecryptfs/keystore.c~ecryptfs-superblock-cleanups fs/ecryptfs/keystore.c --- a/fs/ecryptfs/keystore.c~ecryptfs-superblock-cleanups +++ a/fs/ecryptfs/keystore.c @@ -584,8 +584,7 @@ int ecryptfs_parse_packet_set(struct ecr struct list_head *walker; struct ecryptfs_auth_tok *chosen_auth_tok = NULL; struct ecryptfs_mount_crypt_stat *mount_crypt_stat = - &ecryptfs_superblock_to_private( - ecryptfs_dentry->d_sb)->mount_crypt_stat; + &ecryptfs_sb(ecryptfs_dentry->d_sb)->mount_crypt_stat; struct ecryptfs_auth_tok *candidate_auth_tok = NULL; size_t packet_size; struct ecryptfs_auth_tok *new_auth_tok; @@ -1002,8 +1001,7 @@ ecryptfs_generate_key_packet_set(char *d int rc = 0; struct ecryptfs_auth_tok *auth_tok; struct ecryptfs_mount_crypt_stat *mount_crypt_stat = - &ecryptfs_superblock_to_private( - ecryptfs_dentry->d_sb)->mount_crypt_stat; + &ecryptfs_sb(ecryptfs_dentry->d_sb)->mount_crypt_stat; size_t written; struct ecryptfs_key_record key_rec; diff -puN fs/ecryptfs/main.c~ecryptfs-superblock-cleanups fs/ecryptfs/main.c --- a/fs/ecryptfs/main.c~ecryptfs-superblock-cleanups +++ a/fs/ecryptfs/main.c @@ -202,7 +202,7 @@ static int ecryptfs_parse_options(struct struct key *auth_tok_key = NULL; struct ecryptfs_auth_tok *auth_tok = NULL; struct ecryptfs_mount_crypt_stat *mount_crypt_stat = - &ecryptfs_superblock_to_private(sb)->mount_crypt_stat; + &ecryptfs_sb(sb)->mount_crypt_stat; substring_t args[MAX_OPT_ARGS]; int token; char *sig_src; @@ -383,19 +383,17 @@ struct kmem_cache *ecryptfs_sb_info_cach static int ecryptfs_fill_super(struct super_block *sb, void *raw_data, int silent) { + struct ecryptfs_sb_info *sb_info; int rc = 0; /* Released in ecryptfs_put_super() */ - ecryptfs_set_superblock_private(sb, - kmem_cache_alloc(ecryptfs_sb_info_cache, - SLAB_KERNEL)); - if (!ecryptfs_superblock_to_private(sb)) { + sb_info = kmem_cache_zalloc(ecryptfs_sb_info_cache, GFP_KERNEL); + if (!sb_info) { ecryptfs_printk(KERN_WARNING, "Out of memory\n"); rc = -ENOMEM; goto out; } - memset(ecryptfs_superblock_to_private(sb), 0, - sizeof(struct ecryptfs_sb_info)); + sb->s_fs_info = sb_info; sb->s_op = &ecryptfs_sops; /* Released through deactivate_super(sb) from get_sb_nodev */ sb->s_root = d_alloc(NULL, &(const struct qstr) { diff -puN fs/ecryptfs/super.c~ecryptfs-superblock-cleanups fs/ecryptfs/super.c --- a/fs/ecryptfs/super.c~ecryptfs-superblock-cleanups +++ a/fs/ecryptfs/super.c @@ -102,11 +102,11 @@ void ecryptfs_init_inode(struct inode *i */ static void ecryptfs_put_super(struct super_block *sb) { - struct ecryptfs_sb_info *sb_info = ecryptfs_superblock_to_private(sb); + struct ecryptfs_sb_info *sb_info = ecryptfs_sb(sb); ecryptfs_destruct_mount_crypt_stat(&sb_info->mount_crypt_stat); kmem_cache_free(ecryptfs_sb_info_cache, sb_info); - ecryptfs_set_superblock_private(sb, NULL); + sb->s_fs_info = NULL; } /** _