WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] blktap: Fix unused warnings in block-qcow2.c

To: Kevin Wolf <kwolf@xxxxxxx>
Subject: [Xen-devel] [PATCH] blktap: Fix unused warnings in block-qcow2.c
From: Kevin Wolf <kwolf@xxxxxxx>
Date: Thu, 28 Feb 2008 13:37:38 +0100
Cc: Srinivas Maturi <srinivas.maturi@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Thu, 28 Feb 2008 04:26:31 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <47C6A598.7010808@xxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <C3EC3D06.1D279%Keir.Fraser@xxxxxxxxxxxx> <47C6A598.7010808@xxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 1.5.0.8 (X11/20060911)
Kevin Wolf schrieb:
> Shouldn't -Wno-unused disable the check rather than enabling it?
> Removing it causes even more warnings. Maturi's compiler just seems to
> ignore that switch.

I see, it's the -D_FORTIFY_SOURCE=2 which causes the warnings. This is
not enabled in the standard xen-unstable Makefiles, so we could not
reproduce it.

The fix is trivial: These warning are all in functions which are used
only by qemu, but not by blktap. Just drop them.

Kevin

Signed-off-by: Kevin Wolf <kwolf@xxxxxxx>
diff -r 863563b3e029 tools/blktap/drivers/block-qcow2.c
--- a/tools/blktap/drivers/block-qcow2.c        Thu Feb 28 13:26:05 2008 +0100
+++ b/tools/blktap/drivers/block-qcow2.c        Thu Feb 28 13:30:19 2008 +0100
@@ -1241,167 +1241,6 @@ static void create_refcount_update(QCowC
                refcount++;
                *p = cpu_to_be16(refcount);
        }
