mds/Server: skip auth check on session-less mdr's

The mds internal requests don't have a session.

Signed-off-by: Sage Weil <sage@redhat.com>
This commit is contained in:
Sage Weil 2015-08-28 17:32:11 -04:00
parent 1957aeddbf
commit a43f5c7553

View File

@ -2107,12 +2107,12 @@ void Server::handle_slave_auth_pin_ack(MDRequestRef& mdr, MMDSSlaveRequest *ack)
*/
bool Server::check_access(MDRequestRef& mdr, CInode *in, unsigned mask)
{
if (!mdr->session->check_access(
in, mask,
mdr->client_request->get_caller_uid(),
mdr->client_request->get_caller_gid(),
mdr->client_request->head.args.setattr.uid,
mdr->client_request->head.args.setattr.gid)) {
if (mdr->session && !mdr->session->check_access(
in, mask,
mdr->client_request->get_caller_uid(),
mdr->client_request->get_caller_gid(),
mdr->client_request->head.args.setattr.uid,
mdr->client_request->head.args.setattr.gid)) {
respond_to_request(mdr, -EACCES);
return false;
}