simplify link_path_walk() tail
Al Viro [Tue, 15 Mar 2011 01:28:04 +0000 (21:28 -0400)]
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>

fs/namei.c

index a343163..9575d00 100644 (file)
@@ -1467,8 +1467,7 @@ last_component:
                        nd->last_type = type;
                        return 0;
                }
-               err = walk_component(nd, &next, &this, type,
-                                       lookup_flags & LOOKUP_FOLLOW);
+               err = walk_component(nd, &next, &this, type, LOOKUP_FOLLOW);
                if (err < 0)
                        return err;
                if (err) {
@@ -1476,11 +1475,6 @@ last_component:
                        if (err)
                                return err;
                }
-               if (lookup_flags & LOOKUP_DIRECTORY) {
-                       err = -ENOTDIR; 
-                       if (!nd->inode->i_op->lookup)
-                               break;
-               }
                return 0;
        }
        terminate_walk(nd);