From be61f55b7c6436fc254bf923865b71aa9bc15477 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sat, 6 Jul 2013 09:21:47 -0700 Subject: mds: do not allow GLAZYIO in mix->sync state GLAZYIO is not allowed in SYNC, so we cannot allow it in the preceding gather state. I verified the other GLAZYIO rules look ok. We should make a validater to confirm that no gather state includes caps that its target state does not... or at least assert as much in eval_gather(). Backport: cuttlefish Signed-off-by: Sage Weil (cherry picked from commit b88938e5a646fbf175a7135e872bcb2d1afafbb8) --- 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 c7dd5bec0ee..fdc6b263d5d 100644 --- a/src/mds/locks.c +++ b/src/mds/locks.c @@ -91,8 +91,8 @@ const struct sm_state_t filelock[LOCK_MAX] = { [LOCK_SYNC] = { 0, false, LOCK_SYNC, ANY, 0, ANY, 0, 0, ANY, 0, CEPH_CAP_GSHARED|CEPH_CAP_GCACHE|CEPH_CAP_GRD,0,0,CEPH_CAP_GSHARED|CEPH_CAP_GCACHE|CEPH_CAP_GRD }, [LOCK_LOCK_SYNC] = { LOCK_SYNC, false, LOCK_LOCK, AUTH, 0, 0, 0, 0, 0, 0, CEPH_CAP_GCACHE,0,0,0 }, [LOCK_EXCL_SYNC] = { LOCK_SYNC, true, LOCK_LOCK, 0, 0, 0, 0, XCL, 0, 0, 0,CEPH_CAP_GSHARED|CEPH_CAP_GCACHE|CEPH_CAP_GRD,0,0 }, - [LOCK_MIX_SYNC] = { LOCK_SYNC, false, LOCK_MIX_SYNC2,0,0, 0, 0, 0, 0, 0, CEPH_CAP_GRD|CEPH_CAP_GLAZYIO,0,0,CEPH_CAP_GRD }, - [LOCK_MIX_SYNC2] = { LOCK_SYNC, false, 0, 0, 0, 0, 0, 0, 0, 0, CEPH_CAP_GRD|CEPH_CAP_GLAZYIO,0,0,CEPH_CAP_GRD }, + [LOCK_MIX_SYNC] = { LOCK_SYNC, false, LOCK_MIX_SYNC2,0,0, 0, 0, 0, 0, 0, CEPH_CAP_GRD,0,0,CEPH_CAP_GRD }, + [LOCK_MIX_SYNC2] = { LOCK_SYNC, false, 0, 0, 0, 0, 0, 0, 0, 0, CEPH_CAP_GRD,0,0,CEPH_CAP_GRD }, [LOCK_SNAP_SYNC] = { LOCK_SYNC, false, LOCK_LOCK, 0, 0, 0, 0, AUTH,0, 0, 0,0,0,0 }, [LOCK_XSYN_SYNC] = { LOCK_SYNC, true, LOCK_LOCK, AUTH, 0, AUTH,0, 0, 0, 0, 0,CEPH_CAP_GCACHE,0,0 }, -- cgit v1.2.1