summaryrefslogtreecommitdiff
path: root/components/dfs/filesystems/elmfat
diff options
context:
space:
mode:
authorprife <[email protected]>2013-12-21 12:04:19 +0800
committerprife <[email protected]>2013-12-21 12:04:19 +0800
commit26a31d662d2efcae41e723d0928569fbb587dfd0 (patch)
tree3f31cdafe5567992f8cbb62e3e3ba366a5062ceb /components/dfs/filesystems/elmfat
parent4f9dc273ec03c91d32a8762518c5491050b7cdc6 (diff)
dfs: make elmfatfs check secter size everytime
more infomation: http://www.rt-thread.org/phpBB3/topic2965.html
Diffstat (limited to 'components/dfs/filesystems/elmfat')
-rw-r--r--components/dfs/filesystems/elmfat/ff.c15
-rw-r--r--components/dfs/filesystems/elmfat/ff.h2
2 files changed, 6 insertions, 11 deletions
diff --git a/components/dfs/filesystems/elmfat/ff.c b/components/dfs/filesystems/elmfat/ff.c
index 014d70f590..e1f2f60c78 100644
--- a/components/dfs/filesystems/elmfat/ff.c
+++ b/components/dfs/filesystems/elmfat/ff.c
@@ -108,12 +108,8 @@
#if _MAX_SS != 512 && _MAX_SS != 1024 && _MAX_SS != 2048 && _MAX_SS != 4096
#error Wrong sector size.
#endif
-#if _MAX_SS != 512
-#define SS(fs) ((fs)->ssize) /* Multiple sector size */
-#else
-#define SS(fs) 512U /* Fixed sector size */
-#endif
+#define SS(fs) ((fs)->ssize) /* sector size */
/* Reentrancy related */
#if _FS_REENTRANT
@@ -2058,10 +2054,11 @@ FRESULT chk_mounted ( /* FR_OK(0): successful, !=0: any error occurred */
stat = disk_initialize(fs->drv); /* Initialize low level disk I/O layer */
if (stat & STA_NOINIT) /* Check if the initialization succeeded */
return FR_NOT_READY; /* Failed to initialize due to no media or hard error */
-#if _MAX_SS != 512 /* Get disk sector size (variable sector size cfg only) */
+
+ /* Get disk sector size (variable sector size cfg only) */
if (disk_ioctl(fs->drv, GET_SECTOR_SIZE, &fs->ssize) != RES_OK)
return FR_DISK_ERR;
-#endif
+
#if !_FS_READONLY
if (chk_wp && (stat & STA_PROTECT)) /* Check disk write protection if needed */
return FR_WRITE_PROTECTED;
@@ -3601,10 +3598,10 @@ FRESULT f_mkfs (
stat = disk_initialize(drv);
if (stat & STA_NOINIT) return FR_NOT_READY;
if (stat & STA_PROTECT) return FR_WRITE_PROTECTED;
-#if _MAX_SS != 512 /* Get disk sector size */
+ /* Get disk sector size */
if (disk_ioctl(drv, GET_SECTOR_SIZE, &SS(fs)) != RES_OK)
return FR_DISK_ERR;
-#endif
+
if (disk_ioctl(drv, GET_SECTOR_COUNT, &n_vol) != RES_OK || n_vol < 128)
return FR_DISK_ERR;
b_vol = (sfd) ? 0 : 63; /* Volume start sector */
diff --git a/components/dfs/filesystems/elmfat/ff.h b/components/dfs/filesystems/elmfat/ff.h
index dfbc100fff..061dd76dca 100644
--- a/components/dfs/filesystems/elmfat/ff.h
+++ b/components/dfs/filesystems/elmfat/ff.h
@@ -84,9 +84,7 @@ typedef struct {
BYTE fsi_flag; /* fsinfo dirty flag (1:must be written back) */
WORD id; /* File system mount ID */
WORD n_rootdir; /* Number of root directory entries (FAT12/16) */
-#if _MAX_SS != 512
WORD ssize; /* Bytes per sector (512,1024,2048,4096) */
-#endif
#if _FS_REENTRANT
_SYNC_t sobj; /* Identifier of sync object */
#endif