Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
ee3efa91
Commit
ee3efa91
authored
Jun 08, 2012
by
Al Viro
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
__d_unalias() should refuse to move mountpoints
Signed-off-by:
Al Viro
<
viro@zeniv.linux.org.uk
>
parent
e77fb7ce
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
5 additions
and
4 deletions
+5
-4
fs/dcache.c
fs/dcache.c
+5
-4
No files found.
fs/dcache.c
View file @
ee3efa91
...
...
@@ -2387,14 +2387,13 @@ static struct dentry *__d_unalias(struct inode *inode,
struct
dentry
*
dentry
,
struct
dentry
*
alias
)
{
struct
mutex
*
m1
=
NULL
,
*
m2
=
NULL
;
struct
dentry
*
ret
;
struct
dentry
*
ret
=
ERR_PTR
(
-
EBUSY
)
;
/* If alias and dentry share a parent, then no extra locks required */
if
(
alias
->
d_parent
==
dentry
->
d_parent
)
goto
out_unalias
;
/* See lock_rename() */
ret
=
ERR_PTR
(
-
EBUSY
);
if
(
!
mutex_trylock
(
&
dentry
->
d_sb
->
s_vfs_rename_mutex
))
goto
out_err
;
m1
=
&
dentry
->
d_sb
->
s_vfs_rename_mutex
;
...
...
@@ -2402,8 +2401,10 @@ static struct dentry *__d_unalias(struct inode *inode,
goto
out_err
;
m2
=
&
alias
->
d_parent
->
d_inode
->
i_mutex
;
out_unalias:
if
(
likely
(
!
d_mountpoint
(
alias
)))
{
__d_move
(
alias
,
dentry
);
ret
=
alias
;
}
out_err:
spin_unlock
(
&
inode
->
i_lock
);
if
(
m2
)
...
...
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