OSDN Git Service
(root)
/
uclinux-h8
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
dfef6dc
)
nd->inode is not set on the second attempt in path_walk()
author
Al Viro
<viro@zeniv.linux.org.uk>
Wed, 9 Mar 2011 02:16:28 +0000
(21:16 -0500)
committer
Al Viro
<viro@zeniv.linux.org.uk>
Wed, 9 Mar 2011 02:16:28 +0000
(21:16 -0500)
We leave it at whatever it had been pointing to after the
first link_path_walk() had failed with -ESTALE. Things
do not work well after that...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namei.c
patch
|
blob
|
history
diff --git
a/fs/namei.c
b/fs/namei.c
index
a5e844f
..
a4689eb
100644
(file)
--- a/
fs/namei.c
+++ b/
fs/namei.c
@@
-1546,6
+1546,7
@@
static int path_walk(const char *name, struct nameidata *nd)
/* nd->path had been dropped */
current->total_link_count = 0;
nd->path = save;
+ nd->inode = save.dentry->d_inode;
path_get(&nd->path);
nd->flags |= LOOKUP_REVAL;
result = link_path_walk(name, nd);