-}
-
-static int qcow2_create(const char *filename, int64_t total_size,
-               const char *backing_file, int flags)
-{
-       int fd, header_size, backing_filename_len, l1_size, i, shift, l2_bits;
-       QCowHeader header;
-       uint64_t tmp, offset;
-       QCowCreateState s1, *s = &s1;
-
-       memset(s, 0, sizeof(*s));
-
-       fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0644);
-       if (fd < 0)
-               return -1;
-       memset(&header, 0, sizeof(header));
-       header.magic = cpu_to_be32(QCOW_MAGIC);
-       header.version = cpu_to_be32(QCOW_VERSION);
-       header.size = cpu_to_be64(total_size * 512);
-       header_size = sizeof(header);
-       backing_filename_len = 0;
-       if (backing_file) {
-               header.backing_file_offset = cpu_to_be64(header_size);
-               backing_filename_len = strlen(backing_file);
-               header.backing_file_size = cpu_to_be32(backing_filename_len);
-               header_size += backing_filename_len;
-       }
-       s->cluster_bits = 12;  /* 4 KB clusters */
-       s->cluster_size = 1 << s->cluster_bits;
-       header.cluster_bits = cpu_to_be32(s->cluster_bits);
-       header_size = (header_size + 7) & ~7;
-       if (flags & BLOCK_FLAG_ENCRYPT) {
-               header.crypt_method = cpu_to_be32(QCOW_CRYPT_AES);
-       } else {
-               header.crypt_method = cpu_to_be32(QCOW_CRYPT_NONE);
-       }
-       l2_bits = s->cluster_bits - 3;
-       shift = s->cluster_bits + l2_bits;
-       l1_size = (((total_size * 512) + (1LL << shift) - 1) >> shift);
-       offset = align_offset(header_size, s->cluster_size);
-       s->l1_table_offset = offset;
-       header.l1_table_offset = cpu_to_be64(s->l1_table_offset);
-       header.l1_size = cpu_to_be32(l1_size);
-       offset += align_offset(l1_size * sizeof(uint64_t), s->cluster_size);
-
-       s->refcount_table = qemu_mallocz(s->cluster_size);
-       if (!s->refcount_table)
-               goto fail;
-       s->refcount_block = qemu_mallocz(s->cluster_size);
-       if (!s->refcount_block)
-               goto fail;
-
-       s->refcount_table_offset = offset;
-       header.refcount_table_offset = cpu_to_be64(offset);
-       header.refcount_table_clusters = cpu_to_be32(1);
-       offset += s->cluster_size;
-
-       s->refcount_table[0] = cpu_to_be64(offset);
-       s->refcount_block_offset = offset;
-       offset += s->cluster_size;
-
-       /* update refcounts */
-       create_refcount_update(s, 0, header_size);
-       create_refcount_update(s, s->l1_table_offset, l1_size * 
sizeof(uint64_t));
-       create_refcount_update(s, s->refcount_table_offset, s->cluster_size);
-       create_refcount_update(s, s->refcount_block_offset, s->cluster_size);
-
-       /* write all the data */
-       write(fd, &header, sizeof(header));
-       if (backing_file) {
-               write(fd, backing_file, backing_filename_len);
-       }
-       lseek(fd, s->l1_table_offset, SEEK_SET);
-       tmp = 0;
-       for(i = 0;i < l1_size; i++) {
-               write(fd, &tmp, sizeof(tmp));
-       }
-       lseek(fd, s->refcount_table_offset, SEEK_SET);
-       write(fd, s->refcount_table, s->cluster_size);
-
-       lseek(fd, s->refcount_block_offset, SEEK_SET);
-       write(fd, s->refcount_block, s->cluster_size);
-
-       qemu_free(s->refcount_table);
-       qemu_free(s->refcount_block);
-       close(fd);
-       return 0;
-fail:
-       qemu_free(s->refcount_table);
-       qemu_free(s->refcount_block);
-       close(fd);
-       return -ENOMEM;
-}
-
-/* XXX: put compressed sectors first, then all the cluster aligned
-   tables to avoid losing bytes in alignment */
-static int qcow_write_compressed(struct disk_driver *bs, int64_t sector_num,
-               const uint8_t *buf, int nb_sectors)
-{
-       BDRVQcowState *s = bs->private;
-       z_stream strm;
-       int ret, out_len;
-       uint8_t *out_buf;
-       uint64_t cluster_offset;
-
-       if (nb_sectors == 0) {
-               /* align end of file to a sector boundary to ease reading with
-                  sector based I/Os */
-               cluster_offset = 512 * s->total_sectors;
-               cluster_offset = (cluster_offset + 511) & ~511;
-               ftruncate(s->fd, cluster_offset);
-               return 0;
-       }
-
-       if (nb_sectors != s->cluster_sectors)
-               return -EINVAL;
-
-       out_buf = qemu_malloc(s->cluster_size + (s->cluster_size / 1000) + 128);
-       if (!out_buf)
-               return -ENOMEM;
-
-       /* best compression, small window, no zlib header */
-       memset(&strm, 0, sizeof(strm));
-       ret = deflateInit2(&strm, Z_DEFAULT_COMPRESSION,
-                       Z_DEFLATED, -12,
-                       9, Z_DEFAULT_STRATEGY);
-       if (ret != 0) {
-               qemu_free(out_buf);
-               return -1;
-       }
-
-       strm.avail_in = s->cluster_size;
-       strm.next_in = (uint8_t *)buf;
-       strm.avail_out = s->cluster_size;
-       strm.next_out = out_buf;
-
-       ret = deflate(&strm, Z_FINISH);
-       if (ret != Z_STREAM_END && ret != Z_OK) {
-               qemu_free(out_buf);
-               deflateEnd(&strm);
-               return -1;
-       }
-       out_len = strm.next_out - out_buf;
-
-       deflateEnd(&strm);
-
-       if (ret != Z_STREAM_END || out_len >= s->cluster_size) {
-               /* could not compress: write normal cluster */
-               qcow_write(bs, sector_num, buf, s->cluster_sectors);
-       } else {
-               cluster_offset = get_cluster_offset(bs, sector_num << 9, 2,
-                                                                               
        out_len, 0, 0);
-               cluster_offset &= s->cluster_offset_mask;
-               if (bdrv_pwrite(s->fd, cluster_offset, out_buf, out_len) != 
out_len) {
-                       qemu_free(out_buf);
-                       return -1;
-               }
-       }
-
-       qemu_free(out_buf);
-       return 0;
 }
 
 static int qcow_submit(struct disk_driver *bs)
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel