From bc57b123d61f49cddcc3fb594fda2dcf589f9b38 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Fri, 12 Dec 2014 22:12:45 -0500 Subject: [PATCH] libext2fs: use block_buf in ext2fs_alloc_block2() if it is provided If the caller supplies a buffer to ext2fs_alloc_block2(), use it instead of calling ext2fs_zero_blocks2(). Signed-off-by: Theodore Ts'o --- lib/ext2fs/alloc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/ext2fs/alloc.c b/lib/ext2fs/alloc.c index 54535c499..1bb4d47f1 100644 --- a/lib/ext2fs/alloc.c +++ b/lib/ext2fs/alloc.c @@ -184,9 +184,6 @@ errcode_t ext2fs_alloc_block2(ext2_filsys fs, blk64_t goal, errcode_t retval; blk64_t block; - if (block_buf) - memset(block_buf, 0, fs->blocksize); - if (fs->get_alloc_block) { retval = (fs->get_alloc_block)(fs, goal, &block); if (retval) @@ -203,7 +200,11 @@ errcode_t ext2fs_alloc_block2(ext2_filsys fs, blk64_t goal, goto fail; } - retval = ext2fs_zero_blocks2(fs, block, 1, NULL, NULL); + if (block_buf) { + memset(block_buf, 0, fs->blocksize); + retval = io_channel_write_blk64(fs->io, block, 1, block_buf); + } else + retval = ext2fs_zero_blocks2(fs, block, 1, NULL, NULL); if (retval) goto fail; -- 2.47.3