diff options
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/raid5-cache.c | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/drivers/md/raid5-cache.c b/drivers/md/raid5-cache.c index 2ac93fbc31eb..88758285261c 100644 --- a/drivers/md/raid5-cache.c +++ b/drivers/md/raid5-cache.c @@ -150,23 +150,6 @@ static bool r5l_has_free_space(struct r5l_log *log, sector_t size) return log->device_size > used_size + size; } -static struct r5l_io_unit *r5l_alloc_io_unit(struct r5l_log *log) -{ - struct r5l_io_unit *io; - /* We can't handle memory allocate failure so far */ - gfp_t gfp = GFP_NOIO | __GFP_NOFAIL; - - io = kmem_cache_zalloc(log->io_kc, gfp); - io->log = log; - io->meta_page = alloc_page(gfp | __GFP_ZERO); - - bio_list_init(&io->bios); - INIT_LIST_HEAD(&io->log_sibling); - INIT_LIST_HEAD(&io->stripe_list); - io->state = IO_UNIT_RUNNING; - return io; -} - static void r5l_free_io_unit(struct r5l_log *log, struct r5l_io_unit *io) { __free_page(io->meta_page); @@ -293,8 +276,15 @@ static struct r5l_io_unit *r5l_new_meta(struct r5l_log *log) struct r5l_io_unit *io; struct r5l_meta_block *block; - io = r5l_alloc_io_unit(log); + /* We can't handle memory allocate failure so far */ + io = kmem_cache_zalloc(log->io_kc, GFP_NOIO | __GFP_NOFAIL); + io->log = log; + bio_list_init(&io->bios); + INIT_LIST_HEAD(&io->log_sibling); + INIT_LIST_HEAD(&io->stripe_list); + io->state = IO_UNIT_RUNNING; + io->meta_page = alloc_page(GFP_NOIO | __GFP_NOFAIL | __GFP_ZERO); block = page_address(io->meta_page); block->magic = cpu_to_le32(R5LOG_MAGIC); block->version = R5LOG_VERSION; |