diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-10-12 19:10:46 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-10-12 19:10:46 +0000 |
commit | dd0f32614ceb0dd72f406d8434acdecc5ccff616 (patch) | |
tree | 3620ac014837a178fc91eac4b54b7b2e5ceb5c41 /cpukit/libcsupport/src/link.c | |
parent | Fixed spacing. (diff) | |
download | rtems-dd0f32614ceb0dd72f406d8434acdecc5ccff616.tar.bz2 |
Added rtems_filesystem_freenode() macro and added calls at appropriate
places to make sure memory allocated for filesystem specifif nodes
gets freed.
Diffstat (limited to 'cpukit/libcsupport/src/link.c')
-rw-r--r-- | cpukit/libcsupport/src/link.c | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/cpukit/libcsupport/src/link.c b/cpukit/libcsupport/src/link.c index 38ce78d87a..c12398746d 100644 --- a/cpukit/libcsupport/src/link.c +++ b/cpukit/libcsupport/src/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; } |