提交 41ced6dc 编写于 作者: A Al Viro

switch gfs2, close races

Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
上级 1c929cfe
...@@ -126,12 +126,7 @@ static int gfs2_get_name(struct dentry *parent, char *name, ...@@ -126,12 +126,7 @@ static int gfs2_get_name(struct dentry *parent, char *name,
static struct dentry *gfs2_get_parent(struct dentry *child) static struct dentry *gfs2_get_parent(struct dentry *child)
{ {
struct dentry *dentry; return d_obtain_alias(gfs2_lookupi(child->d_inode, &gfs2_qdotdot, 1));
dentry = d_obtain_alias(gfs2_lookupi(child->d_inode, &gfs2_qdotdot, 1));
if (!IS_ERR(dentry))
d_set_d_op(dentry, &gfs2_dops);
return dentry;
} }
static struct dentry *gfs2_get_dentry(struct super_block *sb, static struct dentry *gfs2_get_dentry(struct super_block *sb,
...@@ -139,7 +134,6 @@ static struct dentry *gfs2_get_dentry(struct super_block *sb, ...@@ -139,7 +134,6 @@ static struct dentry *gfs2_get_dentry(struct super_block *sb,
{ {
struct gfs2_sbd *sdp = sb->s_fs_info; struct gfs2_sbd *sdp = sb->s_fs_info;
struct inode *inode; struct inode *inode;
struct dentry *dentry;
inode = gfs2_ilookup(sb, inum->no_addr); inode = gfs2_ilookup(sb, inum->no_addr);
if (inode) { if (inode) {
...@@ -156,10 +150,7 @@ static struct dentry *gfs2_get_dentry(struct super_block *sb, ...@@ -156,10 +150,7 @@ static struct dentry *gfs2_get_dentry(struct super_block *sb,
return ERR_CAST(inode); return ERR_CAST(inode);
out_inode: out_inode:
dentry = d_obtain_alias(inode); return d_obtain_alias(inode);
if (!IS_ERR(dentry))
d_set_d_op(dentry, &gfs2_dops);
return dentry;
} }
static struct dentry *gfs2_fh_to_dentry(struct super_block *sb, struct fid *fid, static struct dentry *gfs2_fh_to_dentry(struct super_block *sb, struct fid *fid,
......
...@@ -440,7 +440,6 @@ static int gfs2_lookup_root(struct super_block *sb, struct dentry **dptr, ...@@ -440,7 +440,6 @@ static int gfs2_lookup_root(struct super_block *sb, struct dentry **dptr,
iput(inode); iput(inode);
return -ENOMEM; return -ENOMEM;
} }
d_set_d_op(dentry, &gfs2_dops);
*dptr = dentry; *dptr = dentry;
return 0; return 0;
} }
...@@ -1106,6 +1105,7 @@ static int fill_super(struct super_block *sb, struct gfs2_args *args, int silent ...@@ -1106,6 +1105,7 @@ static int fill_super(struct super_block *sb, struct gfs2_args *args, int silent
sb->s_magic = GFS2_MAGIC; sb->s_magic = GFS2_MAGIC;
sb->s_op = &gfs2_super_ops; sb->s_op = &gfs2_super_ops;
sb->s_d_op = &gfs2_dops;
sb->s_export_op = &gfs2_export_ops; sb->s_export_op = &gfs2_export_ops;
sb->s_xattr = gfs2_xattr_handlers; sb->s_xattr = gfs2_xattr_handlers;
sb->s_qcop = &gfs2_quotactl_ops; sb->s_qcop = &gfs2_quotactl_ops;
......
...@@ -106,8 +106,6 @@ static struct dentry *gfs2_lookup(struct inode *dir, struct dentry *dentry, ...@@ -106,8 +106,6 @@ static struct dentry *gfs2_lookup(struct inode *dir, struct dentry *dentry,
{ {
struct inode *inode = NULL; struct inode *inode = NULL;
d_set_d_op(dentry, &gfs2_dops);
inode = gfs2_lookupi(dir, &dentry->d_name, 0); inode = gfs2_lookupi(dir, &dentry->d_name, 0);
if (inode && IS_ERR(inode)) if (inode && IS_ERR(inode))
return ERR_CAST(inode); return ERR_CAST(inode);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册