Lines Matching defs:pool
121 static void kvp_acquire_lock(int pool)
126 if (fcntl(kvp_file_info[pool].fd, F_SETLKW, &fl) == -1) {
127 syslog(LOG_ERR, "Failed to acquire the lock pool: %d; error: %d %s", pool,
133 static void kvp_release_lock(int pool)
138 if (fcntl(kvp_file_info[pool].fd, F_SETLK, &fl) == -1) {
139 syslog(LOG_ERR, "Failed to release the lock pool: %d; error: %d %s", pool,
145 static void kvp_update_file(int pool)
153 kvp_acquire_lock(pool);
155 filep = fopen(kvp_file_info[pool].fname, "we");
157 syslog(LOG_ERR, "Failed to open file, pool: %d; error: %d %s", pool,
159 kvp_release_lock(pool);
163 fwrite(kvp_file_info[pool].records, sizeof(struct kvp_record),
164 kvp_file_info[pool].num_records, filep);
167 kvp_release_lock(pool);
168 syslog(LOG_ERR, "Failed to write file, pool: %d", pool);
172 kvp_release_lock(pool);
175 static void kvp_update_mem_state(int pool)
179 struct kvp_record *record = kvp_file_info[pool].records;
181 int num_blocks = kvp_file_info[pool].num_blocks;
184 kvp_acquire_lock(pool);
186 filep = fopen(kvp_file_info[pool].fname, "re");
188 syslog(LOG_ERR, "Failed to open file, pool: %d; error: %d %s", pool,
190 kvp_release_lock(pool);
201 "Failed to read file, pool: %d; error: %d %s",
202 pool, errno, strerror(errno));
203 kvp_release_lock(pool);
216 kvp_release_lock(pool);
224 kvp_file_info[pool].num_blocks = num_blocks;
225 kvp_file_info[pool].records = record;
226 kvp_file_info[pool].num_records = records_read;
229 kvp_release_lock(pool);
267 static int kvp_key_delete(int pool, const __u8 *key, int key_size)
277 kvp_update_mem_state(pool);
279 num_records = kvp_file_info[pool].num_records;
280 record = kvp_file_info[pool].records;
290 kvp_file_info[pool].num_records--;
291 kvp_update_file(pool);
303 kvp_file_info[pool].num_records--;
304 kvp_update_file(pool);
310 static int kvp_key_add_or_modify(int pool, const __u8 *key, int key_size,
325 kvp_update_mem_state(pool);
327 num_records = kvp_file_info[pool].num_records;
328 record = kvp_file_info[pool].records;
329 num_blocks = kvp_file_info[pool].num_blocks;
339 kvp_update_file(pool);
353 kvp_file_info[pool].num_blocks++;
358 kvp_file_info[pool].records = record;
359 kvp_file_info[pool].num_records++;
360 kvp_update_file(pool);
364 static int kvp_get_value(int pool, const __u8 *key, int key_size, __u8 *value,
378 kvp_update_mem_state(pool);
380 num_records = kvp_file_info[pool].num_records;
381 record = kvp_file_info[pool].records;
396 static int kvp_pool_enumerate(int pool, int index, __u8 *key, int key_size,
404 kvp_update_mem_state(pool);
405 record = kvp_file_info[pool].records;
407 if (index >= kvp_file_info[pool].num_records) {
1371 int pool;
1472 pool = hv_msg->kvp_hdr.pool;
1524 if (kvp_key_add_or_modify(pool,
1533 if (kvp_get_value(pool,
1542 if (kvp_key_delete(pool,
1556 * If the pool is KVP_POOL_AUTO, dynamically generate
1558 * appropriate pool.
1560 if (pool != KVP_POOL_AUTO) {
1561 if (kvp_pool_enumerate(pool,