Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
nexedi
linux
Commits
52f21999
Commit
52f21999
authored
12 years ago
by
Al Viro
Browse files
Options
Download
Email Patches
Plain Diff
ecryptfs: close rmmod race
Signed-off-by:
Al Viro
<
viro@zeniv.linux.org.uk
>
parent
de55eb1d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
2 additions
and
12 deletions
+2
-12
fs/ecryptfs/miscdev.c
fs/ecryptfs/miscdev.c
+2
-12
No files found.
fs/ecryptfs/miscdev.c
View file @
52f21999
...
...
@@ -80,13 +80,6 @@ ecryptfs_miscdev_open(struct inode *inode, struct file *file)
int
rc
;
mutex_lock
(
&
ecryptfs_daemon_hash_mux
);
rc
=
try_module_get
(
THIS_MODULE
);
if
(
rc
==
0
)
{
rc
=
-
EIO
;
printk
(
KERN_ERR
"%s: Error attempting to increment module use "
"count; rc = [%d]
\n
"
,
__func__
,
rc
);
goto
out_unlock_daemon_list
;
}
rc
=
ecryptfs_find_daemon_by_euid
(
&
daemon
);
if
(
!
rc
)
{
rc
=
-
EINVAL
;
...
...
@@ -96,7 +89,7 @@ ecryptfs_miscdev_open(struct inode *inode, struct file *file)
if
(
rc
)
{
printk
(
KERN_ERR
"%s: Error attempting to spawn daemon; "
"rc = [%d]
\n
"
,
__func__
,
rc
);
goto
out_
module_put_
unlock_daemon_list
;
goto
out_unlock_daemon_list
;
}
mutex_lock
(
&
daemon
->
mux
);
if
(
daemon
->
flags
&
ECRYPTFS_DAEMON_MISCDEV_OPEN
)
{
...
...
@@ -108,9 +101,6 @@ ecryptfs_miscdev_open(struct inode *inode, struct file *file)
atomic_inc
(
&
ecryptfs_num_miscdev_opens
);
out_unlock_daemon:
mutex_unlock
(
&
daemon
->
mux
);
out_module_put_unlock_daemon_list:
if
(
rc
)
module_put
(
THIS_MODULE
);
out_unlock_daemon_list:
mutex_unlock
(
&
ecryptfs_daemon_hash_mux
);
return
rc
;
...
...
@@ -147,7 +137,6 @@ ecryptfs_miscdev_release(struct inode *inode, struct file *file)
"bug.
\n
"
,
__func__
,
rc
);
BUG
();
}
module_put
(
THIS_MODULE
);
return
rc
;
}
...
...
@@ -471,6 +460,7 @@ ecryptfs_miscdev_write(struct file *file, const char __user *buf,
static
const
struct
file_operations
ecryptfs_miscdev_fops
=
{
.
owner
=
THIS_MODULE
,
.
open
=
ecryptfs_miscdev_open
,
.
poll
=
ecryptfs_miscdev_poll
,
.
read
=
ecryptfs_miscdev_read
,
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment