summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libfs')
-rw-r--r--cpukit/libfs/src/dosfs/fat_file.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/cpukit/libfs/src/dosfs/fat_file.c b/cpukit/libfs/src/dosfs/fat_file.c
index b71745ff5b..4425b857dd 100644
--- a/cpukit/libfs/src/dosfs/fat_file.c
+++ b/cpukit/libfs/src/dosfs/fat_file.c
@@ -633,8 +633,9 @@ fat_file_extend(
/* check wether we satisfied request for 'cls2add' clusters */
if (cls2add != cls_added)
{
- new_length -= bytes2add & (fs_info->vol.bpc - 1);
- new_length -= (cls2add - cls_added) << fs_info->vol.bpc_log2;
+ uint32_t missing = (cls2add - cls_added) << fs_info->vol.bpc_log2;
+
+ new_length -= bytes2add < missing ? bytes2add : missing;
}
if (cls_added > 0)