Applying Suses dosfstools-2.11_determine-sector-size.patch from Petr
Gajdos <pgajdos@suse.cz> to determine mkdosfs sector size automatically:
* determine sector size of device automatically or if -S parameter
present, verify, that it's not under physical sector size
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
This commit is contained in:
parent
fc92e197f8
commit
4371588cfa
@ -1424,6 +1424,7 @@ main (int argc, char **argv)
|
|||||||
int i = 0, pos, ch;
|
int i = 0, pos, ch;
|
||||||
int create = 0;
|
int create = 0;
|
||||||
unsigned long long cblocks;
|
unsigned long long cblocks;
|
||||||
|
int min_sector_size;
|
||||||
|
|
||||||
if (argc && *argv) { /* What's the program name? */
|
if (argc && *argv) { /* What's the program name? */
|
||||||
char *p;
|
char *p;
|
||||||
@ -1718,6 +1719,24 @@ main (int argc, char **argv)
|
|||||||
)
|
)
|
||||||
die ("Will not try to make filesystem on full-disk device '%s' (use -I if wanted)");
|
die ("Will not try to make filesystem on full-disk device '%s' (use -I if wanted)");
|
||||||
|
|
||||||
|
if (sector_size_set)
|
||||||
|
{
|
||||||
|
if (ioctl(dev, BLKSSZGET, &min_sector_size) >= 0)
|
||||||
|
if (sector_size < min_sector_size)
|
||||||
|
{
|
||||||
|
sector_size = min_sector_size;
|
||||||
|
fprintf(stderr, "Warning: sector size was set to %d (minimal for this device)\n", sector_size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ioctl(dev, BLKSSZGET, &min_sector_size) >= 0)
|
||||||
|
{
|
||||||
|
sector_size = min_sector_size;
|
||||||
|
sector_size_set = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
establish_params (statbuf.st_rdev,statbuf.st_size);
|
establish_params (statbuf.st_rdev,statbuf.st_size);
|
||||||
/* Establish the media parameters */
|
/* Establish the media parameters */
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user