From: Greg Farnum Date: Wed, 27 Jul 2016 21:17:53 +0000 (-0700) Subject: client: always pass UserPerm to rmsnap() X-Git-Tag: v11.0.1~36^2~86 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=78f7b418abd257b370ff4435ea17292603a47af1;p=ceph.git client: always pass UserPerm to rmsnap() Signed-off-by: Greg Farnum --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 5cba208bffa..8ac2a98ef54 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -9435,12 +9435,11 @@ int Client::mksnap(const char *relpath, const char *name, const UserPerm& perm) Inode *snapdir = open_snapdir(in.get()); return _mkdir(snapdir, name, 0, perm); } -int Client::rmsnap(const char *relpath, const char *name) +int Client::rmsnap(const char *relpath, const char *name, const UserPerm& perms) { Mutex::Locker l(client_lock); filepath path(relpath); InodeRef in; - UserPerm perms = pick_my_perms(); int r = path_walk(path, &in, perms); if (r < 0) return r; diff --git a/src/client/Client.h b/src/client/Client.h index b6bd451390e..79c403dd452 100644 --- a/src/client/Client.h +++ b/src/client/Client.h @@ -1145,7 +1145,7 @@ public: loff_t length, loff_t offset); int mksnap(const char *path, const char *name, const UserPerm& perm); - int rmsnap(const char *path, const char *name); + int rmsnap(const char *path, const char *name, const UserPerm& perm); // expose caps int get_caps_issued(int fd); diff --git a/src/client/SyntheticClient.cc b/src/client/SyntheticClient.cc index 17d978d01b5..fa52f8ea849 100644 --- a/src/client/SyntheticClient.cc +++ b/src/client/SyntheticClient.cc @@ -907,7 +907,7 @@ int SyntheticClient::run() string base = get_sarg(0); string name = get_sarg(0); if (run_me()) - rmsnap(base.c_str(), name.c_str()); + rmsnap(base.c_str(), name.c_str(), perms); did_run_me(); } break; @@ -3414,9 +3414,9 @@ void SyntheticClient::mksnap(const char *base, const char *name, const UserPerm& client->mksnap(base, name, perms); } -void SyntheticClient::rmsnap(const char *base, const char *name) +void SyntheticClient::rmsnap(const char *base, const char *name, const UserPerm& perms) { - client->rmsnap(base, name); + client->rmsnap(base, name, perms); } void SyntheticClient::mksnapfile(const char *dir) diff --git a/src/client/SyntheticClient.h b/src/client/SyntheticClient.h index 83d70fb144f..b4d3210fcf5 100644 --- a/src/client/SyntheticClient.h +++ b/src/client/SyntheticClient.h @@ -271,7 +271,7 @@ class SyntheticClient { int chunk_file(string &filename); void mksnap(const char *base, const char *name, const UserPerm& perms); - void rmsnap(const char *base, const char *name); + void rmsnap(const char *base, const char *name, const UserPerm& perms); void mksnapfile(const char *dir); };