return in;
}
-int Client::_ll_getattr(Inode *in, const UserPerm& perms)
+int Client::_ll_getattr(Inode *in, int caps, const UserPerm& perms)
{
vinodeno_t vino = _get_vino(in);
if (vino.snapid < CEPH_NOSNAP)
return 0;
else
- return _getattr(in, CEPH_STAT_CAP_INODE_ALL, perms);
+ return _getattr(in, caps, perms);
}
int Client::ll_getattr(Inode *in, struct stat *attr, const UserPerm& perms)
{
Mutex::Locker lock(client_lock);
- int res = _ll_getattr(in, perms);
+ int res = _ll_getattr(in, CEPH_STAT_CAP_INODE_ALL, perms);
if (res == 0)
fill_stat(in, attr);
unsigned mask = statx_to_mask(flags, want);
if (mask && !in->caps_issued_mask(mask))
- res = _ll_getattr(in, perms);
+ res = _ll_getattr(in, mask, perms);
if (res == 0)
fill_statx(in, mask, stx);
mds_rank_t _get_random_up_mds() const;
- int _ll_getattr(Inode *in, const UserPerm& perms);
+ int _ll_getattr(Inode *in, int caps, const UserPerm& perms);
public:
int mount(const std::string &mount_root, const UserPerm& perms,