aboutsummaryrefslogtreecommitdiffstats
path: root/fs/namei.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2009-12-24 02:05:43 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2010-03-05 09:01:16 -0500
commit27bff34300482632caf52ff589a4e7d755b32539 (patch)
tree49c6b38dd0c6ff2eebf0f0dad4c73a6539d52bbc /fs/namei.c
parent3343eb8209cc69f0d2059f8c484ad7a3e1834c0b (diff)
unroll do_last: loop in do_filp_open()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/namei.c')
-rw-r--r--fs/namei.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/namei.c b/fs/namei.c
index bff27c08134c..fc6bed7215c9 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1845,8 +1845,6 @@ reval:
1845 mutex_lock(&dir->d_inode->i_mutex); 1845 mutex_lock(&dir->d_inode->i_mutex);
1846 path.dentry = lookup_hash(&nd); 1846 path.dentry = lookup_hash(&nd);
1847 path.mnt = nd.path.mnt; 1847 path.mnt = nd.path.mnt;
1848
1849do_last:
1850 filp = do_last(&nd, &path, open_flag, flag, acc_mode, mode, 1848 filp = do_last(&nd, &path, open_flag, flag, acc_mode, mode,
1851 pathname, dir, &is_link); 1849 pathname, dir, &is_link);
1852 if (is_link) 1850 if (is_link)
@@ -1926,7 +1924,13 @@ do_link:
1926 path.dentry = lookup_hash(&nd); 1924 path.dentry = lookup_hash(&nd);
1927 path.mnt = nd.path.mnt; 1925 path.mnt = nd.path.mnt;
1928 __putname(nd.last.name); 1926 __putname(nd.last.name);
1929 goto do_last; 1927 filp = do_last(&nd, &path, open_flag, flag, acc_mode, mode,
1928 pathname, dir, &is_link);
1929 if (is_link)
1930 goto do_link;
1931 if (nd.root.mnt)
1932 path_put(&nd.root);
1933 return filp;
1930} 1934}
1931 1935
1932/** 1936/**