svn commit: r265550 - user/marcel/mkimg
Marcel Moolenaar
marcel at FreeBSD.org
Wed May 7 15:08:01 UTC 2014
Author: marcel
Date: Wed May 7 15:08:00 2014
New Revision: 265550
URL: http://svnweb.freebsd.org/changeset/base/265550
Log:
Abstract the use of ftruncate(2) behind mkimg_set_size().
Modified:
user/marcel/mkimg/bsd.c
user/marcel/mkimg/mkimg.c
user/marcel/mkimg/mkimg.h
user/marcel/mkimg/scheme.c
user/marcel/mkimg/vtoc8.c
Modified: user/marcel/mkimg/bsd.c
==============================================================================
--- user/marcel/mkimg/bsd.c Wed May 7 15:01:14 2014 (r265549)
+++ user/marcel/mkimg/bsd.c Wed May 7 15:08:00 2014 (r265550)
@@ -80,7 +80,9 @@ bsd_write(int fd, lba_t imgsz, void *boo
memset(buf, 0, BBSIZE);
imgsz = ncyls * nheads * nsecs;
- ftruncate(fd, imgsz * secsz);
+ error = mkimg_set_size(fd, imgsz);
+ if (error)
+ return (error);
d = (void *)(buf + secsz);
le32enc(&d->d_magic, DISKMAGIC);
Modified: user/marcel/mkimg/mkimg.c
==============================================================================
--- user/marcel/mkimg/mkimg.c Wed May 7 15:01:14 2014 (r265549)
+++ user/marcel/mkimg/mkimg.c Wed May 7 15:08:00 2014 (r265550)
@@ -317,6 +317,15 @@ fdcopy(int src, lba_t sblk, int dst, lba
}
int
+mkimg_set_size(int fd, lba_t blk)
+{
+
+ if (ftruncate(fd, blk * secsz) == -1)
+ return (errno);
+ return (0);
+}
+
+int
mkimg_write(int fd, lba_t blk, void *buf, ssize_t len)
{
Modified: user/marcel/mkimg/mkimg.h
==============================================================================
--- user/marcel/mkimg/mkimg.h Wed May 7 15:01:14 2014 (r265549)
+++ user/marcel/mkimg/mkimg.h Wed May 7 15:08:00 2014 (r265550)
@@ -67,6 +67,7 @@ round_block(lba_t n)
return ((n + b - 1) & ~(b - 1));
}
+int mkimg_set_size(int fd, lba_t blk);
int mkimg_write(int fd, lba_t blk, void *buf, ssize_t len);
#endif /* _MKIMG_MKIMG_H_ */
Modified: user/marcel/mkimg/scheme.c
==============================================================================
--- user/marcel/mkimg/scheme.c Wed May 7 15:01:14 2014 (r265549)
+++ user/marcel/mkimg/scheme.c Wed May 7 15:08:00 2014 (r265550)
@@ -189,9 +189,8 @@ scheme_write(int fd, lba_t end)
cylsz = nsecs * nheads;
ncyls = (end + cylsz - 1) / cylsz;
- if (ftruncate(fd, end * secsz) == -1)
- return (errno);
-
- error = scheme->write(fd, end, bootcode);
+ error = mkimg_set_size(fd, end);
+ if (!error)
+ error = scheme->write(fd, end, bootcode);
return (error);
}
Modified: user/marcel/mkimg/vtoc8.c
==============================================================================
--- user/marcel/mkimg/vtoc8.c Wed May 7 15:01:14 2014 (r265549)
+++ user/marcel/mkimg/vtoc8.c Wed May 7 15:08:00 2014 (r265550)
@@ -86,7 +86,9 @@ vtoc8_write(int fd, lba_t imgsz, void *b
be16enc(&vtoc8.nsecs, nsecs);
be16enc(&vtoc8.magic, VTOC_MAGIC);
- ftruncate(fd, imgsz * secsz);
+ error = mkimg_set_size(fd, imgsz);
+ if (error)
+ return (error);
be32enc(&vtoc8.map[VTOC_RAW_PART].nblks, imgsz);
STAILQ_FOREACH(part, &partlist, link) {
More information about the svn-src-user
mailing list