From 991d340a0e41bce00d1bdbdf6b0605bf283c4eb2 Mon Sep 17 00:00:00 2001 From: Jashan Kamboj Date: Wed, 22 Jul 2015 01:03:27 +0530 Subject: [PATCH] add snaps(ls,mk,rm,rename) check_access Signed-off-by: Jashan Kamboj --- src/mds/Server.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 60011f4912e..3141005efae 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(), -- 2.47.3