return _removexattr(in, name, uid, gid);
}
+bool Client::_vxattrcb_quota_exists(Inode *in)
+{
+ return in->quota.is_enable();
+}
size_t Client::_vxattrcb_quota(Inode *in, char *val, size_t size)
{
return snprintf(val, size,
name: CEPH_XATTR_NAME(_type, _name), \
getxattr_cb: &Client::_vxattrcb_ ## _type ## _ ## _name, \
readonly: false, \
- hidden: false, \
- exists_cb: NULL, \
+ hidden: true, \
+ exists_cb: &Client::_vxattrcb_quota_exists, \
}
const Client::VXattr Client::_dir_vxattrs[] = {
getxattr_cb: &Client::_vxattrcb_quota,
readonly: false,
hidden: true,
- exists_cb: NULL,
+ exists_cb: &Client::_vxattrcb_quota_exists,
},
XATTR_QUOTA_FIELD(quota, max_bytes),
XATTR_QUOTA_FIELD(quota, max_files),
bool (Client::*exists_cb)(Inode *in);
};
+ bool _vxattrcb_quota_exists(Inode *in);
size_t _vxattrcb_quota(Inode *in, char *val, size_t size);
size_t _vxattrcb_quota_max_bytes(Inode *in, char *val, size_t size);
size_t _vxattrcb_quota_max_files(Inode *in, char *val, size_t size);