summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lwext4/ext4_bcache.c6
-rw-r--r--lwext4/ext4_bcache.h6
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 = { \