From: Jashan Kamboj Date: Tue, 21 Jul 2015 19:33:27 +0000 (+0530) Subject: add snaps(ls,mk,rm,rename) check_access X-Git-Tag: v10.0.0~123^2~60 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=991d340a0e41bce00d1bdbdf6b0605bf283c4eb2;p=ceph.git add snaps(ls,mk,rm,rename) check_access Signed-off-by: Jashan Kamboj --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 60011f4912e0..3141005efaee 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -7716,6 +7716,9 @@ void Server::handle_client_lssnap(MDRequestRef& mdr) if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks)) return; + if (!check_access(mdr, diri, MAY_READ)) + return; + SnapRealm *realm = diri->find_snaprealm(); map infomap; realm->get_snap_info(infomap, diri->get_oldest_snap()); @@ -7816,6 +7819,9 @@ void Server::handle_client_mksnap(MDRequestRef& mdr) if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks)) return; + if (!check_access(mdr, diri, MAY_WRITE)) + return; + // make sure name is unique if (diri->snaprealm && diri->snaprealm->exists(snapname)) { @@ -7963,6 +7969,9 @@ void Server::handle_client_rmsnap(MDRequestRef& mdr) if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks)) return; + if (!check_access(mdr, diri, MAY_WRITE)) + return; + // prepare if (!mdr->more()->stid) { mds->snapclient->prepare_destroy(diri->ino(), snapid, @@ -8103,6 +8112,9 @@ void Server::handle_client_renamesnap(MDRequestRef& mdr) if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks)) return; + if (!check_access(mdr, diri, MAY_WRITE)) + return; + // prepare if (!mdr->more()->stid) { mds->snapclient->prepare_update(diri->ino(), snapid, dstname, utime_t(),