diff --git a/src/client/etcd_state_client.h b/src/client/etcd_state_client.h index 083ebdce..3b0300d7 100644 --- a/src/client/etcd_state_client.h +++ b/src/client/etcd_state_client.h @@ -20,9 +20,11 @@ #define MAX_DATA_BLOCK_SIZE 128*1024*1024 #define DEFAULT_BITMAP_GRANULARITY 4096 +#ifndef IMMEDIATE_NONE #define IMMEDIATE_NONE 0 #define IMMEDIATE_SMALL 1 #define IMMEDIATE_ALL 2 +#endif struct etcd_kv_t { diff --git a/src/client/vitastor_c.cpp b/src/client/vitastor_c.cpp index 8099cb74..bdb46b26 100644 --- a/src/client/vitastor_c.cpp +++ b/src/client/vitastor_c.cpp @@ -384,4 +384,12 @@ int vitastor_c_inode_get_readonly(void *handle) return watch->cfg.readonly; } +uint32_t vitastor_c_inode_get_immediate_commit(vitastor_c *client, uint64_t inode_num) +{ + auto pool_it = client->cli->st_cli.pool_config.find(INODE_POOL(inode_num)); + if (pool_it == client->cli->st_cli.pool_config.end()) + return 0; + return pool_it->second.immediate_commit; +} + } diff --git a/src/client/vitastor_c.h b/src/client/vitastor_c.h index 74a1dff5..7c37f0e3 100644 --- a/src/client/vitastor_c.h +++ b/src/client/vitastor_c.h @@ -12,6 +12,13 @@ #ifndef POOL_ID_BITS #define POOL_ID_BITS 16 #endif + +#ifndef IMMEDIATE_NONE +#define IMMEDIATE_NONE 0 +#define IMMEDIATE_SMALL 1 +#define IMMEDIATE_ALL 2 +#endif + #include #include @@ -65,6 +72,8 @@ uint64_t vitastor_c_inode_get_num(void *handle); uint32_t vitastor_c_inode_get_block_size(vitastor_c *client, uint64_t inode_num); uint32_t vitastor_c_inode_get_bitmap_granularity(vitastor_c *client, uint64_t inode_num); int vitastor_c_inode_get_readonly(void *handle); +// Returns IMMEDIATE_ALL, IMMEDIATE_SMALL or IMMEDIATE_NONE +uint32_t vitastor_c_inode_get_immediate_commit(vitastor_c *client, uint64_t inode_num); #ifdef __cplusplus }