From: Theodore Ts'o Date: Sat, 13 Dec 2014 03:12:45 +0000 (-0500) Subject: libext2fs: use block_buf in ext2fs_alloc_block2() if it is provided X-Git-Tag: v1.43-WIP-2015-05-18~122 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=bc57b123d61f49cddcc3fb594fda2dcf589f9b38;p=tools%2Fe2fsprogs.git 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 --- diff --git a/lib/ext2fs/alloc.c b/lib/ext2fs/alloc.c index 54535c4..1bb4d47 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;