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)
|
if (count == 0)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
if ((fs_info->vol.type & FAT_FAT32) &&
|
/*if ((fs_info->vol.type & FAT_FAT32) &&
|
||||||
(fs_info->vol.next_cl != FAT_UNDEFINED_VALUE))
|
(fs_info->vol.next_cl != FAT_UNDEFINED_VALUE))*/
|
||||||
|
if (fs_info->vol.next_cl != FAT_UNDEFINED_VALUE)
|
||||||
cl4find = fs_info->vol.next_cl;
|
cl4find = fs_info->vol.next_cl;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -132,12 +133,12 @@ fat_scan_fat_for_free_clusters(
|
|||||||
/* have we satisfied request ? */
|
/* have we satisfied request ? */
|
||||||
if (*cls_added == count)
|
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;
|
fs_info->vol.next_cl = save_cln;
|
||||||
if (fs_info->vol.free_cls != 0xFFFFFFFF)
|
if (fs_info->vol.free_cls != 0xFFFFFFFF)
|
||||||
fs_info->vol.free_cls -= (*cls_added);
|
fs_info->vol.free_cls -= (*cls_added);
|
||||||
}
|
/*}*/
|
||||||
*last_cl = save_cln;
|
*last_cl = save_cln;
|
||||||
fat_buf_release(fs_info);
|
fat_buf_release(fs_info);
|
||||||
return rc;
|
return rc;
|
||||||
@@ -149,12 +150,13 @@ fat_scan_fat_for_free_clusters(
|
|||||||
cl4find = 2;
|
cl4find = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fs_info->vol.type & FAT_FAT32)
|
/*if (fs_info->vol.type & FAT_FAT32)
|
||||||
{
|
{*/
|
||||||
fs_info->vol.next_cl = save_cln;
|
fs_info->vol.next_cl = save_cln;
|
||||||
if (fs_info->vol.free_cls != 0xFFFFFFFF)
|
if (fs_info->vol.free_cls != 0xFFFFFFFF)
|
||||||
fs_info->vol.free_cls -= (*cls_added);
|
fs_info->vol.free_cls -= (*cls_added);
|
||||||
}
|
/*}*/
|
||||||
|
|
||||||
*last_cl = save_cln;
|
*last_cl = save_cln;
|
||||||
fat_buf_release(fs_info);
|
fat_buf_release(fs_info);
|
||||||
return RC_OK;
|
return RC_OK;
|
||||||
@@ -187,9 +189,11 @@ fat_free_fat_clusters_chain(
|
|||||||
rc = fat_get_fat_cluster(mt_entry, cur_cln, &next_cln);
|
rc = fat_get_fat_cluster(mt_entry, cur_cln, &next_cln);
|
||||||
if ( rc != RC_OK )
|
if ( rc != RC_OK )
|
||||||
{
|
{
|
||||||
if ((fs_info->vol.type & FAT_FAT32) &&
|
/*if ((fs_info->vol.type & FAT_FAT32) &&
|
||||||
(fs_info->vol.free_cls != FAT_UNDEFINED_VALUE))
|
(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;
|
fs_info->vol.free_cls += freed_cls_cnt;
|
||||||
|
|
||||||
fat_buf_release(fs_info);
|
fat_buf_release(fs_info);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@@ -202,12 +206,12 @@ fat_free_fat_clusters_chain(
|
|||||||
cur_cln = next_cln;
|
cur_cln = next_cln;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fs_info->vol.type & FAT_FAT32)
|
/*if (fs_info->vol.type & FAT_FAT32)
|
||||||
{
|
{*/
|
||||||
fs_info->vol.next_cl = chain;
|
fs_info->vol.next_cl = chain;
|
||||||
if (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;
|
fs_info->vol.free_cls += freed_cls_cnt;
|
||||||
}
|
/*}*/
|
||||||
|
|
||||||
fat_buf_release(fs_info);
|
fat_buf_release(fs_info);
|
||||||
if (rc1 != RC_OK)
|
if (rc1 != RC_OK)
|
||||||
|
|||||||
Reference in New Issue
Block a user