diff --git a/cmd/policy.go b/cmd/policy.go index e5f7230dc..5671e086f 100644 --- a/cmd/policy.go +++ b/cmd/policy.go @@ -85,9 +85,6 @@ func (sys *PolicySys) Remove(bucketName string) { // IsAllowed - checks given policy args is allowed to continue the Rest API. func (sys *PolicySys) IsAllowed(args policy.Args) bool { - sys.RLock() - defer sys.RUnlock() - if globalIsGateway { // When gateway is enabled, no cached value // is used to validate bucket policies. @@ -99,6 +96,9 @@ func (sys *PolicySys) IsAllowed(args policy.Args) bool { } } } else { + sys.RLock() + defer sys.RUnlock() + // If policy is available for given bucket, check the policy. if p, found := sys.bucketPolicyMap[args.BucketName]; found { return p.IsAllowed(args)