summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpukit/libfs/src/imfs/memfile.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/cpukit/libfs/src/imfs/memfile.c b/cpukit/libfs/src/imfs/memfile.c
index 901ebc6e2a..b467ae99aa 100644
--- a/cpukit/libfs/src/imfs/memfile.c
+++ b/cpukit/libfs/src/imfs/memfile.c
@@ -39,7 +39,7 @@ MEMFILE_STATIC int IMFS_memfile_addblock(
unsigned int block
);
-MEMFILE_STATIC int IMFS_memfile_remove_block(
+MEMFILE_STATIC void IMFS_memfile_remove_block(
IMFS_jnode_t *the_jnode,
unsigned int block
);
@@ -273,6 +273,9 @@ MEMFILE_STATIC int IMFS_memfile_addblock(
* Obtain the pointer for the specified block number
*/
block_entry_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 1 );
+ if ( !block_entry_ptr )
+ return 1;
+
if ( *block_entry_ptr )
return 0;
@@ -297,7 +300,7 @@ MEMFILE_STATIC int IMFS_memfile_addblock(
* block from the middle of a file would be exceptionally
* dangerous and the results unpredictable.
*/
-MEMFILE_STATIC int IMFS_memfile_remove_block(
+MEMFILE_STATIC void IMFS_memfile_remove_block(
IMFS_jnode_t *the_jnode,
unsigned int block
)
@@ -306,13 +309,11 @@ MEMFILE_STATIC int IMFS_memfile_remove_block(
block_p ptr;
block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
- IMFS_assert( block_ptr );
-
- ptr = *block_ptr;
- *block_ptr = 0;
- memfile_free_block( ptr );
-
- return 1;
+ if ( block_ptr ) {
+ ptr = *block_ptr;
+ *block_ptr = 0;
+ memfile_free_block( ptr );
+ }
}
/*