From 83bd70aec8a69c1e637655f54578dfb8e6d837f2 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh-Weinraub Date: Sun, 13 Jan 2008 21:07:24 +0200 Subject: [PATCH] fix dput in the wrong place --- src/kernel/dir.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/kernel/dir.c b/src/kernel/dir.c index 39427313738d1..bb5f255d9936c 100644 --- a/src/kernel/dir.c +++ b/src/kernel/dir.c @@ -262,7 +262,7 @@ static int ceph_fill_trace(struct super_block *sb, struct ceph_mds_reply_info *p { int err = 0; struct qstr dname; - struct dentry *dn, *parent; + struct dentry *dn, *parent = NULL; struct inode *in; int i = 0; @@ -292,6 +292,7 @@ static int ceph_fill_trace(struct super_block *sb, struct ceph_mds_reply_info *p } for (++i; itrace_nr; i++) { + dput(parent); parent = dn; dname.name = prinfo->trace_dname[i]; @@ -300,8 +301,6 @@ static int ceph_fill_trace(struct super_block *sb, struct ceph_mds_reply_info *p dn = d_lookup(parent, &dname); - dput(parent); - dout(30, "calling d_lookup on parent=%p name=%s returned %p\n", parent, dname.name, dn); if (!dn) { @@ -344,6 +343,7 @@ static int ceph_fill_trace(struct super_block *sb, struct ceph_mds_reply_info *p } + dput(parent); dput(dn); if (lastinode) { -- 2.39.5