diff options
author | Sage Weil <sage@inktank.com> | 2013-07-06 09:21:47 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-10-11 10:48:14 -0700 |
commit | ebb9b0cb7e4ab60fdbbc410ecfb35e51cf11434d (patch) | |
tree | e66cd1df112e493b430e2d6db7760315e0de7dba | |
parent | 33da08f683d40f33061cefa0cf145f3ff21ea089 (diff) | |
download | ceph-ebb9b0cb7e4ab60fdbbc410ecfb35e51cf11434d.tar.gz |
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 <sage@inktank.com>
(cherry picked from commit b88938e5a646fbf175a7135e872bcb2d1afafbb8)
-rw-r--r-- | src/mds/locks.c | 4 |
1 files 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 }, |