diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2011-03-14 21:28:04 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-03-15 17:16:25 -0400 |
commit | ce0525449da56444948c368f52e10f3db0465338 (patch) | |
tree | df50f16b0af733738b39c9430145d94e35a2abdb /fs | |
parent | bd92d7fed877ed1e6997e4f3f13dbcd872947653 (diff) |
simplify link_path_walk() tail
Now that link_path_walk() is called without LOOKUP_PARENT
only from do_follow_link(), we can simplify the checks in
last component handling. First of all, checking if we'd
arrived to a directory is not needed - the caller will check
it anyway. And LOOKUP_FOLLOW is guaranteed to be there,
since we only get to that place with nd->depth > 0.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/namei.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/fs/namei.c b/fs/namei.c index a3431639e16..9575d003969 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -1467,8 +1467,7 @@ last_component: | |||
1467 | nd->last_type = type; | 1467 | nd->last_type = type; |
1468 | return 0; | 1468 | return 0; |
1469 | } | 1469 | } |
1470 | err = walk_component(nd, &next, &this, type, | 1470 | err = walk_component(nd, &next, &this, type, LOOKUP_FOLLOW); |
1471 | lookup_flags & LOOKUP_FOLLOW); | ||
1472 | if (err < 0) | 1471 | if (err < 0) |
1473 | return err; | 1472 | return err; |
1474 | if (err) { | 1473 | if (err) { |
@@ -1476,11 +1475,6 @@ last_component: | |||
1476 | if (err) | 1475 | if (err) |
1477 | return err; | 1476 | return err; |
1478 | } | 1477 | } |
1479 | if (lookup_flags & LOOKUP_DIRECTORY) { | ||
1480 | err = -ENOTDIR; | ||
1481 | if (!nd->inode->i_op->lookup) | ||
1482 | break; | ||
1483 | } | ||
1484 | return 0; | 1478 | return 0; |
1485 | } | 1479 | } |
1486 | terminate_walk(nd); | 1480 | terminate_walk(nd); |