int truncate(const char *fusepath, off_t size) { const fuse_context *fc = fuse_get_context(); const Config &config = Config::get(fc); const ugid::Set ugid(fc->uid,fc->gid); const rwlock::ReadGuard readlock(&config.srcmountslock); return _truncate(config.truncate, config.srcmounts, config.minfreespace, fusepath, size); }
int truncate(const char *fusepath, off_t size) { const struct fuse_context *fc = fuse_get_context(); const config::Config &config = config::get(); const ugid::SetResetGuard ugid(fc->uid,fc->gid); if(fusepath == config.controlfile) return -EPERM; return _truncate(*config.action, config.srcmounts, fusepath, size); }
void lrw_dict_put(LRWDict *d, const Term *key, const void *value) { dictEntry *entry = dictFind(d->dict, key); // pstring *t = term_to_s(key); // printf("adding %.*s to size %d\n", t->len, t->val,dictSize(d->dict)); if(entry == NULL) { if(dictSize(d->dict) >= d->capacity) { _truncate(d); } entry = dictAddRaw(d->dict, (void *) key); if(!entry && dictIsRehashing(d->dict)) { entry = dictFind(d->dict, key); } assert(entry); } dictSetVal(d->dict, entry, (void *) value); _bump(d, entry->key); }