diff options
| -rw-r--r-- | fs/ecryptfs/Kconfig | 3 | ||||
| -rw-r--r-- | fs/ecryptfs/main.c | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/fs/ecryptfs/Kconfig b/fs/ecryptfs/Kconfig index 8aadb99b7634..1cd6d9d3e29a 100644 --- a/fs/ecryptfs/Kconfig +++ b/fs/ecryptfs/Kconfig | |||
| @@ -1,8 +1,9 @@ | |||
| 1 | config ECRYPT_FS | 1 | config ECRYPT_FS |
| 2 | tristate "eCrypt filesystem layer support (EXPERIMENTAL)" | 2 | tristate "eCrypt filesystem layer support (EXPERIMENTAL)" |
| 3 | depends on EXPERIMENTAL && KEYS && NET | 3 | depends on EXPERIMENTAL && KEYS && CRYPTO |
| 4 | select CRYPTO_ECB | 4 | select CRYPTO_ECB |
| 5 | select CRYPTO_CBC | 5 | select CRYPTO_CBC |
| 6 | select CRYPTO_MD5 | ||
| 6 | help | 7 | help |
| 7 | Encrypted filesystem that operates on the VFS layer. See | 8 | Encrypted filesystem that operates on the VFS layer. See |
| 8 | <file:Documentation/filesystems/ecryptfs.txt> to learn more about | 9 | <file:Documentation/filesystems/ecryptfs.txt> to learn more about |
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c index 101fe4c7b1ee..c6ac85d6c701 100644 --- a/fs/ecryptfs/main.c +++ b/fs/ecryptfs/main.c | |||
| @@ -35,6 +35,7 @@ | |||
| 35 | #include <linux/key.h> | 35 | #include <linux/key.h> |
| 36 | #include <linux/parser.h> | 36 | #include <linux/parser.h> |
| 37 | #include <linux/fs_stack.h> | 37 | #include <linux/fs_stack.h> |
| 38 | #include <linux/ima.h> | ||
| 38 | #include "ecryptfs_kernel.h" | 39 | #include "ecryptfs_kernel.h" |
| 39 | 40 | ||
| 40 | /** | 41 | /** |
| @@ -118,6 +119,7 @@ int ecryptfs_init_persistent_file(struct dentry *ecryptfs_dentry) | |||
| 118 | const struct cred *cred = current_cred(); | 119 | const struct cred *cred = current_cred(); |
| 119 | struct ecryptfs_inode_info *inode_info = | 120 | struct ecryptfs_inode_info *inode_info = |
| 120 | ecryptfs_inode_to_private(ecryptfs_dentry->d_inode); | 121 | ecryptfs_inode_to_private(ecryptfs_dentry->d_inode); |
| 122 | int opened_lower_file = 0; | ||
| 121 | int rc = 0; | 123 | int rc = 0; |
| 122 | 124 | ||
| 123 | mutex_lock(&inode_info->lower_file_mutex); | 125 | mutex_lock(&inode_info->lower_file_mutex); |
| @@ -134,9 +136,12 @@ int ecryptfs_init_persistent_file(struct dentry *ecryptfs_dentry) | |||
| 134 | "for lower_dentry [0x%p] and lower_mnt [0x%p]; " | 136 | "for lower_dentry [0x%p] and lower_mnt [0x%p]; " |
| 135 | "rc = [%d]\n", lower_dentry, lower_mnt, rc); | 137 | "rc = [%d]\n", lower_dentry, lower_mnt, rc); |
| 136 | inode_info->lower_file = NULL; | 138 | inode_info->lower_file = NULL; |
| 137 | } | 139 | } else |
| 140 | opened_lower_file = 1; | ||
| 138 | } | 141 | } |
| 139 | mutex_unlock(&inode_info->lower_file_mutex); | 142 | mutex_unlock(&inode_info->lower_file_mutex); |
| 143 | if (opened_lower_file) | ||
| 144 | ima_counts_get(inode_info->lower_file); | ||
| 140 | return rc; | 145 | return rc; |
| 141 | } | 146 | } |
| 142 | 147 | ||
