Changes by: antona
Update of /cvsroot/linux-ntfs/linux-ntfs/ntfstools
In directory usw-pr-cvs1:/tmp/cvs-serv8321/ntfstools
Modified Files:
mkntfs.c
Log Message:
Change sizedetection for files so we work with sparse files, too.
Index: mkntfs.c
===================================================================
RCS file: /cvsroot/linux-ntfs/linux-ntfs/ntfstools/mkntfs.c,v
retrieving revision 1.82
retrieving revision 1.83
diff -U2 -r1.82 -r1.83
--- mkntfs.c 15 Jul 2002 16:41:48 -0000 1.82
+++ mkntfs.c 15 Jul 2002 18:06:29 -0000 1.83
@@ -2323,13 +2323,8 @@
fprintf(stderr, "Copyright (c) 2001,2002 Anton Altaparmakov.\n"
"Create an NTFS volume on a user specified (block) device.\n"
- "%s is free software, released under the GNU General Public "
- "License\nand you are welcome to redistribute it under "
- "certain conditions.\n%s comes with ABSOLUTELY NO WARRANTY; "
- "for details read the GNU\nGeneral Public License to be found "
- "in the file COPYING in the main\nLinux-NTFS distribution "
- "directory.\nUsage: %s [-s sector-size] [-c cluster-size] "
+ "Usage: %s [-s sector-size] [-c cluster-size] "
"[-L volume-label]\n\t[-z mft-zone-multiplier] "
"[-fnqvvCFIQV] device [number-of-sectors]\n",
- EXEC_NAME, EXEC_NAME, EXEC_NAME);
+ EXEC_NAME);
exit(1);
}
@@ -2565,12 +2560,19 @@
err_exit("Refusing to make a filesystem here!\n");
if (!opt.nr_sectors) {
- if (!sbuf.st_blocks)
+ if (!sbuf.st_size && !sbuf.st_blocks)
err_exit("You must specify the number of "
"sectors.\n");
- if (opt.sector_size)
- opt.nr_sectors = ((s64)sbuf.st_blocks << 9) /
- opt.sector_size;
- else {
- opt.nr_sectors = sbuf.st_blocks;
+ if (opt.sector_size) {
+ if (sbuf.st_size)
+ opt.nr_sectors = sbuf.st_size /
+ opt.sector_size;
+ else
+ opt.nr_sectors = ((s64)sbuf.st_blocks
+ << 9) / opt.sector_size;
+ } else {
+ if (sbuf.st_size)
+ opt.nr_sectors = sbuf.st_size / 512;
+ else
+ opt.nr_sectors = sbuf.st_blocks;
opt.sector_size = 512;
}
|