OLD | NEW |
1 /** | 1 /** |
2 * eCryptfs: Linux filesystem encryption layer | 2 * eCryptfs: Linux filesystem encryption layer |
3 * | 3 * |
4 * Copyright (C) 1997-2003 Erez Zadok | 4 * Copyright (C) 1997-2003 Erez Zadok |
5 * Copyright (C) 2001-2003 Stony Brook University | 5 * Copyright (C) 2001-2003 Stony Brook University |
6 * Copyright (C) 2004-2006 International Business Machines Corp. | 6 * Copyright (C) 2004-2006 International Business Machines Corp. |
7 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> | 7 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> |
8 * Michael C. Thompson <mcthomps@us.ibm.com> | 8 * Michael C. Thompson <mcthomps@us.ibm.com> |
9 * | 9 * |
10 * This program is free software; you can redistribute it and/or | 10 * This program is free software; you can redistribute it and/or |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 */ | 48 */ |
49 static struct inode *ecryptfs_alloc_inode(struct super_block *sb) | 49 static struct inode *ecryptfs_alloc_inode(struct super_block *sb) |
50 { | 50 { |
51 struct ecryptfs_inode_info *inode_info; | 51 struct ecryptfs_inode_info *inode_info; |
52 struct inode *inode = NULL; | 52 struct inode *inode = NULL; |
53 | 53 |
54 inode_info = kmem_cache_alloc(ecryptfs_inode_info_cache, GFP_KERNEL); | 54 inode_info = kmem_cache_alloc(ecryptfs_inode_info_cache, GFP_KERNEL); |
55 if (unlikely(!inode_info)) | 55 if (unlikely(!inode_info)) |
56 goto out; | 56 goto out; |
57 ecryptfs_init_crypt_stat(&inode_info->crypt_stat); | 57 ecryptfs_init_crypt_stat(&inode_info->crypt_stat); |
| 58 mutex_init(&inode_info->lower_file_mutex); |
58 inode_info->lower_file = NULL; | 59 inode_info->lower_file = NULL; |
59 inode = &inode_info->vfs_inode; | 60 inode = &inode_info->vfs_inode; |
60 out: | 61 out: |
61 return inode; | 62 return inode; |
62 } | 63 } |
63 | 64 |
64 /** | 65 /** |
65 * ecryptfs_destroy_inode | 66 * ecryptfs_destroy_inode |
66 * @inode: The ecryptfs inode | 67 * @inode: The ecryptfs inode |
67 * | 68 * |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 seq_printf(m, ",ecryptfs_encrypted_view"); | 193 seq_printf(m, ",ecryptfs_encrypted_view"); |
193 if (mount_crypt_stat->flags & ECRYPTFS_UNLINK_SIGS) | 194 if (mount_crypt_stat->flags & ECRYPTFS_UNLINK_SIGS) |
194 seq_printf(m, ",ecryptfs_unlink_sigs"); | 195 seq_printf(m, ",ecryptfs_unlink_sigs"); |
195 | 196 |
196 return 0; | 197 return 0; |
197 } | 198 } |
198 | 199 |
199 const struct super_operations ecryptfs_sops = { | 200 const struct super_operations ecryptfs_sops = { |
200 .alloc_inode = ecryptfs_alloc_inode, | 201 .alloc_inode = ecryptfs_alloc_inode, |
201 .destroy_inode = ecryptfs_destroy_inode, | 202 .destroy_inode = ecryptfs_destroy_inode, |
202 » .drop_inode = generic_drop_inode, | 203 » .drop_inode = generic_delete_inode, |
203 .put_super = ecryptfs_put_super, | 204 .put_super = ecryptfs_put_super, |
204 .statfs = ecryptfs_statfs, | 205 .statfs = ecryptfs_statfs, |
205 .remount_fs = NULL, | 206 .remount_fs = NULL, |
206 .clear_inode = ecryptfs_clear_inode, | 207 .clear_inode = ecryptfs_clear_inode, |
207 .show_options = ecryptfs_show_options | 208 .show_options = ecryptfs_show_options |
208 }; | 209 }; |
OLD | NEW |