}
- dout(7) << "handle_file_lock a=" << m->get_action() << " from " << from << " "
- << *in << " filelock=" << *lock << dendl;
+ dout(7) << "handle_file_lock a=" << get_lock_action_name(m->get_action())
+ << " on " << *lock
+ << " from mds" << from << " "
+ << *in << dendl;
switch (m->get_action()) {
// -- replica --
case LOCK_AC_MIXED:
assert(lock->get_state() == LOCK_SYNC ||
- lock->get_state() == LOCK_LOCK);
+ lock->get_state() == LOCK_LOCK ||
+ lock->get_state() == LOCK_SYNC_MIX2);
if (lock->get_state() == LOCK_SYNC) {
// MIXED
break;
}
- lock->set_state(LOCK_MIX);
+ lock->set_state(LOCK_SYNC_MIX2);
// ack
MLock *reply = new MLock(lock, LOCK_AC_MIXEDACK, mds->get_nodeid());
case LOCK_SYNC_EXCL: return "sync->excl";
case LOCK_LOCK_EXCL: return "lock->excl";
- case LOCK_SYNC_MIX: return "sync->scatter";
+ case LOCK_SYNC_MIX: return "sync->mix";
+ case LOCK_SYNC_MIX2: return "sync->mix(2)";
case LOCK_LOCK_TSYN: return "lock->tsyn";
case LOCK_MIX_LOCK: return "mix->lock";
case LOCK_TSYN: return "tsyn";
case LOCK_MIX_SYNC: return "mix->sync";
- case LOCK_MIX_SYNC2: return "mix->sync2";
+ case LOCK_MIX_SYNC2: return "mix->sync(2)";
case LOCK_EXCL_MIX: return "excl->mix";
case LOCK_MIX_EXCL: return "mix->excl";
[LOCK_MIX] = { 0, false, LOCK_MIX, 0, 0, FW, ANY, 0, 0, CEPH_CAP_GRD|CEPH_CAP_GWR,0,CEPH_CAP_GRD },
[LOCK_SYNC_MIX] = { LOCK_MIX, false, LOCK_MIX, ANY, 0, 0, 0, 0, 0, CEPH_CAP_GRD,0,CEPH_CAP_GRD },
+ [LOCK_SYNC_MIX2] = { LOCK_MIX, false, 0, ANY, 0, 0, 0, 0, 0, CEPH_CAP_GRD,0,CEPH_CAP_GRD },
[LOCK_EXCL_MIX] = { LOCK_MIX, true, LOCK_LOCK, 0, 0, 0, XCL, 0, 0, 0,CEPH_CAP_GRD|CEPH_CAP_GWR,0 },
[LOCK_EXCL] = { 0, true, LOCK_LOCK, 0, 0, FW, 0, 0, 0, 0,CEPH_CAP_GRDCACHE|CEPH_CAP_GEXCL|CEPH_CAP_GRD|CEPH_CAP_GWR|CEPH_CAP_GWRBUFFER,0 },
#define LOCK_MIX 14
#define LOCK_SYNC_MIX 15
-#define LOCK_LOCK_MIX 16
-#define LOCK_EXCL_MIX 17
-#define LOCK_MIX_SYNC 18
-#define LOCK_MIX_SYNC2 19
-#define LOCK_MIX_LOCK 20
-#define LOCK_MIX_EXCL 21
-
-#define LOCK_TSYN 22
-#define LOCK_TSYN_LOCK 23
-#define LOCK_TSYN_MIX 24
-#define LOCK_LOCK_TSYN 25
-#define LOCK_MIX_TSYN 26
+#define LOCK_SYNC_MIX2 16
+#define LOCK_LOCK_MIX 17
+#define LOCK_EXCL_MIX 18
+#define LOCK_MIX_SYNC 19
+#define LOCK_MIX_SYNC2 20
+#define LOCK_MIX_LOCK 21
+#define LOCK_MIX_EXCL 22
+
+#define LOCK_TSYN 23
+#define LOCK_TSYN_LOCK 24
+#define LOCK_TSYN_MIX 25
+#define LOCK_LOCK_TSYN 26
+#define LOCK_MIX_TSYN 27
#endif