diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-02-18 08:36:55 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-02-20 09:11:40 +0100 |
commit | 78a50d924c8c0a540e0d3ab60579de516e560c95 (patch) | |
tree | 3956b872fb79501be9640a593934586f51d7c6d8 /cpukit | |
parent | fstests/fsrdwr: Add test case (diff) | |
download | rtems-78a50d924c8c0a540e0d3ab60579de516e560c95.tar.bz2 |
dosfs: Fix file length update
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/libfs/src/dosfs/fat_file.c | 5 |
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) |