Browse Source

ext4_bcache: manipulate buffer refctr by two helpers

- ext4_bcache_inc_ref
  - ext4_bcache_dec_ref
pull/11/head
ngkaho1234 9 years ago
parent
commit
9195095bf3
  1. 6
      lwext4/ext4_bcache.c
  2. 6
      lwext4/ext4_bcache.h

6
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) {

6
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 = { \

Loading…
Cancel
Save