From b89046a022359a44ae6b2ecad8ffc0ff7a5e2fef Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Thu, 30 Jul 2009 12:18:15 -0700 Subject: [PATCH] uclient: Fixes refcounting bug when you chdir to cwd. --- src/client/Client.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 6b9d5b9d0c597..7fd4ca17e9419 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -4229,10 +4229,11 @@ int Client::chdir(const char *relpath) int r = path_walk(path, &in); if (r < 0) return r; - if (cwd && cwd != in) + if (cwd != in) { + in->get(); put_inode(cwd); - cwd = in; - in->get(); + cwd = in; + } dout(3) << "chdir(" << relpath << ") cwd now " << cwd->ino << dendl; return 0; } -- 2.39.5