aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6/xfs_export.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_export.c')
-rw-r--r--fs/xfs/linux-2.6/xfs_export.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/xfs/linux-2.6/xfs_export.c b/fs/xfs/linux-2.6/xfs_export.c
index 21f0e8257590..66a9a9e76cbe 100644
--- a/fs/xfs/linux-2.6/xfs_export.c
+++ b/fs/xfs/linux-2.6/xfs_export.c
@@ -213,17 +213,16 @@ xfs_fs_get_parent(
213 struct dentry *child) 213 struct dentry *child)
214{ 214{
215 int error; 215 int error;
216 bhv_vnode_t *cvp; 216 struct xfs_inode *cip;
217 struct dentry *parent; 217 struct dentry *parent;
218 218
219 cvp = NULL; 219 error = xfs_lookup(XFS_I(child->d_inode), &dotdot, &cip);
220 error = xfs_lookup(XFS_I(child->d_inode), &dotdot, &cvp);
221 if (unlikely(error)) 220 if (unlikely(error))
222 return ERR_PTR(-error); 221 return ERR_PTR(-error);
223 222
224 parent = d_alloc_anon(vn_to_inode(cvp)); 223 parent = d_alloc_anon(cip->i_vnode);
225 if (unlikely(!parent)) { 224 if (unlikely(!parent)) {
226 VN_RELE(cvp); 225 iput(cip->i_vnode);
227 return ERR_PTR(-ENOMEM); 226 return ERR_PTR(-ENOMEM);
228 } 227 }
229 return parent; 228 return parent;