_dir_vxattrs_name_size = _vxattrs_calcu_name_size(_dir_vxattrs);
_file_vxattrs_name_size = _vxattrs_calcu_name_size(_file_vxattrs);
+ user_id = cct->_conf->client_user_id;
+ group_id = cct->_conf->client_group_id;
+
lru.lru_set_max(cct->_conf->client_cache_size);
lru.lru_set_midpoint(cct->_conf->client_cache_mid);
flush,
cap->mseq,
cap_epoch_barrier);
+ if (user_id >= 0)
+ m->caller_uid = user_id;
+ if (group_id >= 0)
+ m->caller_gid = group_id;
+
m->head.issue_seq = cap->issue_seq;
m->set_tid(flush_tid);
capsnap->flush_tid = ++last_flush_tid;
MClientCaps *m = new MClientCaps(CEPH_CAP_OP_FLUSHSNAP, in->ino, in->snaprealm->ino, 0, mseq,
- cap_epoch_barrier);
+ cap_epoch_barrier);
+ if (user_id >= 0)
+ m->caller_uid = user_id;
+ if (group_id >= 0)
+ m->caller_gid = group_id;
+
m->set_client_tid(capsnap->flush_tid);
m->head.snap_follows = p->first;
OPTION(client_max_inline_size, OPT_U64, 4096)
OPTION(client_inject_release_failure, OPT_BOOL, false) // synthetic client bug for testing
OPTION(client_inject_fixed_oldest_tid, OPT_BOOL, false) // synthetic client bug for testing
+
// note: the max amount of "in flight" dirty data is roughly (max - target)
OPTION(fuse_use_invalidate_cb, OPT_BOOL, false) // use fuse 2.8+ invalidate callback to keep page cache consistent
OPTION(fuse_allow_other, OPT_BOOL, true)
OPTION(fuse_debug, OPT_BOOL, false)
OPTION(fuse_multithreaded, OPT_BOOL, true)
OPTION(fuse_require_active_mds, OPT_BOOL, true) // if ceph_fuse requires active mds server
+
+OPTION(client_user_id, OPT_INT, -1)
+OPTION(client_group_id, OPT_INT, -1)
OPTION(client_try_dentry_invalidate, OPT_BOOL, true) // the client should try to use dentry invaldation instead of remounting, on kernels it believes that will work for
OPTION(client_die_on_failed_remount, OPT_BOOL, true)
OPTION(client_check_pool_perm, OPT_BOOL, true)