req->dirp = dirp;
bufferlist dirbl;
- // FIXME: is owner_uid safe, or can dirp get invoked with different perms?
- int res = make_request(req, dirp->owner_uid, dirp->owner_gid, NULL, NULL, -1, &dirbl);
+ // FIXME
+ UserPerm perms(dirp->owner_uid, dirp->owner_gid);
+ int res = make_request(req, perms, NULL, NULL, -1, &dirbl);
if (res == -EAGAIN) {
ldout(cct, 10) << "_readdir_get_frag got EAGAIN, retrying" << dendl;
path2.push_dentry(string(f));
req->set_filepath2(path2);
- int r = make_request(req, -1, -1, NULL, NULL, rand() % mdsmap->get_num_in_mds());
+ 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;
return r;
}
filepath path(ino);
req->set_filepath(path);
- int r = make_request(req, -1, -1, NULL, NULL, rand() % mdsmap->get_num_in_mds());
+ UserPerm perms(get_uid(), get_gid()); // FIXME
+ int r = make_request(req, perms, NULL, NULL, rand() % mdsmap->get_num_in_mds());
if (r == 0 && inode != NULL) {
vinodeno_t vino(ino, CEPH_NOSNAP);
unordered_map<vinodeno_t,Inode*>::iterator p = inode_map.find(vino);
req->set_inode(ino);
InodeRef target;
- int r = make_request(req, -1, -1, &target, NULL, rand() % mdsmap->get_num_in_mds());
+ UserPerm perms(get_uid(), get_gid()); // FIXME
+ int r = make_request(req, perms, &target, NULL, rand() % mdsmap->get_num_in_mds());
// Give caller a reference to the parent ino if they provided a pointer.
if (parent != NULL) {
if (r == 0) {
req->set_filepath(filepath(ino->ino));
req->set_inode(ino);
- int r = make_request(req, -1, -1, NULL, NULL, rand() % mdsmap->get_num_in_mds());
+ 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;
}
req->head.args.open.mask = 0;
req->set_inode(in);
- int ret = make_request(req, -1, -1);
+ UserPerm perms(get_uid(), get_gid()); // FIXME
+ int ret = make_request(req, perms);
return ret;
}
filepath path(in->ino);
req->set_filepath(path);
req->set_inode(in);
- int res = make_request(req, -1, -1);
+ UserPerm perms(get_uid(), get_gid()); // FIXME
+ int res = make_request(req, perms);
if (res < 0)
break;
int ret;
bufferlist bl;
+ UserPerm perms(get_uid(), get_gid()); // FIXME
if (sleep && switch_interrupt_cb) {
// enable interrupt
switch_interrupt_cb(callback_handle, req->get());
-
- ret = make_request(req, -1, -1, NULL, NULL, -1, &bl);
+ ret = make_request(req, perms, NULL, NULL, -1, &bl);
// disable interrupt
switch_interrupt_cb(callback_handle, NULL);
put_request(req);
} else {
- ret = make_request(req, -1, -1, NULL, NULL, -1, &bl);
+ ret = make_request(req, perms, NULL, NULL, -1, &bl);
}
if (ret == 0) {
intr_req->head.args.filelock_change.rule = lock_type;
intr_req->head.args.filelock_change.type = CEPH_LOCK_UNLOCK;
- return make_request(intr_req, -1, -1, NULL, NULL, -1);
+ UserPerm perms(get_uid(), get_gid()); // FIXME
+ return make_request(intr_req, perms, NULL, NULL, -1);
}
void Client::_encode_filelocks(Inode *in, bufferlist& bl)
goto fail;
req->set_dentry(de);
- res = make_request(req, perm.uid(), perm.gid(), inp);
+ res = make_request(req, perm, inp);
ldout(cct, 10) << "link result is " << res << dendl;
trim_cache();
req->set_inode(cur);
InodeRef parent_ref;
- int ret = make_request(req, -1, -1, &parent_ref);
+ UserPerm perms(get_uid(), get_gid());
+ int ret = make_request(req, perms, &parent_ref);
if (ret < 0) {
ldout(cct, 1) << __func__ << " " << in->vino()
<< " failed to find parent of " << cur->vino()