return 1;
}
+/** Data size to hash for the global bloom filter. */
#define GLOBAL_BLOOM_BUF_SIZE (sizeof(ino_t) + sizeof(dev_t) + sizeof(off_t))
+/** For the user bloom filter also the uid is being hashed. */
#define USER_BLOOM_BUF_SIZE (GLOBAL_BLOOM_BUF_SIZE + sizeof(uid_t))
static void make_bloom_buf(struct stat64 *s, uint8_t buf[USER_BLOOM_BUF_SIZE])
{
if (!consider_bloom(s))
return 0;
- return bloom_test_and_insert(buf, GLOBAL_BLOOM_BUF_SIZE,
- global_bloom_filter);
+ return bloom_insert(buf, GLOBAL_BLOOM_BUF_SIZE, global_bloom_filter);
}
static int insert_user_bloom(struct stat64 *s,
{
if (!consider_bloom(s))
return 0;
- return bloom_test_and_insert(buf, USER_BLOOM_BUF_SIZE,
- user_bloom_filter);
+ return bloom_insert(buf, USER_BLOOM_BUF_SIZE, user_bloom_filter);
}
static int add_directory(char *dirname, uint64_t *dir_num, uint64_t *parent_dir_num,
continue;
dir_size += s.st_size;
dir_files++;
- ret = create_user_table(s.st_uid, &ui);
+ ret = create_user_table(conf.database_dir_arg, s.st_uid, &ui);
if (ret < 0)
goto out;
ret = update_user_row(ui->table, this_dir_num,
else
dir_size += s.st_size;
dir_files++;
- ret = create_user_table(s.st_uid, &ui);
+ ret = create_user_table(conf.database_dir_arg, s.st_uid, &ui);
if (ret < 0)
goto out;
ret = insert_user_bloom(&s, bloom_buf);
if (!S_ISDIR(statbuf.st_mode))
return -ERRNO_TO_ERROR(ENOTDIR);
if (order >= 10 && num > 0) {
- bloom_init(order, num, &global_bloom_filter);
- bloom_init(order, num, &user_bloom_filter);
+ global_bloom_filter = bloom_new(order, num);
+ user_bloom_filter = bloom_new(order, num);
} else
WARNING_LOG("hard link detection deactivated\n");
device_id = statbuf.st_dev;
ret = scan_dir(conf.base_dir_arg, &zero);
if (ret < 0)
goto out;
- ret = write_uid_file();
+ ret = write_uid_file(conf.database_dir_arg);
log_bloom_stats();
out:
bloom_free(global_bloom_filter);