From fe10300317383ec29948d7dbe3cb31b3aa277e3c Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 7 Dec 2010 13:31:01 -0800 Subject: [PATCH] mds: sync->mix replica state is sync->mix(2) When auth first moves to sync->mix, - auth sends AC_MIX to replicas - replicas go to sync->mix - replicas finish gather, send AC_SYNCACK, move to sync->mix(2) - auth gets all acks, sends AC_MIX again - replica moves to MIX So any new replica should just get sync->mix(2), so that it is not confused by the second AC_MIX. Signed-off-by: Sage Weil --- src/mds/locks.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mds/locks.c b/src/mds/locks.c index 49a11dbbbb4eb..1a6c8f1c9f7f0 100644 --- a/src/mds/locks.c +++ b/src/mds/locks.c @@ -68,7 +68,7 @@ struct sm_state_t scatterlock[LOCK_MAX] = { [LOCK_MIX] = { 0, false, LOCK_MIX, 0, 0, REQ, ANY, 0, 0, 0, 0,0,0,0 }, [LOCK_TSYN_MIX] = { LOCK_MIX, false, LOCK_LOCK, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0 }, - [LOCK_SYNC_MIX] = { LOCK_MIX, false, LOCK_LOCK, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0 }, + [LOCK_SYNC_MIX] = { LOCK_MIX, false, LOCK_SYNC_MIX2,0,0, 0, 0, 0, 0, 0, 0,0,0,0 }, [LOCK_SYNC_MIX2] = { LOCK_MIX, false, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0 }, }; @@ -100,7 +100,7 @@ struct sm_state_t filelock[LOCK_MAX] = { [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 }, - [LOCK_SYNC_MIX] = { LOCK_MIX, false, LOCK_MIX, ANY, 0, 0, 0, 0, 0, 0, CEPH_CAP_GRD|CEPH_CAP_GLAZYIO,0,0,CEPH_CAP_GRD }, + [LOCK_SYNC_MIX] = { LOCK_MIX, false, LOCK_SYNC_MIX2,ANY,0, 0, 0, 0, 0, 0, CEPH_CAP_GRD|CEPH_CAP_GLAZYIO,0,0,CEPH_CAP_GRD }, [LOCK_SYNC_MIX2] = { LOCK_MIX, false, 0, 0, 0, 0, 0, 0, 0, 0, CEPH_CAP_GRD|CEPH_CAP_GLAZYIO,0,0,CEPH_CAP_GRD }, [LOCK_EXCL_MIX] = { LOCK_MIX, true, LOCK_LOCK, 0, 0, 0, XCL, 0, 0, 0, 0,CEPH_CAP_GRD|CEPH_CAP_GWR|CEPH_CAP_GLAZYIO,0,0 }, -- 2.39.5