From 785e6e5c19bdb6f9b7327af4bc379807397dbd87 Mon Sep 17 00:00:00 2001 From: sageweil Date: Fri, 16 Mar 2007 00:21:18 +0000 Subject: [PATCH] * fixed bug with lost waiters on null dentries (e.g. mknod race) git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1251 29311d96-e01e-0410-9327-a35deaab8ce9 --- trunk/ceph/mds/Locker.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/trunk/ceph/mds/Locker.cc b/trunk/ceph/mds/Locker.cc index 7cecbfe785fbc..d60f58011efac 100644 --- a/trunk/ceph/mds/Locker.cc +++ b/trunk/ceph/mds/Locker.cc @@ -1850,8 +1850,14 @@ void Locker::dentry_xlock_finish(CDentry *dn, bool quiet) // unpin dir dn->dir->auth_unpin(); + + // kick waiters + list finished; + dn->dir->take_waiting(CDIR_WAIT_DNREAD, finished); + mds->queue_finished(finished); } + /* * onfinish->finish() will be called with * 0 on successful xlock, -- 2.39.5