[dm-devel] [PATCH 2/5] dm-bufio: refactor adjust_total_allocated
Mikulas Patocka
mpatocka at redhat.com
Thu Sep 12 08:44:45 UTC 2019
Refactor adjust_total_allocated, so that it takes a bool argument
indicating if it should add or subtract the buffer size.
Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
---
drivers/md/dm-bufio.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
Index: linux-2.6/drivers/md/dm-bufio.c
===================================================================
--- linux-2.6.orig/drivers/md/dm-bufio.c 2019-09-10 16:38:03.000000000 +0200
+++ linux-2.6/drivers/md/dm-bufio.c 2019-09-10 16:38:41.000000000 +0200
@@ -286,14 +286,22 @@ static void __remove(struct dm_bufio_cli
/*----------------------------------------------------------------*/
-static void adjust_total_allocated(unsigned char data_mode, long diff)
+static void adjust_total_allocated(struct dm_buffer *b, bool unlink)
{
+ unsigned char data_mode;
+ long diff;
+
static unsigned long * const class_ptr[DATA_MODE_LIMIT] = {
&dm_bufio_allocated_kmem_cache,
&dm_bufio_allocated_get_free_pages,
&dm_bufio_allocated_vmalloc,
};
+ data_mode = b->data_mode;
+ diff = (long)b->c->block_size;
+ if (unlink)
+ diff = -diff;
+
spin_lock(¶m_spinlock);
*class_ptr[data_mode] += diff;
@@ -463,7 +471,7 @@ static void __link_buffer(struct dm_buff
__insert(b->c, b);
b->last_accessed = jiffies;
- adjust_total_allocated(b->data_mode, (long)c->block_size);
+ adjust_total_allocated(b, false);
}
/*
@@ -479,7 +487,7 @@ static void __unlink_buffer(struct dm_bu
__remove(b->c, b);
list_del(&b->lru_list);
- adjust_total_allocated(b->data_mode, -(long)c->block_size);
+ adjust_total_allocated(b, true);
}
/*
More information about the dm-devel
mailing list