svn commit: r276337 - stable/10/usr.bin/mkimg

Marcel Moolenaar marcel at FreeBSD.org
Sun Dec 28 18:43:40 UTC 2014


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;
 	}
 


More information about the svn-src-all mailing list