[syslinux] [PATCH 3/5] utils/mkdiskimage.in: Replaced the partly linux-specific file size determination by a sysseek() experiment.
Thomas Schmitt
scdbackup at gmx.net
Thu Jul 10 12:21:24 PDT 2014
---
utils/mkdiskimage.in | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/utils/mkdiskimage.in b/utils/mkdiskimage.in
index 8914cee..3948bee 100644
--- a/utils/mkdiskimage.in
+++ b/utils/mkdiskimage.in
@@ -19,6 +19,7 @@
use bytes;
use integer;
use Fcntl;
+use Fcntl qw(:seek);
use Errno;
use Cwd;
use IO::Handle; # For flush()
@@ -116,15 +117,8 @@ if ( $c == 0 && $file ne '' ) {
$len = 0;
if ( sysopen(OUTPUT, $file, O_RDWR, 0666) ) {
$is_open = 1;
-
- if ( (@filestat = stat(OUTPUT)) && S_ISREG($filestat[2]) ) {
- $len = $filestat[7] >> 9;
- } elsif ( $is_linux && S_ISBLK($filestat[2]) ) {
- $blksize = pack("L!", 0);
- if ( ioctl(OUTPUT, $BLKGETSIZE, $blksize) == 0 ) {
- $len = unpack("L!", $blksize); # In 512-byte sectors!
- }
- }
+ $len = sysseek(OUTPUT, 0, SEEK_END) >> 9;
+ sysseek(OUTPUT, 0, SEEK_SET);
}
if ( !$len ) {
--
2.0.0
More information about the Syslinux
mailing list