Author: marcel
Date: Sun Dec 28 18:43:39 2014
New Revision: 276337
URL: https://svnweb.freebsd.org/changeset/base/276337

Log:
  MFC r275721:
  The size of the first level reference count table is given in terms of the
  number of clusters it occupies.
  
  Bump the version number of mkimg.

Modified:
  stable/10/usr.bin/mkimg/Makefile
  stable/10/usr.bin/mkimg/qcow.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.bin/mkimg/Makefile
==============================================================================
--- stable/10/usr.bin/mkimg/Makefile    Sun Dec 28 18:38:25 2014        
(r276336)
+++ stable/10/usr.bin/mkimg/Makefile    Sun Dec 28 18:43:39 2014        
(r276337)
@@ -4,7 +4,7 @@ PROG=   mkimg
 SRCS=  format.c image.c mkimg.c scheme.c
 MAN=   mkimg.1
 
-MKIMG_VERSION=20141003
+MKIMG_VERSION=20141211
 mkimg.o: Makefile
 
 CFLAGS+=-DMKIMG_VERSION=${MKIMG_VERSION}

Modified: stable/10/usr.bin/mkimg/qcow.c
==============================================================================
--- stable/10/usr.bin/mkimg/qcow.c      Sun Dec 28 18:38:25 2014        
(r276336)
+++ stable/10/usr.bin/mkimg/qcow.c      Sun Dec 28 18:43:39 2014        
(r276337)
@@ -71,7 +71,7 @@ struct qcow_header {
                        uint32_t        l1_entries;
                        uint64_t        l1_offset;
                        uint64_t        refcnt_offset;
-                       uint32_t        refcnt_entries;
+                       uint32_t        refcnt_clstrs;
                        uint32_t        snapshot_count;
                        uint64_t        snapshot_offset;
                } v2;
@@ -139,7 +139,7 @@ qcow_write(int fd, u_int version)
        uint64_t n, imagesz, nclstrs, ofs, ofsflags;
        lba_t blk, blkofs, blk_imgsz;
        u_int l1clno, l2clno, rcclno;
-       u_int blk_clstrsz;
+       u_int blk_clstrsz, refcnt_clstrs;
        u_int clstrsz, l1idx, l2idx;
        int error;
 
@@ -199,14 +199,15 @@ qcow_write(int fd, u_int version)
                be32enc(&hdr->u.v2.l1_entries, clstr_l2tbls);
                be64enc(&hdr->u.v2.l1_offset, clstrsz * l1clno);
                be64enc(&hdr->u.v2.refcnt_offset, clstrsz * rcclno);
-               be32enc(&hdr->u.v2.refcnt_entries, clstr_rcblks);
+               refcnt_clstrs = round_clstr(clstr_rcblks * 8) >> clstr_log2sz;
+               be32enc(&hdr->u.v2.refcnt_clstrs, refcnt_clstrs);
                break;
        default:
                return (EDOOFUS);
        }
 
        if (sparse_write(fd, hdr, clstrsz) < 0) {
-                error = errno;
+               error = errno;
                goto out;
        }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to