diff options
Diffstat (limited to 'fs/ecryptfs/miscdev.c')
-rw-r--r-- | fs/ecryptfs/miscdev.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c index 047ac609695b..efd95a0ed1ea 100644 --- a/fs/ecryptfs/miscdev.c +++ b/fs/ecryptfs/miscdev.c | |||
@@ -47,8 +47,7 @@ ecryptfs_miscdev_poll(struct file *file, poll_table *pt) | |||
47 | 47 | ||
48 | mutex_lock(&ecryptfs_daemon_hash_mux); | 48 | mutex_lock(&ecryptfs_daemon_hash_mux); |
49 | /* TODO: Just use file->private_data? */ | 49 | /* TODO: Just use file->private_data? */ |
50 | rc = ecryptfs_find_daemon_by_euid(&daemon, euid, | 50 | rc = ecryptfs_find_daemon_by_euid(&daemon, euid, current_user_ns()); |
51 | current->nsproxy->user_ns); | ||
52 | BUG_ON(rc || !daemon); | 51 | BUG_ON(rc || !daemon); |
53 | mutex_lock(&daemon->mux); | 52 | mutex_lock(&daemon->mux); |
54 | mutex_unlock(&ecryptfs_daemon_hash_mux); | 53 | mutex_unlock(&ecryptfs_daemon_hash_mux); |
@@ -95,11 +94,9 @@ ecryptfs_miscdev_open(struct inode *inode, struct file *file) | |||
95 | "count; rc = [%d]\n", __func__, rc); | 94 | "count; rc = [%d]\n", __func__, rc); |
96 | goto out_unlock_daemon_list; | 95 | goto out_unlock_daemon_list; |
97 | } | 96 | } |
98 | rc = ecryptfs_find_daemon_by_euid(&daemon, euid, | 97 | rc = ecryptfs_find_daemon_by_euid(&daemon, euid, current_user_ns()); |
99 | current->nsproxy->user_ns); | ||
100 | if (rc || !daemon) { | 98 | if (rc || !daemon) { |
101 | rc = ecryptfs_spawn_daemon(&daemon, euid, | 99 | rc = ecryptfs_spawn_daemon(&daemon, euid, current_user_ns(), |
102 | current->nsproxy->user_ns, | ||
103 | task_pid(current)); | 100 | task_pid(current)); |
104 | if (rc) { | 101 | if (rc) { |
105 | printk(KERN_ERR "%s: Error attempting to spawn daemon; " | 102 | printk(KERN_ERR "%s: Error attempting to spawn daemon; " |
@@ -153,8 +150,7 @@ ecryptfs_miscdev_release(struct inode *inode, struct file *file) | |||
153 | int rc; | 150 | int rc; |
154 | 151 | ||
155 | mutex_lock(&ecryptfs_daemon_hash_mux); | 152 | mutex_lock(&ecryptfs_daemon_hash_mux); |
156 | rc = ecryptfs_find_daemon_by_euid(&daemon, euid, | 153 | rc = ecryptfs_find_daemon_by_euid(&daemon, euid, current_user_ns()); |
157 | current->nsproxy->user_ns); | ||
158 | BUG_ON(rc || !daemon); | 154 | BUG_ON(rc || !daemon); |
159 | mutex_lock(&daemon->mux); | 155 | mutex_lock(&daemon->mux); |
160 | BUG_ON(daemon->pid != task_pid(current)); | 156 | BUG_ON(daemon->pid != task_pid(current)); |
@@ -254,8 +250,7 @@ ecryptfs_miscdev_read(struct file *file, char __user *buf, size_t count, | |||
254 | 250 | ||
255 | mutex_lock(&ecryptfs_daemon_hash_mux); | 251 | mutex_lock(&ecryptfs_daemon_hash_mux); |
256 | /* TODO: Just use file->private_data? */ | 252 | /* TODO: Just use file->private_data? */ |
257 | rc = ecryptfs_find_daemon_by_euid(&daemon, euid, | 253 | rc = ecryptfs_find_daemon_by_euid(&daemon, euid, current_user_ns()); |
258 | current->nsproxy->user_ns); | ||
259 | BUG_ON(rc || !daemon); | 254 | BUG_ON(rc || !daemon); |
260 | mutex_lock(&daemon->mux); | 255 | mutex_lock(&daemon->mux); |
261 | if (daemon->flags & ECRYPTFS_DAEMON_ZOMBIE) { | 256 | if (daemon->flags & ECRYPTFS_DAEMON_ZOMBIE) { |
@@ -295,7 +290,7 @@ check_list: | |||
295 | goto check_list; | 290 | goto check_list; |
296 | } | 291 | } |
297 | BUG_ON(euid != daemon->euid); | 292 | BUG_ON(euid != daemon->euid); |
298 | BUG_ON(current->nsproxy->user_ns != daemon->user_ns); | 293 | BUG_ON(current_user_ns() != daemon->user_ns); |
299 | BUG_ON(task_pid(current) != daemon->pid); | 294 | BUG_ON(task_pid(current) != daemon->pid); |
300 | msg_ctx = list_first_entry(&daemon->msg_ctx_out_queue, | 295 | msg_ctx = list_first_entry(&daemon->msg_ctx_out_queue, |
301 | struct ecryptfs_msg_ctx, daemon_out_list); | 296 | struct ecryptfs_msg_ctx, daemon_out_list); |
@@ -468,7 +463,7 @@ ecryptfs_miscdev_write(struct file *file, const char __user *buf, | |||
468 | goto out_free; | 463 | goto out_free; |
469 | } | 464 | } |
470 | rc = ecryptfs_miscdev_response(&data[i], packet_size, | 465 | rc = ecryptfs_miscdev_response(&data[i], packet_size, |
471 | euid, current->nsproxy->user_ns, | 466 | euid, current_user_ns(), |
472 | task_pid(current), seq); | 467 | task_pid(current), seq); |
473 | if (rc) | 468 | if (rc) |
474 | printk(KERN_WARNING "%s: Failed to deliver miscdev " | 469 | printk(KERN_WARNING "%s: Failed to deliver miscdev " |