From: Greg Farnum Date: Sat, 30 Jul 2016 01:59:13 +0000 (-0700) Subject: client: pass UserPerm to lookup_hash() X-Git-Tag: v11.0.1~36^2~53 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=95df48b459ac2fd45a2fe6390065833ec65a18be;p=ceph.git client: pass UserPerm to lookup_hash() Signed-off-by: Greg Farnum --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 0f4beff9dbc..5219cb60c9f 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -7575,7 +7575,8 @@ int Client::open(const char *relpath, int flags, mode_t mode) return open(relpath, flags, mode, 0, 0, 0, NULL); } -int Client::lookup_hash(inodeno_t ino, inodeno_t dirino, const char *name) +int Client::lookup_hash(inodeno_t ino, inodeno_t dirino, const char *name, + const UserPerm& perms) { Mutex::Locker lock(client_lock); ldout(cct, 3) << "lookup_hash enter(" << ino << ", #" << dirino << "/" << name << ") = " << dendl; @@ -7591,7 +7592,6 @@ int Client::lookup_hash(inodeno_t ino, inodeno_t dirino, const char *name) path2.push_dentry(string(f)); req->set_filepath2(path2); - UserPerm perms(get_uid(), get_gid()); // FIXME int r = make_request(req, perms, NULL, NULL, rand() % mdsmap->get_num_in_mds()); ldout(cct, 3) << "lookup_hash exit(" << ino << ", #" << dirino << "/" << name << ") = " << r << dendl; diff --git a/src/client/Client.h b/src/client/Client.h index f42d5244bf2..96dda3d30af 100644 --- a/src/client/Client.h +++ b/src/client/Client.h @@ -1121,7 +1121,8 @@ public: int mknod(const char *path, mode_t mode, dev_t rdev=0); int open(const char *path, int flags, mode_t mode=0); int open(const char *path, int flags, mode_t mode, int stripe_unit, int stripe_count, int object_size, const char *data_pool); - int lookup_hash(inodeno_t ino, inodeno_t dirino, const char *name); + int lookup_hash(inodeno_t ino, inodeno_t dirino, const char *name, + const UserPerm& perms); int lookup_ino(inodeno_t ino, Inode **inode=NULL); int lookup_parent(Inode *in, Inode **parent=NULL); int lookup_name(Inode *in, Inode *parent); diff --git a/src/client/SyntheticClient.cc b/src/client/SyntheticClient.cc index 7a7dacfb5ed..434418193de 100644 --- a/src/client/SyntheticClient.cc +++ b/src/client/SyntheticClient.cc @@ -877,7 +877,7 @@ int SyntheticClient::run() sscanf(diname.c_str(), "%llx", (long long unsigned*)&dirino.val); string name = get_sarg(0); if (run_me()) { - lookup_hash(ino, dirino, name.c_str()); + lookup_hash(ino, dirino, name.c_str(), perms); } } break; @@ -3336,9 +3336,10 @@ void SyntheticClient::import_find(const char *base, const char *find, bool data) } -int SyntheticClient::lookup_hash(inodeno_t ino, inodeno_t dirino, const char *name) +int SyntheticClient::lookup_hash(inodeno_t ino, inodeno_t dirino, + const char *name, const UserPerm& perms) { - int r = client->lookup_hash(ino, dirino, name); + int r = client->lookup_hash(ino, dirino, name, perms); dout(0) << "lookup_hash(" << ino << ", #" << dirino << "/" << name << ") = " << r << dendl; return r; } diff --git a/src/client/SyntheticClient.h b/src/client/SyntheticClient.h index b4d3210fcf5..dadbbd08df7 100644 --- a/src/client/SyntheticClient.h +++ b/src/client/SyntheticClient.h @@ -265,7 +265,8 @@ class SyntheticClient { void import_find(const char *basedir, const char *find, bool writedata); - int lookup_hash(inodeno_t ino, inodeno_t dirino, const char *name); + int lookup_hash(inodeno_t ino, inodeno_t dirino, const char *name, + const UserPerm& perms); int lookup_ino(inodeno_t ino); int chunk_file(string &filename);