* Populate the parent dentry for `ino`, provided it is
* a child of `parent`.
*/
-int Client::lookup_name(Inode *ino, Inode *parent)
+int Client::lookup_name(Inode *ino, Inode *parent, const UserPerm& perms)
{
assert(parent->is_dir());
req->set_filepath(filepath(ino->ino));
req->set_inode(ino);
- 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_name exit(" << ino->ino << ") = " << r << dendl;
return r;
const UserPerm& perms);
int lookup_ino(inodeno_t ino, const UserPerm& perms, Inode **inode=NULL);
int lookup_parent(Inode *in, const UserPerm& perms, Inode **parent=NULL);
- int lookup_name(Inode *in, Inode *parent);
+ int lookup_name(Inode *in, Inode *parent, const UserPerm& perms);
int close(int fd);
loff_t lseek(int fd, loff_t offset, int whence, const UserPerm& perms);
int read(int fd, char *buf, loff_t size, loff_t offset=-1);
assert(parent != NULL);
// Finally, get the name (dentry) of the requested inode
- r = (cmount->get_client())->lookup_name(*inode, parent);
+ r = (cmount->get_client())->lookup_name(*inode, parent, perms);
if (r) {
// Unexpected error
(cmount->get_client())->ll_forget(parent, 1);