From: Sage Weil Date: Mon, 3 May 2010 21:01:42 +0000 (-0700) Subject: mds: fix EXCL rdlock rule X-Git-Tag: v0.20.1~19 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7188b5bf59f5cdef64ff31cf0347301821dd0ee6;p=ceph.git mds: fix EXCL rdlock rule Only the exclusive client should be able to rdlock. (if anyone!) No observed problems, caught by inspection. --- diff --git a/src/mds/locks.c b/src/mds/locks.c index ed627100510..80c6bd9725c 100644 --- a/src/mds/locks.c +++ b/src/mds/locks.c @@ -100,7 +100,7 @@ struct sm_state_t filelock[LOCK_MAX] = { [LOCK_SYNC_MIX2] = { LOCK_MIX, false, 0, ANY, 0, 0, 0, 0, 0, CEPH_CAP_GRD,0,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,0 }, - [LOCK_EXCL] = { 0, true, LOCK_LOCK, 0, 0, AUTH,XCL, 0, 0, 0,CEPH_CAP_GSHARED|CEPH_CAP_GEXCL|CEPH_CAP_GCACHE|CEPH_CAP_GRD|CEPH_CAP_GWR|CEPH_CAP_GBUFFER,0,0 }, + [LOCK_EXCL] = { 0, true, LOCK_LOCK, 0, 0, XCL, XCL, 0, 0, 0,CEPH_CAP_GSHARED|CEPH_CAP_GEXCL|CEPH_CAP_GCACHE|CEPH_CAP_GRD|CEPH_CAP_GWR|CEPH_CAP_GBUFFER,0,0 }, [LOCK_SYNC_EXCL] = { LOCK_EXCL, true, LOCK_LOCK, AUTH, 0, 0, 0, 0, 0, 0,CEPH_CAP_GSHARED|CEPH_CAP_GCACHE|CEPH_CAP_GRD,0,0 }, [LOCK_MIX_EXCL] = { LOCK_EXCL, true, LOCK_LOCK, 0, 0, 0, XCL, 0, 0, 0,CEPH_CAP_GRD|CEPH_CAP_GWR,0,0 }, [LOCK_LOCK_EXCL] = { LOCK_EXCL, true, LOCK_LOCK, AUTH, 0, 0, 0, 0, 0, 0,CEPH_CAP_GCACHE|CEPH_CAP_GBUFFER,0,0 },