]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: fix SimpleLock::try_clear_more()
authorSage Weil <sage@newdream.net>
Tue, 16 Mar 2010 21:28:05 +0000 (14:28 -0700)
committerSage Weil <sage@newdream.net>
Tue, 16 Mar 2010 21:28:05 +0000 (14:28 -0700)
commit1d72d1888a290fc303fd09bab63bbfa3946d1629
tree26abae8bcdcaab0accd6f9bce3d78bf8a97e8da5
parenteb47abf28aa800de7ee796e04499e536a5e7a193
mds: fix SimpleLock::try_clear_more()

We were dropping gather state on the floor, which resulted in
general confusion and errors like this

10.03.16 14:17:17.622280 mds0.locker handle_simple_lock lock(a=lockack dn 1000000019c/NEWS1_1B.PRN snap head) on (dn xlock x=1 by 0x307c050) [dentry #1/clients/client2/~dmtmp/WORDPRO/NEWS1_1B.PRN [2,head] auth{1=1} (dn xlock x=1 by 0x307c050) v=90 inode=0x7f2fe90a7980 | nref=5 0x7f2fe0349b80]
mds/Locker.cc: In function 'void Locker::handle_simple_lock(SimpleLock*, MLock*)':
mds/Locker.cc:2424: FAILED assert(lock->get_state() == 7 || lock->get_state() == 12)
 1: (Locker::handle_simple_lock(SimpleLock*, MLock*)+0x374) [0x8607bc]
 2: (Locker::handle_lock(MLock*)+0x18b) [0x861b91]
 3: (Locker::dispatch(Message*)+0x41) [0x86470b]
 4: (MDS::_dispatch(Message*)+0x1b42) [0x72ce68]
 5: (MDS::ms_dispatch(Message*)+0x2f) [0x72e1e9]
 6: (Messenger::ms_deliver_dispatch(Message*)+0x55) [0x72086b]
 7: (SimpleMessenger::dispatch_entry()+0x4f4) [0x70d50e]
 8: (SimpleMessenger::DispatchThread::entry()+0x29) [0x7095bd]
 9: (Thread::_entry_func(void*)+0x20) [0x71a9e1]
 10: /lib/libpthread.so.0 [0x7f2fe8d6573a]
 11: (clone()+0x6d) [0x7f2fe7f906dd]
 NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
src/mds/SimpleLock.h