示例#1
0
    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);
    }
示例#2
0
    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);
    }
示例#3
0
文件: lrw_dict.c 项目: fizx/sit
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);
}