mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-05 15:15:44 +00:00
2003-08-05 Thomas Doerfler <Thomas.Doerfler@imd-systems.de>
PR 439/filesystem * src/dosfs/fat_fat_operations.c: Improve write data speed for DOSFS FAT12/FAT16 systems
This commit is contained in:
@@ -63,8 +63,9 @@ fat_scan_fat_for_free_clusters(
|
||||
if (count == 0)
|
||||
return rc;
|
||||
|
||||
if ((fs_info->vol.type & FAT_FAT32) &&
|
||||
(fs_info->vol.next_cl != FAT_UNDEFINED_VALUE))
|
||||
/*if ((fs_info->vol.type & FAT_FAT32) &&
|
||||
(fs_info->vol.next_cl != FAT_UNDEFINED_VALUE))*/
|
||||
if (fs_info->vol.next_cl != FAT_UNDEFINED_VALUE)
|
||||
cl4find = fs_info->vol.next_cl;
|
||||
|
||||
/*
|
||||
@@ -132,12 +133,12 @@ fat_scan_fat_for_free_clusters(
|
||||
/* have we satisfied request ? */
|
||||
if (*cls_added == count)
|
||||
{
|
||||
if (fs_info->vol.type & FAT_FAT32)
|
||||
{
|
||||
/*if (fs_info->vol.type & FAT_FAT32)
|
||||
{*/
|
||||
fs_info->vol.next_cl = save_cln;
|
||||
if (fs_info->vol.free_cls != 0xFFFFFFFF)
|
||||
fs_info->vol.free_cls -= (*cls_added);
|
||||
}
|
||||
/*}*/
|
||||
*last_cl = save_cln;
|
||||
fat_buf_release(fs_info);
|
||||
return rc;
|
||||
@@ -149,12 +150,13 @@ fat_scan_fat_for_free_clusters(
|
||||
cl4find = 2;
|
||||
}
|
||||
|
||||
if (fs_info->vol.type & FAT_FAT32)
|
||||
{
|
||||
/*if (fs_info->vol.type & FAT_FAT32)
|
||||
{*/
|
||||
fs_info->vol.next_cl = save_cln;
|
||||
if (fs_info->vol.free_cls != 0xFFFFFFFF)
|
||||
fs_info->vol.free_cls -= (*cls_added);
|
||||
}
|
||||
/*}*/
|
||||
|
||||
*last_cl = save_cln;
|
||||
fat_buf_release(fs_info);
|
||||
return RC_OK;
|
||||
@@ -187,9 +189,11 @@ fat_free_fat_clusters_chain(
|
||||
rc = fat_get_fat_cluster(mt_entry, cur_cln, &next_cln);
|
||||
if ( rc != RC_OK )
|
||||
{
|
||||
if ((fs_info->vol.type & FAT_FAT32) &&
|
||||
(fs_info->vol.free_cls != FAT_UNDEFINED_VALUE))
|
||||
/*if ((fs_info->vol.type & FAT_FAT32) &&
|
||||
(fs_info->vol.free_cls != FAT_UNDEFINED_VALUE))*/
|
||||
if(fs_info->vol.free_cls != FAT_UNDEFINED_VALUE)
|
||||
fs_info->vol.free_cls += freed_cls_cnt;
|
||||
|
||||
fat_buf_release(fs_info);
|
||||
return rc;
|
||||
}
|
||||
@@ -202,12 +206,12 @@ fat_free_fat_clusters_chain(
|
||||
cur_cln = next_cln;
|
||||
}
|
||||
|
||||
if (fs_info->vol.type & FAT_FAT32)
|
||||
{
|
||||
/*if (fs_info->vol.type & FAT_FAT32)
|
||||
{*/
|
||||
fs_info->vol.next_cl = chain;
|
||||
if (fs_info->vol.free_cls != FAT_UNDEFINED_VALUE)
|
||||
fs_info->vol.free_cls += freed_cls_cnt;
|
||||
}
|
||||
/*}*/
|
||||
|
||||
fat_buf_release(fs_info);
|
||||
if (rc1 != RC_OK)
|
||||
|
||||
Reference in New Issue
Block a user