From dd0f32614ceb0dd72f406d8434acdecc5ccff616 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 12 Oct 1999 19:10:46 +0000 Subject: Added rtems_filesystem_freenode() macro and added calls at appropriate places to make sure memory allocated for filesystem specifif nodes gets freed. --- c/src/lib/libc/link.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) (limited to 'c/src/lib/libc/link.c') diff --git a/c/src/lib/libc/link.c b/c/src/lib/libc/link.c index 38ce78d87a..c12398746d 100644 --- a/c/src/lib/libc/link.c +++ b/c/src/lib/libc/link.c @@ -44,8 +44,7 @@ int link( rtems_filesystem_get_start_loc( new, &i, &parent_loc ); result = (*parent_loc.ops->evalformake)( &new[i], &parent_loc, &name_start ); if ( result != 0 ) { - if ( existing_loc.ops->freenod ) - (*existing_loc.ops->freenod)( &parent_loc ); + rtems_filesystem_freenode( &parent_loc ); set_errno_and_return_minus_one( result ); } @@ -55,33 +54,21 @@ int link( */ if ( parent_loc.mt_entry != existing_loc.mt_entry ) { - if ( existing_loc.ops->freenod ) - (*existing_loc.ops->freenod)( &existing_loc ); - - if ( parent_loc.ops->freenod ) - (*parent_loc.ops->freenod)( &parent_loc ); - + rtems_filesystem_freenode( &existing_loc ); + rtems_filesystem_freenode( &parent_loc ); set_errno_and_return_minus_one( EXDEV ); } if ( !parent_loc.ops->link ) { - - if ( existing_loc.ops->freenod ) - (*existing_loc.ops->freenod)( &existing_loc ); - - if ( parent_loc.ops->freenod ) - (*parent_loc.ops->freenod)( &parent_loc ); - + rtems_filesystem_freenode( &existing_loc ); + rtems_filesystem_freenode( &parent_loc ); set_errno_and_return_minus_one( ENOTSUP ); } result = (*parent_loc.ops->link)( &existing_loc, &parent_loc, name_start ); - if ( existing_loc.ops->freenod ) - (*existing_loc.ops->freenod)( &existing_loc ); - - if ( parent_loc.ops->freenod ) - (*parent_loc.ops->freenod)( &parent_loc ); + rtems_filesystem_freenode( &existing_loc ); + rtems_filesystem_freenode( &parent_loc ); return result; } -- cgit v1.2.3