return f->inode->caps_issued();
}
-int Client::get_caps_issued(const char *path) {
-
+int Client::get_caps_issued(const char *path, const UserPerm& perms)
+{
Mutex::Locker lock(client_lock);
filepath p(path);
InodeRef in;
- int r = path_walk(p, &in, true);
+ int r = path_walk(p, &in, perms, true);
if (r < 0)
return r;
return in->caps_issued();
if (!cmount->is_mounted())
return -ENOTCONN;
- UserPerm perms = cmount->get_client()->pick_my_perms();
- r = cmount->get_client()->fdescribe_layout(fh, &l, perms);
+ r = cmount->get_client()->fdescribe_layout(fh, &l);
if (r < 0)
return r;
return l.stripe_unit;
if (!cmount->is_mounted())
return -ENOTCONN;
- UserPerm perms = cmount->get_client()->pick_my_perms();
- r = cmount->get_client()->fdescribe_layout(fh, &l, perms);
+ r = cmount->get_client()->fdescribe_layout(fh, &l);
if (r < 0)
return r;
return l.stripe_count;
if (!cmount->is_mounted())
return -ENOTCONN;
- UserPerm perms = cmount->get_client()->pick_my_perms();
- r = cmount->get_client()->fdescribe_layout(fh, &l, perms);
+ r = cmount->get_client()->fdescribe_layout(fh, &l);
if (r < 0)
return r;
return l.object_size;
if (!cmount->is_mounted())
return -ENOTCONN;
- UserPerm perms = cmount->get_client()->pick_my_perms();
- r = cmount->get_client()->fdescribe_layout(fh, &l, perms);
+ r = cmount->get_client()->fdescribe_layout(fh, &l);
if (r < 0)
return r;
return l.pool_id;
if (!cmount->is_mounted())
return -ENOTCONN;
- UserPerm perms = cmount->get_client()->pick_my_perms();
- r = cmount->get_client()->fdescribe_layout(fh, &l, perms);
+ r = cmount->get_client()->fdescribe_layout(fh, &l);
if (r < 0)
return r;
string name = cmount->get_client()->get_pool_name(l.pool_id);
if (!cmount->is_mounted())
return -ENOTCONN;
- UserPerm perms = cmount->get_client()->pick_my_perms();
- r = cmount->get_client()->fdescribe_layout(fh, &l, perms);
+ r = cmount->get_client()->fdescribe_layout(fh, &l);
if (r < 0)
return r;
if (stripe_unit)
if (!cmount->is_mounted())
return -ENOTCONN;
- UserPerm perms = cmount->get_client()->pick_my_perms();
- r = cmount->get_client()->fdescribe_layout(fh, &l, perms);
+ r = cmount->get_client()->fdescribe_layout(fh, &l);
if (r < 0)
return r;
int rep = cmount->get_client()->get_pool_replication(l.pool_id);
{
if (!cmount->is_mounted())
return -ENOTCONN;
- return cmount->get_client()->get_caps_issued(path);
+ UserPerm perms = cmount->get_client()->pick_my_perms();
+ return cmount->get_client()->get_caps_issued(path, perms);
}
extern "C" int ceph_get_stripe_unit_granularity(struct ceph_mount_info *cmount)