Message ID | 1318831906-26113-1-git-send-email-wdongxu@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
On 10/17/2011 02:11 PM, Dong Xu Wang wrote: > Use gfree, to pair with g_malloc. Also fix coding style. Should it be g_free, instead of gfree. > Signed-off-by: Dong Xu Wang<wdongxu@linux.vnet.ibm.com> > --- > block/cloop.c | 114 +++++++++++++++++++++++++++++++-------------------------- > 1 files changed, 62 insertions(+), 52 deletions(-) > > diff --git a/block/cloop.c b/block/cloop.c > index 8cff9f2..708093e 100644 > --- a/block/cloop.c > +++ b/block/cloop.c > @@ -39,21 +39,23 @@ typedef struct BDRVCloopState { > > static int cloop_probe(const uint8_t *buf, int buf_size, const char *filename) > { > - const char* magic_version_2_0="#!/bin/sh\n" > - "#V2.0 Format\n" > - "modprobe cloop file=$0&& mount -r -t iso9660 /dev/cloop $1\n"; > - int length=strlen(magic_version_2_0); > - if(length>buf_size) > - length=buf_size; > - if(!memcmp(magic_version_2_0,buf,length)) > - return 2; > + const char *magic_version_2_0 = "#!/bin/sh\n" > + "#V2.0 Format\n" > + "modprobe cloop file=$0&& mount -r -t iso9660 /dev/cloop $1\n"; > + int length = strlen(magic_version_2_0); > + if (length> buf_size) { > + length = buf_size; > + } > + if (!memcmp(magic_version_2_0, buf, length)) { > + return 2; > + } > return 0; > } > > static int cloop_open(BlockDriverState *bs, int flags) > { > BDRVCloopState *s = bs->opaque; > - uint32_t offsets_size,max_compressed_block_size=1,i; > + uint32_t offsets_size, max_compressed_block_size = 1, i; > > bs->read_only = 1; > > @@ -73,26 +75,28 @@ static int cloop_open(BlockDriverState *bs, int flags) > s->offsets = g_malloc(offsets_size); > if (bdrv_pread(bs->file, 128 + 4 + 4, s->offsets, offsets_size)< > offsets_size) { > - goto cloop_close; > + goto cloop_close; > } > for(i=0;i<s->n_blocks;i++) { > - s->offsets[i]=be64_to_cpu(s->offsets[i]); > - if(i>0) { > - uint32_t size=s->offsets[i]-s->offsets[i-1]; > - if(size>max_compressed_block_size) > - max_compressed_block_size=size; > - } > + s->offsets[i] = be64_to_cpu(s->offsets[i]); > + if (i> 0) { > + uint32_t size = s->offsets[i]-s->offsets[i - 1]; > + if (size> max_compressed_block_size) { > + max_compressed_block_size = size; > + } > + } > } > > /* initialize zlib engine */ > - s->compressed_block = g_malloc(max_compressed_block_size+1); > + s->compressed_block = g_malloc(max_compressed_block_size + 1); > s->uncompressed_block = g_malloc(s->block_size); > - if(inflateInit(&s->zstream) != Z_OK) > - goto cloop_close; > - s->current_block=s->n_blocks; > + if (inflateInit(&s->zstream) != Z_OK) { > + goto cloop_close; > + } > + s->current_block = s->n_blocks; > > s->sectors_per_block = s->block_size/512; > - bs->total_sectors = s->n_blocks*s->sectors_per_block; > + bs->total_sectors = s->n_blocks * s->sectors_per_block; > return 0; > > cloop_close: > @@ -104,26 +108,29 @@ static inline int cloop_read_block(BlockDriverState *bs, int block_num) > BDRVCloopState *s = bs->opaque; > > if(s->current_block != block_num) { > - int ret; > - uint32_t bytes = s->offsets[block_num+1]-s->offsets[block_num]; > + int ret; > + uint32_t bytes = s->offsets[block_num+1] - s->offsets[block_num]; > > ret = bdrv_pread(bs->file, s->offsets[block_num], s->compressed_block, > bytes); > - if (ret != bytes) > + if (ret != bytes) { > return -1; > + } > + > + s->zstream.next_in = s->compressed_block; > + s->zstream.avail_in = bytes; > + s->zstream.next_out = s->uncompressed_block; > + s->zstream.avail_out = s->block_size; > + ret = inflateReset(&s->zstream); > + if (ret != Z_OK) { > + return -1; > + } > + ret = inflate(&s->zstream, Z_FINISH); > + if (ret != Z_STREAM_END || s->zstream.total_out != s->block_size) { > + return -1; > + } > > - s->zstream.next_in = s->compressed_block; > - s->zstream.avail_in = bytes; > - s->zstream.next_out = s->uncompressed_block; > - s->zstream.avail_out = s->block_size; > - ret = inflateReset(&s->zstream); > - if(ret != Z_OK) > - return -1; > - ret = inflate(&s->zstream, Z_FINISH); > - if(ret != Z_STREAM_END || s->zstream.total_out != s->block_size) > - return -1; > - > - s->current_block = block_num; > + s->current_block = block_num; > } > return 0; > } > @@ -134,12 +141,14 @@ static int cloop_read(BlockDriverState *bs, int64_t sector_num, > BDRVCloopState *s = bs->opaque; > int i; > > - for(i=0;i<nb_sectors;i++) { > - uint32_t sector_offset_in_block=((sector_num+i)%s->sectors_per_block), > - block_num=(sector_num+i)/s->sectors_per_block; > - if(cloop_read_block(bs, block_num) != 0) > - return -1; > - memcpy(buf+i*512,s->uncompressed_block+sector_offset_in_block*512,512); > + for (i = 0; i< nb_sectors; i++) { > + uint32_t sector_offset_in_block = ((sector_num + i) % s->sectors_per_block), > + block_num = (sector_num + i) / s->sectors_per_block; > + if (cloop_read_block(bs, block_num) != 0) { > + return -1; > + } > + memcpy(buf + i * 512, s->uncompressed_block + > + sector_offset_in_block * 512, 512); > } > return 0; > } > @@ -147,20 +156,21 @@ static int cloop_read(BlockDriverState *bs, int64_t sector_num, > static void cloop_close(BlockDriverState *bs) > { > BDRVCloopState *s = bs->opaque; > - if(s->n_blocks>0) > - free(s->offsets); > - free(s->compressed_block); > - free(s->uncompressed_block); > + if (s->n_blocks> 0) { > + g_free(s->offsets); > + } > + g_free(s->compressed_block); > + g_free(s->uncompressed_block); > inflateEnd(&s->zstream); > } > > static BlockDriver bdrv_cloop = { > - .format_name = "cloop", > - .instance_size = sizeof(BDRVCloopState), > - .bdrv_probe = cloop_probe, > - .bdrv_open = cloop_open, > - .bdrv_read = cloop_read, > - .bdrv_close = cloop_close, > + .format_name = "cloop", > + .instance_size = sizeof(BDRVCloopState), > + .bdrv_probe = cloop_probe, > + .bdrv_open = cloop_open, > + .bdrv_read = cloop_read, > + .bdrv_close = cloop_close, > }; > > static void bdrv_cloop_init(void) Reviewed_by: raywang@linux.vnet.ibm.com
diff --git a/block/cloop.c b/block/cloop.c index 8cff9f2..708093e 100644 --- a/block/cloop.c +++ b/block/cloop.c @@ -39,21 +39,23 @@ typedef struct BDRVCloopState { static int cloop_probe(const uint8_t *buf, int buf_size, const char *filename) { - const char* magic_version_2_0="#!/bin/sh\n" - "#V2.0 Format\n" - "modprobe cloop file=$0 && mount -r -t iso9660 /dev/cloop $1\n"; - int length=strlen(magic_version_2_0); - if(length>buf_size) - length=buf_size; - if(!memcmp(magic_version_2_0,buf,length)) - return 2; + const char *magic_version_2_0 = "#!/bin/sh\n" + "#V2.0 Format\n" + "modprobe cloop file=$0 && mount -r -t iso9660 /dev/cloop $1\n"; + int length = strlen(magic_version_2_0); + if (length > buf_size) { + length = buf_size; + } + if (!memcmp(magic_version_2_0, buf, length)) { + return 2; + } return 0; } static int cloop_open(BlockDriverState *bs, int flags) { BDRVCloopState *s = bs->opaque; - uint32_t offsets_size,max_compressed_block_size=1,i; + uint32_t offsets_size, max_compressed_block_size = 1, i; bs->read_only = 1; @@ -73,26 +75,28 @@ static int cloop_open(BlockDriverState *bs, int flags) s->offsets = g_malloc(offsets_size); if (bdrv_pread(bs->file, 128 + 4 + 4, s->offsets, offsets_size) < offsets_size) { - goto cloop_close; + goto cloop_close; } for(i=0;i<s->n_blocks;i++) { - s->offsets[i]=be64_to_cpu(s->offsets[i]); - if(i>0) { - uint32_t size=s->offsets[i]-s->offsets[i-1]; - if(size>max_compressed_block_size) - max_compressed_block_size=size; - } + s->offsets[i] = be64_to_cpu(s->offsets[i]); + if (i > 0) { + uint32_t size = s->offsets[i]-s->offsets[i - 1]; + if (size > max_compressed_block_size) { + max_compressed_block_size = size; + } + } } /* initialize zlib engine */ - s->compressed_block = g_malloc(max_compressed_block_size+1); + s->compressed_block = g_malloc(max_compressed_block_size + 1); s->uncompressed_block = g_malloc(s->block_size); - if(inflateInit(&s->zstream) != Z_OK) - goto cloop_close; - s->current_block=s->n_blocks; + if (inflateInit(&s->zstream) != Z_OK) { + goto cloop_close; + } + s->current_block = s->n_blocks; s->sectors_per_block = s->block_size/512; - bs->total_sectors = s->n_blocks*s->sectors_per_block; + bs->total_sectors = s->n_blocks * s->sectors_per_block; return 0; cloop_close: @@ -104,26 +108,29 @@ static inline int cloop_read_block(BlockDriverState *bs, int block_num) BDRVCloopState *s = bs->opaque; if(s->current_block != block_num) { - int ret; - uint32_t bytes = s->offsets[block_num+1]-s->offsets[block_num]; + int ret; + uint32_t bytes = s->offsets[block_num+1] - s->offsets[block_num]; ret = bdrv_pread(bs->file, s->offsets[block_num], s->compressed_block, bytes); - if (ret != bytes) + if (ret != bytes) { return -1; + } + + s->zstream.next_in = s->compressed_block; + s->zstream.avail_in = bytes; + s->zstream.next_out = s->uncompressed_block; + s->zstream.avail_out = s->block_size; + ret = inflateReset(&s->zstream); + if (ret != Z_OK) { + return -1; + } + ret = inflate(&s->zstream, Z_FINISH); + if (ret != Z_STREAM_END || s->zstream.total_out != s->block_size) { + return -1; + } - s->zstream.next_in = s->compressed_block; - s->zstream.avail_in = bytes; - s->zstream.next_out = s->uncompressed_block; - s->zstream.avail_out = s->block_size; - ret = inflateReset(&s->zstream); - if(ret != Z_OK) - return -1; - ret = inflate(&s->zstream, Z_FINISH); - if(ret != Z_STREAM_END || s->zstream.total_out != s->block_size) - return -1; - - s->current_block = block_num; + s->current_block = block_num; } return 0; } @@ -134,12 +141,14 @@ static int cloop_read(BlockDriverState *bs, int64_t sector_num, BDRVCloopState *s = bs->opaque; int i; - for(i=0;i<nb_sectors;i++) { - uint32_t sector_offset_in_block=((sector_num+i)%s->sectors_per_block), - block_num=(sector_num+i)/s->sectors_per_block; - if(cloop_read_block(bs, block_num) != 0) - return -1; - memcpy(buf+i*512,s->uncompressed_block+sector_offset_in_block*512,512); + for (i = 0; i < nb_sectors; i++) { + uint32_t sector_offset_in_block = ((sector_num + i) % s->sectors_per_block), + block_num = (sector_num + i) / s->sectors_per_block; + if (cloop_read_block(bs, block_num) != 0) { + return -1; + } + memcpy(buf + i * 512, s->uncompressed_block + + sector_offset_in_block * 512, 512); } return 0; } @@ -147,20 +156,21 @@ static int cloop_read(BlockDriverState *bs, int64_t sector_num, static void cloop_close(BlockDriverState *bs) { BDRVCloopState *s = bs->opaque; - if(s->n_blocks>0) - free(s->offsets); - free(s->compressed_block); - free(s->uncompressed_block); + if (s->n_blocks > 0) { + g_free(s->offsets); + } + g_free(s->compressed_block); + g_free(s->uncompressed_block); inflateEnd(&s->zstream); } static BlockDriver bdrv_cloop = { - .format_name = "cloop", - .instance_size = sizeof(BDRVCloopState), - .bdrv_probe = cloop_probe, - .bdrv_open = cloop_open, - .bdrv_read = cloop_read, - .bdrv_close = cloop_close, + .format_name = "cloop", + .instance_size = sizeof(BDRVCloopState), + .bdrv_probe = cloop_probe, + .bdrv_open = cloop_open, + .bdrv_read = cloop_read, + .bdrv_close = cloop_close, }; static void bdrv_cloop_init(void)
Use gfree, to pair with g_malloc. Also fix coding style. Signed-off-by: Dong Xu Wang <wdongxu@linux.vnet.ibm.com> --- block/cloop.c | 114 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 62 insertions(+), 52 deletions(-)