diff options
Diffstat (limited to 'fs/gfs2/inode.h')
-rw-r--r-- | fs/gfs2/inode.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/fs/gfs2/inode.h b/fs/gfs2/inode.h index 4df7da51f715..e42ae38d6778 100644 --- a/fs/gfs2/inode.h +++ b/fs/gfs2/inode.h | |||
@@ -60,14 +60,23 @@ int gfs2_setattr_simple(struct gfs2_inode *ip, struct iattr *attr); | |||
60 | 60 | ||
61 | int gfs2_repermission(struct inode *inode, int mask, struct nameidata *nd); | 61 | int gfs2_repermission(struct inode *inode, int mask, struct nameidata *nd); |
62 | 62 | ||
63 | static inline int gfs2_lookup_simple(struct gfs2_inode *dip, char *name, | 63 | static inline int gfs2_lookup_simple(struct inode *dip, char *name, |
64 | struct gfs2_inode **ipp) | 64 | struct inode **ipp) |
65 | { | 65 | { |
66 | struct gfs2_inode *ip; | ||
66 | struct qstr qstr; | 67 | struct qstr qstr; |
68 | int err; | ||
67 | memset(&qstr, 0, sizeof(struct qstr)); | 69 | memset(&qstr, 0, sizeof(struct qstr)); |
68 | qstr.name = name; | 70 | qstr.name = name; |
69 | qstr.len = strlen(name); | 71 | qstr.len = strlen(name); |
70 | return gfs2_lookupi(dip, &qstr, 1, ipp); | 72 | err = gfs2_lookupi(get_v2ip(dip), &qstr, 1, &ip); |
73 | if (err == 0) { | ||
74 | *ipp = gfs2_ip2v(ip); | ||
75 | if (*ipp == NULL) | ||
76 | err = -ENOMEM; | ||
77 | gfs2_inode_put(ip); | ||
78 | } | ||
79 | return err; | ||
71 | } | 80 | } |
72 | 81 | ||
73 | #endif /* __INODE_DOT_H__ */ | 82 | #endif /* __INODE_DOT_H__ */ |