aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/export.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2010-12-18 12:06:56 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2011-01-12 20:02:46 -0500
commit41ced6dcf3dc6b901716fda0dc8de3536da4d39b (patch)
treecffec5e5bde8d8a580c03cef8eea2ddb9a821d8a /fs/gfs2/export.c
parent1c929cfe6d8f2087a337a868fbf6c38d56bb4889 (diff)
switch gfs2, close races
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/gfs2/export.c')
-rw-r--r--fs/gfs2/export.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/fs/gfs2/export.c b/fs/gfs2/export.c
index 97012ecff560..9023db8184f9 100644
--- a/fs/gfs2/export.c
+++ b/fs/gfs2/export.c
@@ -126,12 +126,7 @@ static int gfs2_get_name(struct dentry *parent, char *name,
126 126
127static struct dentry *gfs2_get_parent(struct dentry *child) 127static struct dentry *gfs2_get_parent(struct dentry *child)
128{ 128{
129 struct dentry *dentry; 129 return d_obtain_alias(gfs2_lookupi(child->d_inode, &gfs2_qdotdot, 1));
130
131 dentry = d_obtain_alias(gfs2_lookupi(child->d_inode, &gfs2_qdotdot, 1));
132 if (!IS_ERR(dentry))
133 d_set_d_op(dentry, &gfs2_dops);
134 return dentry;
135} 130}
136 131
137static struct dentry *gfs2_get_dentry(struct super_block *sb, 132static struct dentry *gfs2_get_dentry(struct super_block *sb,
@@ -139,7 +134,6 @@ static struct dentry *gfs2_get_dentry(struct super_block *sb,
139{ 134{
140 struct gfs2_sbd *sdp = sb->s_fs_info; 135 struct gfs2_sbd *sdp = sb->s_fs_info;
141 struct inode *inode; 136 struct inode *inode;
142 struct dentry *dentry;
143 137
144 inode = gfs2_ilookup(sb, inum->no_addr); 138 inode = gfs2_ilookup(sb, inum->no_addr);
145 if (inode) { 139 if (inode) {
@@ -156,10 +150,7 @@ static struct dentry *gfs2_get_dentry(struct super_block *sb,
156 return ERR_CAST(inode); 150 return ERR_CAST(inode);
157 151
158out_inode: 152out_inode:
159 dentry = d_obtain_alias(inode); 153 return d_obtain_alias(inode);
160 if (!IS_ERR(dentry))
161 d_set_d_op(dentry, &gfs2_dops);
162 return dentry;
163} 154}
164 155
165static struct dentry *gfs2_fh_to_dentry(struct super_block *sb, struct fid *fid, 156static struct dentry *gfs2_fh_to_dentry(struct super_block *sb, struct fid *fid,