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-stable-10
mailing list