[rtems commit] dosfs: Fix format request with sectors per cluster
Sebastian Huber
sebh at rtems.org
Thu May 31 11:47:43 UTC 2012
Module: rtems
Branch: master
Commit: 53f2ca3be67186a8a99a8d819640e1141e2efbff
Changeset: http://git.rtems.org/rtems/commit/?id=53f2ca3be67186a8a99a8d819640e1141e2efbff
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Thu May 31 13:50:08 2012 +0200
dosfs: Fix format request with sectors per cluster
---
cpukit/libfs/src/dosfs/msdos_format.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/cpukit/libfs/src/dosfs/msdos_format.c b/cpukit/libfs/src/dosfs/msdos_format.c
index 9af86b7..305cec9 100644
--- a/cpukit/libfs/src/dosfs/msdos_format.c
+++ b/cpukit/libfs/src/dosfs/msdos_format.c
@@ -484,14 +484,22 @@ static int msdos_format_determine_fmt_params
* NOTE: maximum sect_per_clust is arbitrarily choosen with values that
* are a compromise concerning capacity and efficency
*/
+ uint32_t fat12_sect_per_clust = 8;
+ uint32_t fat16_sect_per_clust = 32;
+
+ if (rqdata != NULL && rqdata->sectors_per_cluster != 0) {
+ fat12_sect_per_clust = rqdata->sectors_per_cluster;
+ fat16_sect_per_clust = rqdata->sectors_per_cluster;
+ }
+
if (fmt_params->totl_sector_cnt
- < ((uint32_t)FAT_FAT12_MAX_CLN)*8) {
+ < FAT_FAT12_MAX_CLN * fat12_sect_per_clust) {
fmt_params->fattype = FAT_FAT12;
/* start trying with small clusters */
fmt_params->sectors_per_cluster = 2;
}
else if (fmt_params->totl_sector_cnt
- < ((uint32_t)FAT_FAT16_MAX_CLN)*32) {
+ < FAT_FAT16_MAX_CLN * fat16_sect_per_clust) {
fmt_params->fattype = FAT_FAT16;
/* start trying with small clusters */
fmt_params->sectors_per_cluster = 2;
More information about the vc
mailing list