diff options
| -rw-r--r-- | lwext4/ext4_bcache.c | 6 | ||||
| -rw-r--r-- | lwext4/ext4_bcache.h | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/lwext4/ext4_bcache.c b/lwext4/ext4_bcache.c index 0a2e2a5..ab19c17 100644 --- a/lwext4/ext4_bcache.c +++ b/lwext4/ext4_bcache.c @@ -180,7 +180,7 @@ int ext4_bcache_alloc(struct ext4_bcache *bc, struct ext4_block *b, } - buf->refctr++; + ext4_bcache_inc_ref(buf); b->buf = buf; b->data = buf->data; @@ -198,7 +198,7 @@ int ext4_bcache_alloc(struct ext4_bcache *bc, struct ext4_block *b, /* One more buffer in bcache now. :-) */ bc->ref_blocks++; - buf->refctr = 1; + ext4_bcache_inc_ref(buf); /* Assign new value to LRU id and increment LRU counter * by 1*/ buf->lru_id = ++bc->lru_ctr; @@ -226,7 +226,7 @@ int ext4_bcache_free(struct ext4_bcache *bc, struct ext4_block *b) ext4_assert(buf->refctr); /*Just decrease reference counter*/ - buf->refctr--; + ext4_bcache_dec_ref(buf); /* We are the last one touching this buffer, do the cleanups. */ if (!buf->refctr) { diff --git a/lwext4/ext4_bcache.h b/lwext4/ext4_bcache.h index bb6e6ca..40431d2 100644 --- a/lwext4/ext4_bcache.h +++ b/lwext4/ext4_bcache.h @@ -166,6 +166,12 @@ static inline void ext4_bcache_clear_dirty(struct ext4_buf *buf) { ext4_bcache_clear_flag(buf, BC_DIRTY); } +/**@brief Increment reference counter of buf by 1.*/ +#define ext4_bcache_inc_ref(buf) ((buf)->refctr++) + +/**@brief Decrement reference counter of buf by 1.*/ +#define ext4_bcache_dec_ref(buf) ((buf)->refctr--) + /**@brief Static initializer of block cache structure.*/ #define EXT4_BCACHE_STATIC_INSTANCE(__name, __cnt, __itemsize) \ static struct ext4_bcache __name = { \ |
