Bug #4679 » 0002-mds-change-XLOCK-XLOCKDONE-s-next-state-to-LOCK.patch
src/mds/Locker.cc | ||
---|---|---|
(static_cast<ScatterLock *>(lock))->clear_scatter_wanted();
|
||
break;
|
||
case LOCK_XLOCK:
|
||
case LOCK_XLOCKDONE:
|
||
if (next != LOCK_SYNC)
|
||
break;
|
||
// fall-thru
|
||
// to sync
|
||
case LOCK_EXCL_SYNC:
|
||
case LOCK_LOCK_SYNC:
|
||
case LOCK_MIX_SYNC:
|
||
case LOCK_XSYN_SYNC:
|
||
case LOCK_XLOCK:
|
||
case LOCK_XLOCKDONE:
|
||
if (lock->get_parent()->is_replicated()) {
|
||
bufferlist softdata;
|
||
lock->encode_locked_state(softdata);
|
src/mds/locks.c | ||
---|---|---|
[LOCK_MIX_LOCK2] = { LOCK_LOCK, false, LOCK_LOCK, AUTH, 0, REQ, 0, 0, 0, 0, 0,0,0,0 },
|
||
[LOCK_PREXLOCK] = { LOCK_LOCK, false, LOCK_LOCK, 0, XCL, 0, 0, 0, 0, ANY, CEPH_CAP_GCACHE|CEPH_CAP_GBUFFER,0,0,0 },
|
||
[LOCK_XLOCK] = { LOCK_SYNC, false, LOCK_LOCK, 0, XCL, 0, 0, 0, 0, 0, CEPH_CAP_GCACHE|CEPH_CAP_GBUFFER,0,0,0 },
|
||
[LOCK_XLOCKDONE] = { LOCK_SYNC, false, LOCK_LOCK, XCL, XCL, XCL, 0, 0, XCL, 0, CEPH_CAP_GCACHE|CEPH_CAP_GBUFFER,0,CEPH_CAP_GSHARED,0 },
|
||
[LOCK_XLOCK] = { LOCK_LOCK, false, LOCK_LOCK, 0, XCL, 0, 0, 0, 0, 0, CEPH_CAP_GCACHE|CEPH_CAP_GBUFFER,0,0,0 },
|
||
[LOCK_XLOCKDONE] = { LOCK_LOCK, false, LOCK_LOCK, XCL, XCL, XCL, 0, 0, XCL, 0, CEPH_CAP_GCACHE|CEPH_CAP_GBUFFER,0,CEPH_CAP_GSHARED,0 },
|
||
[LOCK_LOCK_XLOCK]= { LOCK_PREXLOCK,false,LOCK_LOCK,0, XCL, 0, 0, 0, 0, XCL, CEPH_CAP_GCACHE|CEPH_CAP_GBUFFER,0,0,0 },
|
||
[LOCK_MIX] = { 0, false, LOCK_MIX, 0, 0, REQ, ANY, 0, 0, 0, CEPH_CAP_GRD|CEPH_CAP_GWR|CEPH_CAP_GLAZYIO,0,0,CEPH_CAP_GRD },
|