Changeset dd0f326 in rtems


Ignore:
Timestamp:
Oct 12, 1999, 7:10:46 PM (22 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
51435fc7
Parents:
e2116f9
Message:

Added rtems_filesystem_freenode() macro and added calls at appropriate
places to make sure memory allocated for filesystem specifif nodes
gets freed.

Files:
52 edited

Legend:

Unmodified
Added
Removed
  • c/src/exec/include/rtems/libio_.h

    re2116f9 rdd0f326  
    159159            return -1;                                \
    160160      }                                               \
     161  } while (0)
     162
     163/*
     164 *  rtems_filesystem_freenode
     165 *
     166 *  Macro to free a node.
     167 */
     168
     169#define rtems_filesystem_freenode( _node ) \
     170  do { \
     171    if ( (_node)->ops->freenod ) \
     172      (*(_node)->ops->freenod)( (_node) ); \
    161173  } while (0)
    162174
  • c/src/exec/libcsupport/include/rtems/libio_.h

    re2116f9 rdd0f326  
    159159            return -1;                                \
    160160      }                                               \
     161  } while (0)
     162
     163/*
     164 *  rtems_filesystem_freenode
     165 *
     166 *  Macro to free a node.
     167 */
     168
     169#define rtems_filesystem_freenode( _node ) \
     170  do { \
     171    if ( (_node)->ops->freenod ) \
     172      (*(_node)->ops->freenod)( (_node) ); \
    161173  } while (0)
    162174
  • c/src/exec/libcsupport/src/chdir.c

    re2116f9 rdd0f326  
    4040
    4141  if ( !loc.ops->node_type ) {
    42     if ( loc.ops->freenod )
    43       (*loc.ops->freenod)( &loc );
     42    rtems_filesystem_freenode( &loc );
    4443    set_errno_and_return_minus_one( ENOTSUP );
    4544  }
    4645
    4746  if (  (*loc.ops->node_type)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) {
    48     if ( loc.ops->freenod )
    49       (*loc.ops->freenod)( &loc );
     47    rtems_filesystem_freenode( &loc );
    5048    set_errno_and_return_minus_one( ENOTDIR );
    5149  }
    5250 
    53   if ( rtems_filesystem_current.ops->freenod )
    54     (*rtems_filesystem_current.ops->freenod)( &rtems_filesystem_current );
     51  rtems_filesystem_freenode( &rtems_filesystem_current );
    5552   
    5653  rtems_filesystem_current = loc;
  • c/src/exec/libcsupport/src/chmod.c

    re2116f9 rdd0f326  
    3636 
    3737  if ( !loc.handlers->fchmod ){
    38     if ( loc.ops->freenod )
    39       (*loc.ops->freenod)( &loc );
     38    rtems_filesystem_freenode( &loc );
    4039    set_errno_and_return_minus_one( ENOTSUP );
    4140  }
     
    4342  result = (*loc.handlers->fchmod)( &loc, mode );
    4443
    45   if ( loc.ops->freenod )
    46     (*loc.ops->freenod)( &loc );
     44  rtems_filesystem_freenode( &loc );
    4745 
    4846  return result;
  • c/src/exec/libcsupport/src/chown.c

    re2116f9 rdd0f326  
    3434 
    3535  if ( !loc.ops->chown ) {
    36     if ( loc.ops->freenod )
    37       (*loc.ops->freenod)( &loc );
     36    rtems_filesystem_freenode( &loc );
    3837    set_errno_and_return_minus_one( ENOTSUP );
    3938  }
     
    4140  result = (*loc.ops->chown)( &loc, owner, group );
    4241
    43   if ( loc.ops->freenod )
    44     (*loc.ops->freenod)( &loc );
     42  rtems_filesystem_freenode( &loc );
    4543 
    4644  return result;
  • c/src/exec/libcsupport/src/link.c

    re2116f9 rdd0f326  
    4545  result = (*parent_loc.ops->evalformake)( &new[i], &parent_loc, &name_start );
    4646  if ( result != 0 ) {
    47     if ( existing_loc.ops->freenod )
    48       (*existing_loc.ops->freenod)( &parent_loc );
     47    rtems_filesystem_freenode( &parent_loc );
    4948    set_errno_and_return_minus_one( result );
    5049  }
     
    5655
    5756  if ( parent_loc.mt_entry != existing_loc.mt_entry ) {
    58     if ( existing_loc.ops->freenod )
    59       (*existing_loc.ops->freenod)( &existing_loc );
    60 
    61     if ( parent_loc.ops->freenod )
    62       (*parent_loc.ops->freenod)( &parent_loc );
    63 
     57    rtems_filesystem_freenode( &existing_loc );
     58    rtems_filesystem_freenode( &parent_loc );
    6459    set_errno_and_return_minus_one( EXDEV );
    6560  }
    6661
    6762  if ( !parent_loc.ops->link ) {
    68 
    69     if ( existing_loc.ops->freenod )
    70       (*existing_loc.ops->freenod)( &existing_loc );
    71 
    72     if ( parent_loc.ops->freenod )
    73       (*parent_loc.ops->freenod)( &parent_loc );
    74 
     63    rtems_filesystem_freenode( &existing_loc );
     64    rtems_filesystem_freenode( &parent_loc );
    7565    set_errno_and_return_minus_one( ENOTSUP );
    7666  }
     
    7868  result = (*parent_loc.ops->link)( &existing_loc, &parent_loc, name_start );
    7969 
    80   if ( existing_loc.ops->freenod )
    81     (*existing_loc.ops->freenod)( &existing_loc );
    82 
    83   if ( parent_loc.ops->freenod )
    84     (*parent_loc.ops->freenod)( &parent_loc );
     70  rtems_filesystem_freenode( &existing_loc );
     71  rtems_filesystem_freenode( &parent_loc );
    8572
    8673  return result;
  • c/src/exec/libcsupport/src/mknod.c

    re2116f9 rdd0f326  
    5454
    5555  if ( !temp_loc.ops->mknod ) {
    56     if ( temp_loc.ops->freenod )
    57       (*temp_loc.ops->freenod)( &temp_loc );
     56    rtems_filesystem_freenode( &temp_loc );
    5857    set_errno_and_return_minus_one( ENOTSUP );
    5958  }
    6059
    6160  result =  (*temp_loc.ops->mknod)( name_start, mode, dev, &temp_loc );
    62   if ( temp_loc.ops->freenod )
    63     (*temp_loc.ops->freenod)( &temp_loc );
     61
     62  rtems_filesystem_freenode( &temp_loc );
    6463
    6564  return result;
  • c/src/exec/libcsupport/src/mount.c

    re2116f9 rdd0f326  
    225225  *mt_entry = temp_mt_entry;
    226226
    227   if ( loc.ops->freenod )
    228     (*loc.ops->freenod)( &loc );
     227  rtems_filesystem_freenode( &loc );
    229228 
    230229  return 0;
     
    234233  free( temp_mt_entry );
    235234
    236   if ( loc.ops->freenod )
    237     (*loc.ops->freenod)( &loc );
     235  rtems_filesystem_freenode( &loc );
    238236 
    239237  return -1;
  • c/src/exec/libcsupport/src/open.c

    re2116f9 rdd0f326  
    180180  }
    181181
    182   if ( loc.ops->freenod )
    183     (*loc.ops->freenod)( &loc );
    184    
     182  rtems_filesystem_freenode( &loc );
     183
    185184  return iop - rtems_libio_iops;
    186185}
  • c/src/exec/libcsupport/src/readlink.c

    re2116f9 rdd0f326  
    3232 
    3333  if ( !loc.ops->node_type ){
    34     if ( loc.ops->freenod )
    35       (*loc.ops->freenod)( &loc );
     34    rtems_filesystem_freenode( &loc );
    3635    set_errno_and_return_minus_one( ENOTSUP );
    3736  }
    3837
    3938  if (  (*loc.ops->node_type)( &loc ) != RTEMS_FILESYSTEM_SYM_LINK ){
    40     if ( loc.ops->freenod )
    41       (*loc.ops->freenod)( &loc );
     39    rtems_filesystem_freenode( &loc );
    4240    set_errno_and_return_minus_one( EINVAL );
    4341  }
    4442
    4543  if ( !loc.ops->readlink ){
    46     if ( loc.ops->freenod )
    47       (*loc.ops->freenod)( &loc );
     44    rtems_filesystem_freenode( &loc );
    4845    set_errno_and_return_minus_one( ENOTSUP );
    4946  }
     
    5148  result =  (*loc.ops->readlink)( &loc, buf, bufsize );
    5249
    53   if ( loc.ops->freenod )
    54     (*loc.ops->freenod)( &loc );
     50  rtems_filesystem_freenode( &loc );
    5551 
    5652  return result;
  • c/src/exec/libcsupport/src/rmdir.c

    re2116f9 rdd0f326  
    4141
    4242  if ( !loc.ops->node_type ){
    43     if ( loc.ops->freenod )
    44       (*loc.ops->freenod)( &loc );
     43    rtems_filesystem_freenode( &loc );
    4544    set_errno_and_return_minus_one( ENOTSUP );
    4645  }
    4746
    4847  if (  (*loc.ops->node_type)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ){
    49     if ( loc.ops->freenod )
    50       (*loc.ops->freenod)( &loc );
     48    rtems_filesystem_freenode( &loc );
    5149    set_errno_and_return_minus_one( ENOTDIR );
    5250  }
     
    5755
    5856  if ( !loc.ops->rmnod ){
    59     if ( loc.ops->freenod )
    60       (*loc.ops->freenod)( &loc );
     57    rtems_filesystem_freenode( &loc );
    6158    set_errno_and_return_minus_one( ENOTSUP );
    6259  }
     
    6461  result =  (*loc.ops->rmnod)( &loc ); 
    6562
    66   if ( loc.ops->freenod )
    67     (*loc.ops->freenod)( &loc );
     63  rtems_filesystem_freenode( &loc );
    6864 
    6965  return result;
  • c/src/exec/libcsupport/src/stat.c

    re2116f9 rdd0f326  
    6060 
    6161  if ( !loc.handlers->fstat ){
    62     if ( loc.ops->freenod )
    63       (*loc.ops->freenod)( &loc );
     62    rtems_filesystem_freenode( &loc );
    6463    set_errno_and_return_minus_one( ENOTSUP );
    6564  }
     
    7473  status =  (*loc.handlers->fstat)( &loc, buf );
    7574
    76   if ( loc.ops->freenod )
    77     (*loc.ops->freenod)( &loc );
     75  rtems_filesystem_freenode( &loc );
    7876 
    7977  return status;
  • c/src/exec/libcsupport/src/symlink.c

    re2116f9 rdd0f326  
    3232  result = (*loc.ops->symlink)( &loc, actualpath, name_start);
    3333
    34   if ( loc.ops->freenod )
    35     (*loc.ops->freenod)( &loc );
     34  rtems_filesystem_freenode( &loc );
    3635
    3736  return result;
  • c/src/exec/libcsupport/src/unlink.c

    re2116f9 rdd0f326  
    3333 
    3434  if ( !loc.ops->node_type ) {
    35     if ( loc.ops->freenod )
    36       (*loc.ops->freenod)( &loc );
     35    rtems_filesystem_freenode( &loc );
    3736    set_errno_and_return_minus_one( ENOTSUP );
    3837  }
    3938
    4039  if (  (*loc.ops->node_type)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) {
    41     if ( loc.ops->freenod )
    42       (*loc.ops->freenod)( &loc );
     40    rtems_filesystem_freenode( &loc );
    4341    set_errno_and_return_minus_one( EISDIR );
    4442  }
    4543
    4644  if ( !loc.ops->unlink ) {
    47     if ( loc.ops->freenod )
    48       (*loc.ops->freenod)( &loc );
     45    rtems_filesystem_freenode( &loc );
    4946    set_errno_and_return_minus_one( ENOTSUP );
    5047  }
     
    5249  result = (*loc.ops->unlink)( &loc );
    5350
    54   if ( loc.ops->freenod )
    55     (*loc.ops->freenod)( &loc );
     51  rtems_filesystem_freenode( &loc );
    5652 
    5753  return result;
  • c/src/exec/libcsupport/src/unmount.c

    re2116f9 rdd0f326  
    8585
    8686  if ( rtems_filesystem_current.mt_entry == temp_loc.mt_entry ) {
    87     if ( temp_loc.ops->freenod )
    88       (*temp_loc.ops->freenod)( &temp_loc );
     87    rtems_filesystem_freenode( &temp_loc );
    8988    set_errno_and_return_minus_one( EBUSY );
    9089  }
     
    9796
    9897  if ( rtems_libio_is_open_files_in_fs( temp_loc.mt_entry ) == 1 ) {
    99     if ( temp_loc.ops->freenod )
    100       (*temp_loc.ops->freenod)( &temp_loc );
     98    rtems_filesystem_freenode( &temp_loc );
    10199    set_errno_and_return_minus_one( EBUSY );
    102100  }
     
    111109
    112110  if ((temp_mt_entry.mt_point_node.ops->unmount )( temp_loc.mt_entry ) != 0 ) {
    113     if ( temp_loc.ops->freenod )
    114       (*temp_loc.ops->freenod)( &temp_loc );
     111    rtems_filesystem_freenode( &temp_loc );
    115112    return -1;
    116113  }
     
    121118
    122119  if ((temp_mt_entry.mt_fs_root.ops->fsunmount_me )( temp_loc.mt_entry ) != 0){
    123     if ( temp_loc.ops->freenod )
    124       (*temp_loc.ops->freenod)( &temp_loc );
    125      return -1;
     120    rtems_filesystem_freenode( &temp_loc );
     121    return -1;
    126122  }
    127123
     
    143139
    144140  free( temp_loc.mt_entry );
    145   if ( temp_loc.ops->freenod )
    146     (*temp_loc.ops->freenod)( &temp_loc );
     141  rtems_filesystem_freenode( &temp_loc );
    147142
    148143  return result;
  • c/src/exec/libcsupport/src/utime.c

    re2116f9 rdd0f326  
    3535  result = (*temp_loc.ops->utime)( &temp_loc, times->actime, times->modtime );
    3636
    37   if ( temp_loc.ops->freenod )
    38     (*temp_loc.ops->freenod)( &temp_loc );
     37  rtems_filesystem_freenode( &temp_loc );
    3938
    4039  return result;
  • c/src/exec/libfs/src/imfs/ioman.c

    re2116f9 rdd0f326  
    8686  if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) {
    8787    *device_info = 0;
    88     if ( loc.ops->freenod )
    89       (*loc.ops->freenod)( &loc );
     88    rtems_filesystem_freenode( &loc );
    9089    return RTEMS_UNSATISFIED;
    9190  }
     
    9796  *device_info              = &device;
    9897
    99   if ( loc.ops->freenod )
    100     (*loc.ops->freenod)( &loc );
     98  rtems_filesystem_freenode( &loc );
    10199   
    102100#endif
  • c/src/lib/include/rtems/libio_.h

    re2116f9 rdd0f326  
    159159            return -1;                                \
    160160      }                                               \
     161  } while (0)
     162
     163/*
     164 *  rtems_filesystem_freenode
     165 *
     166 *  Macro to free a node.
     167 */
     168
     169#define rtems_filesystem_freenode( _node ) \
     170  do { \
     171    if ( (_node)->ops->freenod ) \
     172      (*(_node)->ops->freenod)( (_node) ); \
    161173  } while (0)
    162174
  • c/src/lib/libc/chdir.c

    re2116f9 rdd0f326  
    4040
    4141  if ( !loc.ops->node_type ) {
    42     if ( loc.ops->freenod )
    43       (*loc.ops->freenod)( &loc );
     42    rtems_filesystem_freenode( &loc );
    4443    set_errno_and_return_minus_one( ENOTSUP );
    4544  }
    4645
    4746  if (  (*loc.ops->node_type)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) {
    48     if ( loc.ops->freenod )
    49       (*loc.ops->freenod)( &loc );
     47    rtems_filesystem_freenode( &loc );
    5048    set_errno_and_return_minus_one( ENOTDIR );
    5149  }
    5250 
    53   if ( rtems_filesystem_current.ops->freenod )
    54     (*rtems_filesystem_current.ops->freenod)( &rtems_filesystem_current );
     51  rtems_filesystem_freenode( &rtems_filesystem_current );
    5552   
    5653  rtems_filesystem_current = loc;
  • c/src/lib/libc/chmod.c

    re2116f9 rdd0f326  
    3636 
    3737  if ( !loc.handlers->fchmod ){
    38     if ( loc.ops->freenod )
    39       (*loc.ops->freenod)( &loc );
     38    rtems_filesystem_freenode( &loc );
    4039    set_errno_and_return_minus_one( ENOTSUP );
    4140  }
     
    4342  result = (*loc.handlers->fchmod)( &loc, mode );
    4443
    45   if ( loc.ops->freenod )
    46     (*loc.ops->freenod)( &loc );
     44  rtems_filesystem_freenode( &loc );
    4745 
    4846  return result;
  • c/src/lib/libc/chown.c

    re2116f9 rdd0f326  
    3434 
    3535  if ( !loc.ops->chown ) {
    36     if ( loc.ops->freenod )
    37       (*loc.ops->freenod)( &loc );
     36    rtems_filesystem_freenode( &loc );
    3837    set_errno_and_return_minus_one( ENOTSUP );
    3938  }
     
    4140  result = (*loc.ops->chown)( &loc, owner, group );
    4241
    43   if ( loc.ops->freenod )
    44     (*loc.ops->freenod)( &loc );
     42  rtems_filesystem_freenode( &loc );
    4543 
    4644  return result;
  • c/src/lib/libc/ioman.c

    re2116f9 rdd0f326  
    8686  if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) {
    8787    *device_info = 0;
    88     if ( loc.ops->freenod )
    89       (*loc.ops->freenod)( &loc );
     88    rtems_filesystem_freenode( &loc );
    9089    return RTEMS_UNSATISFIED;
    9190  }
     
    9796  *device_info              = &device;
    9897
    99   if ( loc.ops->freenod )
    100     (*loc.ops->freenod)( &loc );
     98  rtems_filesystem_freenode( &loc );
    10199   
    102100#endif
  • c/src/lib/libc/libio_.h

    re2116f9 rdd0f326  
    159159            return -1;                                \
    160160      }                                               \
     161  } while (0)
     162
     163/*
     164 *  rtems_filesystem_freenode
     165 *
     166 *  Macro to free a node.
     167 */
     168
     169#define rtems_filesystem_freenode( _node ) \
     170  do { \
     171    if ( (_node)->ops->freenod ) \
     172      (*(_node)->ops->freenod)( (_node) ); \
    161173  } while (0)
    162174
  • c/src/lib/libc/link.c

    re2116f9 rdd0f326  
    4545  result = (*parent_loc.ops->evalformake)( &new[i], &parent_loc, &name_start );
    4646  if ( result != 0 ) {
    47     if ( existing_loc.ops->freenod )
    48       (*existing_loc.ops->freenod)( &parent_loc );
     47    rtems_filesystem_freenode( &parent_loc );
    4948    set_errno_and_return_minus_one( result );
    5049  }
     
    5655
    5756  if ( parent_loc.mt_entry != existing_loc.mt_entry ) {
    58     if ( existing_loc.ops->freenod )
    59       (*existing_loc.ops->freenod)( &existing_loc );
    60 
    61     if ( parent_loc.ops->freenod )
    62       (*parent_loc.ops->freenod)( &parent_loc );
    63 
     57    rtems_filesystem_freenode( &existing_loc );
     58    rtems_filesystem_freenode( &parent_loc );
    6459    set_errno_and_return_minus_one( EXDEV );
    6560  }
    6661
    6762  if ( !parent_loc.ops->link ) {
    68 
    69     if ( existing_loc.ops->freenod )
    70       (*existing_loc.ops->freenod)( &existing_loc );
    71 
    72     if ( parent_loc.ops->freenod )
    73       (*parent_loc.ops->freenod)( &parent_loc );
    74 
     63    rtems_filesystem_freenode( &existing_loc );
     64    rtems_filesystem_freenode( &parent_loc );
    7565    set_errno_and_return_minus_one( ENOTSUP );
    7666  }
     
    7868  result = (*parent_loc.ops->link)( &existing_loc, &parent_loc, name_start );
    7969 
    80   if ( existing_loc.ops->freenod )
    81     (*existing_loc.ops->freenod)( &existing_loc );
    82 
    83   if ( parent_loc.ops->freenod )
    84     (*parent_loc.ops->freenod)( &parent_loc );
     70  rtems_filesystem_freenode( &existing_loc );
     71  rtems_filesystem_freenode( &parent_loc );
    8572
    8673  return result;
  • c/src/lib/libc/mknod.c

    re2116f9 rdd0f326  
    5454
    5555  if ( !temp_loc.ops->mknod ) {
    56     if ( temp_loc.ops->freenod )
    57       (*temp_loc.ops->freenod)( &temp_loc );
     56    rtems_filesystem_freenode( &temp_loc );
    5857    set_errno_and_return_minus_one( ENOTSUP );
    5958  }
    6059
    6160  result =  (*temp_loc.ops->mknod)( name_start, mode, dev, &temp_loc );
    62   if ( temp_loc.ops->freenod )
    63     (*temp_loc.ops->freenod)( &temp_loc );
     61
     62  rtems_filesystem_freenode( &temp_loc );
    6463
    6564  return result;
  • c/src/lib/libc/mount.c

    re2116f9 rdd0f326  
    225225  *mt_entry = temp_mt_entry;
    226226
    227   if ( loc.ops->freenod )
    228     (*loc.ops->freenod)( &loc );
     227  rtems_filesystem_freenode( &loc );
    229228 
    230229  return 0;
     
    234233  free( temp_mt_entry );
    235234
    236   if ( loc.ops->freenod )
    237     (*loc.ops->freenod)( &loc );
     235  rtems_filesystem_freenode( &loc );
    238236 
    239237  return -1;
  • c/src/lib/libc/open.c

    re2116f9 rdd0f326  
    180180  }
    181181
    182   if ( loc.ops->freenod )
    183     (*loc.ops->freenod)( &loc );
    184    
     182  rtems_filesystem_freenode( &loc );
     183
    185184  return iop - rtems_libio_iops;
    186185}
  • c/src/lib/libc/readlink.c

    re2116f9 rdd0f326  
    3232 
    3333  if ( !loc.ops->node_type ){
    34     if ( loc.ops->freenod )
    35       (*loc.ops->freenod)( &loc );
     34    rtems_filesystem_freenode( &loc );
    3635    set_errno_and_return_minus_one( ENOTSUP );
    3736  }
    3837
    3938  if (  (*loc.ops->node_type)( &loc ) != RTEMS_FILESYSTEM_SYM_LINK ){
    40     if ( loc.ops->freenod )
    41       (*loc.ops->freenod)( &loc );
     39    rtems_filesystem_freenode( &loc );
    4240    set_errno_and_return_minus_one( EINVAL );
    4341  }
    4442
    4543  if ( !loc.ops->readlink ){
    46     if ( loc.ops->freenod )
    47       (*loc.ops->freenod)( &loc );
     44    rtems_filesystem_freenode( &loc );
    4845    set_errno_and_return_minus_one( ENOTSUP );
    4946  }
     
    5148  result =  (*loc.ops->readlink)( &loc, buf, bufsize );
    5249
    53   if ( loc.ops->freenod )
    54     (*loc.ops->freenod)( &loc );
     50  rtems_filesystem_freenode( &loc );
    5551 
    5652  return result;
  • c/src/lib/libc/rmdir.c

    re2116f9 rdd0f326  
    4141
    4242  if ( !loc.ops->node_type ){
    43     if ( loc.ops->freenod )
    44       (*loc.ops->freenod)( &loc );
     43    rtems_filesystem_freenode( &loc );
    4544    set_errno_and_return_minus_one( ENOTSUP );
    4645  }
    4746
    4847  if (  (*loc.ops->node_type)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ){
    49     if ( loc.ops->freenod )
    50       (*loc.ops->freenod)( &loc );
     48    rtems_filesystem_freenode( &loc );
    5149    set_errno_and_return_minus_one( ENOTDIR );
    5250  }
     
    5755
    5856  if ( !loc.ops->rmnod ){
    59     if ( loc.ops->freenod )
    60       (*loc.ops->freenod)( &loc );
     57    rtems_filesystem_freenode( &loc );
    6158    set_errno_and_return_minus_one( ENOTSUP );
    6259  }
     
    6461  result =  (*loc.ops->rmnod)( &loc ); 
    6562
    66   if ( loc.ops->freenod )
    67     (*loc.ops->freenod)( &loc );
     63  rtems_filesystem_freenode( &loc );
    6864 
    6965  return result;
  • c/src/lib/libc/stat.c

    re2116f9 rdd0f326  
    6060 
    6161  if ( !loc.handlers->fstat ){
    62     if ( loc.ops->freenod )
    63       (*loc.ops->freenod)( &loc );
     62    rtems_filesystem_freenode( &loc );
    6463    set_errno_and_return_minus_one( ENOTSUP );
    6564  }
     
    7473  status =  (*loc.handlers->fstat)( &loc, buf );
    7574
    76   if ( loc.ops->freenod )
    77     (*loc.ops->freenod)( &loc );
     75  rtems_filesystem_freenode( &loc );
    7876 
    7977  return status;
  • c/src/lib/libc/symlink.c

    re2116f9 rdd0f326  
    3232  result = (*loc.ops->symlink)( &loc, actualpath, name_start);
    3333
    34   if ( loc.ops->freenod )
    35     (*loc.ops->freenod)( &loc );
     34  rtems_filesystem_freenode( &loc );
    3635
    3736  return result;
  • c/src/lib/libc/unlink.c

    re2116f9 rdd0f326  
    3333 
    3434  if ( !loc.ops->node_type ) {
    35     if ( loc.ops->freenod )
    36       (*loc.ops->freenod)( &loc );
     35    rtems_filesystem_freenode( &loc );
    3736    set_errno_and_return_minus_one( ENOTSUP );
    3837  }
    3938
    4039  if (  (*loc.ops->node_type)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) {
    41     if ( loc.ops->freenod )
    42       (*loc.ops->freenod)( &loc );
     40    rtems_filesystem_freenode( &loc );
    4341    set_errno_and_return_minus_one( EISDIR );
    4442  }
    4543
    4644  if ( !loc.ops->unlink ) {
    47     if ( loc.ops->freenod )
    48       (*loc.ops->freenod)( &loc );
     45    rtems_filesystem_freenode( &loc );
    4946    set_errno_and_return_minus_one( ENOTSUP );
    5047  }
     
    5249  result = (*loc.ops->unlink)( &loc );
    5350
    54   if ( loc.ops->freenod )
    55     (*loc.ops->freenod)( &loc );
     51  rtems_filesystem_freenode( &loc );
    5652 
    5753  return result;
  • c/src/lib/libc/unmount.c

    re2116f9 rdd0f326  
    8585
    8686  if ( rtems_filesystem_current.mt_entry == temp_loc.mt_entry ) {
    87     if ( temp_loc.ops->freenod )
    88       (*temp_loc.ops->freenod)( &temp_loc );
     87    rtems_filesystem_freenode( &temp_loc );
    8988    set_errno_and_return_minus_one( EBUSY );
    9089  }
     
    9796
    9897  if ( rtems_libio_is_open_files_in_fs( temp_loc.mt_entry ) == 1 ) {
    99     if ( temp_loc.ops->freenod )
    100       (*temp_loc.ops->freenod)( &temp_loc );
     98    rtems_filesystem_freenode( &temp_loc );
    10199    set_errno_and_return_minus_one( EBUSY );
    102100  }
     
    111109
    112110  if ((temp_mt_entry.mt_point_node.ops->unmount )( temp_loc.mt_entry ) != 0 ) {
    113     if ( temp_loc.ops->freenod )
    114       (*temp_loc.ops->freenod)( &temp_loc );
     111    rtems_filesystem_freenode( &temp_loc );
    115112    return -1;
    116113  }
     
    121118
    122119  if ((temp_mt_entry.mt_fs_root.ops->fsunmount_me )( temp_loc.mt_entry ) != 0){
    123     if ( temp_loc.ops->freenod )
    124       (*temp_loc.ops->freenod)( &temp_loc );
    125      return -1;
     120    rtems_filesystem_freenode( &temp_loc );
     121    return -1;
    126122  }
    127123
     
    143139
    144140  free( temp_loc.mt_entry );
    145   if ( temp_loc.ops->freenod )
    146     (*temp_loc.ops->freenod)( &temp_loc );
     141  rtems_filesystem_freenode( &temp_loc );
    147142
    148143  return result;
  • c/src/lib/libc/utime.c

    re2116f9 rdd0f326  
    3535  result = (*temp_loc.ops->utime)( &temp_loc, times->actime, times->modtime );
    3636
    37   if ( temp_loc.ops->freenod )
    38     (*temp_loc.ops->freenod)( &temp_loc );
     37  rtems_filesystem_freenode( &temp_loc );
    3938
    4039  return result;
  • c/src/libfs/src/imfs/ioman.c

    re2116f9 rdd0f326  
    8686  if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) {
    8787    *device_info = 0;
    88     if ( loc.ops->freenod )
    89       (*loc.ops->freenod)( &loc );
     88    rtems_filesystem_freenode( &loc );
    9089    return RTEMS_UNSATISFIED;
    9190  }
     
    9796  *device_info              = &device;
    9897
    99   if ( loc.ops->freenod )
    100     (*loc.ops->freenod)( &loc );
     98  rtems_filesystem_freenode( &loc );
    10199   
    102100#endif
  • cpukit/include/rtems/libio_.h

    re2116f9 rdd0f326  
    159159            return -1;                                \
    160160      }                                               \
     161  } while (0)
     162
     163/*
     164 *  rtems_filesystem_freenode
     165 *
     166 *  Macro to free a node.
     167 */
     168
     169#define rtems_filesystem_freenode( _node ) \
     170  do { \
     171    if ( (_node)->ops->freenod ) \
     172      (*(_node)->ops->freenod)( (_node) ); \
    161173  } while (0)
    162174
  • cpukit/libcsupport/include/rtems/libio_.h

    re2116f9 rdd0f326  
    159159            return -1;                                \
    160160      }                                               \
     161  } while (0)
     162
     163/*
     164 *  rtems_filesystem_freenode
     165 *
     166 *  Macro to free a node.
     167 */
     168
     169#define rtems_filesystem_freenode( _node ) \
     170  do { \
     171    if ( (_node)->ops->freenod ) \
     172      (*(_node)->ops->freenod)( (_node) ); \
    161173  } while (0)
    162174
  • cpukit/libcsupport/src/chdir.c

    re2116f9 rdd0f326  
    4040
    4141  if ( !loc.ops->node_type ) {
    42     if ( loc.ops->freenod )
    43       (*loc.ops->freenod)( &loc );
     42    rtems_filesystem_freenode( &loc );
    4443    set_errno_and_return_minus_one( ENOTSUP );
    4544  }
    4645
    4746  if (  (*loc.ops->node_type)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) {
    48     if ( loc.ops->freenod )
    49       (*loc.ops->freenod)( &loc );
     47    rtems_filesystem_freenode( &loc );
    5048    set_errno_and_return_minus_one( ENOTDIR );
    5149  }
    5250 
    53   if ( rtems_filesystem_current.ops->freenod )
    54     (*rtems_filesystem_current.ops->freenod)( &rtems_filesystem_current );
     51  rtems_filesystem_freenode( &rtems_filesystem_current );
    5552   
    5653  rtems_filesystem_current = loc;
  • cpukit/libcsupport/src/chmod.c

    re2116f9 rdd0f326  
    3636 
    3737  if ( !loc.handlers->fchmod ){
    38     if ( loc.ops->freenod )
    39       (*loc.ops->freenod)( &loc );
     38    rtems_filesystem_freenode( &loc );
    4039    set_errno_and_return_minus_one( ENOTSUP );
    4140  }
     
    4342  result = (*loc.handlers->fchmod)( &loc, mode );
    4443
    45   if ( loc.ops->freenod )
    46     (*loc.ops->freenod)( &loc );
     44  rtems_filesystem_freenode( &loc );
    4745 
    4846  return result;
  • cpukit/libcsupport/src/chown.c

    re2116f9 rdd0f326  
    3434 
    3535  if ( !loc.ops->chown ) {
    36     if ( loc.ops->freenod )
    37       (*loc.ops->freenod)( &loc );
     36    rtems_filesystem_freenode( &loc );
    3837    set_errno_and_return_minus_one( ENOTSUP );
    3938  }
     
    4140  result = (*loc.ops->chown)( &loc, owner, group );
    4241
    43   if ( loc.ops->freenod )
    44     (*loc.ops->freenod)( &loc );
     42  rtems_filesystem_freenode( &loc );
    4543 
    4644  return result;
  • cpukit/libcsupport/src/link.c

    re2116f9 rdd0f326  
    4545  result = (*parent_loc.ops->evalformake)( &new[i], &parent_loc, &name_start );
    4646  if ( result != 0 ) {
    47     if ( existing_loc.ops->freenod )
    48       (*existing_loc.ops->freenod)( &parent_loc );
     47    rtems_filesystem_freenode( &parent_loc );
    4948    set_errno_and_return_minus_one( result );
    5049  }
     
    5655
    5756  if ( parent_loc.mt_entry != existing_loc.mt_entry ) {
    58     if ( existing_loc.ops->freenod )
    59       (*existing_loc.ops->freenod)( &existing_loc );
    60 
    61     if ( parent_loc.ops->freenod )
    62       (*parent_loc.ops->freenod)( &parent_loc );
    63 
     57    rtems_filesystem_freenode( &existing_loc );
     58    rtems_filesystem_freenode( &parent_loc );
    6459    set_errno_and_return_minus_one( EXDEV );
    6560  }
    6661
    6762  if ( !parent_loc.ops->link ) {
    68 
    69     if ( existing_loc.ops->freenod )
    70       (*existing_loc.ops->freenod)( &existing_loc );
    71 
    72     if ( parent_loc.ops->freenod )
    73       (*parent_loc.ops->freenod)( &parent_loc );
    74 
     63    rtems_filesystem_freenode( &existing_loc );
     64    rtems_filesystem_freenode( &parent_loc );
    7565    set_errno_and_return_minus_one( ENOTSUP );
    7666  }
     
    7868  result = (*parent_loc.ops->link)( &existing_loc, &parent_loc, name_start );
    7969 
    80   if ( existing_loc.ops->freenod )
    81     (*existing_loc.ops->freenod)( &existing_loc );
    82 
    83   if ( parent_loc.ops->freenod )
    84     (*parent_loc.ops->freenod)( &parent_loc );
     70  rtems_filesystem_freenode( &existing_loc );
     71  rtems_filesystem_freenode( &parent_loc );
    8572
    8673  return result;
  • cpukit/libcsupport/src/mknod.c

    re2116f9 rdd0f326  
    5454
    5555  if ( !temp_loc.ops->mknod ) {
    56     if ( temp_loc.ops->freenod )
    57       (*temp_loc.ops->freenod)( &temp_loc );
     56    rtems_filesystem_freenode( &temp_loc );
    5857    set_errno_and_return_minus_one( ENOTSUP );
    5958  }
    6059
    6160  result =  (*temp_loc.ops->mknod)( name_start, mode, dev, &temp_loc );
    62   if ( temp_loc.ops->freenod )
    63     (*temp_loc.ops->freenod)( &temp_loc );
     61
     62  rtems_filesystem_freenode( &temp_loc );
    6463
    6564  return result;
  • cpukit/libcsupport/src/mount.c

    re2116f9 rdd0f326  
    225225  *mt_entry = temp_mt_entry;
    226226
    227   if ( loc.ops->freenod )
    228     (*loc.ops->freenod)( &loc );
     227  rtems_filesystem_freenode( &loc );
    229228 
    230229  return 0;
     
    234233  free( temp_mt_entry );
    235234
    236   if ( loc.ops->freenod )
    237     (*loc.ops->freenod)( &loc );
     235  rtems_filesystem_freenode( &loc );
    238236 
    239237  return -1;
  • cpukit/libcsupport/src/open.c

    re2116f9 rdd0f326  
    180180  }
    181181
    182   if ( loc.ops->freenod )
    183     (*loc.ops->freenod)( &loc );
    184    
     182  rtems_filesystem_freenode( &loc );
     183
    185184  return iop - rtems_libio_iops;
    186185}
  • cpukit/libcsupport/src/readlink.c

    re2116f9 rdd0f326  
    3232 
    3333  if ( !loc.ops->node_type ){
    34     if ( loc.ops->freenod )
    35       (*loc.ops->freenod)( &loc );
     34    rtems_filesystem_freenode( &loc );
    3635    set_errno_and_return_minus_one( ENOTSUP );
    3736  }
    3837
    3938  if (  (*loc.ops->node_type)( &loc ) != RTEMS_FILESYSTEM_SYM_LINK ){
    40     if ( loc.ops->freenod )
    41       (*loc.ops->freenod)( &loc );
     39    rtems_filesystem_freenode( &loc );
    4240    set_errno_and_return_minus_one( EINVAL );
    4341  }
    4442
    4543  if ( !loc.ops->readlink ){
    46     if ( loc.ops->freenod )
    47       (*loc.ops->freenod)( &loc );
     44    rtems_filesystem_freenode( &loc );
    4845    set_errno_and_return_minus_one( ENOTSUP );
    4946  }
     
    5148  result =  (*loc.ops->readlink)( &loc, buf, bufsize );
    5249
    53   if ( loc.ops->freenod )
    54     (*loc.ops->freenod)( &loc );
     50  rtems_filesystem_freenode( &loc );
    5551 
    5652  return result;
  • cpukit/libcsupport/src/rmdir.c

    re2116f9 rdd0f326  
    4141
    4242  if ( !loc.ops->node_type ){
    43     if ( loc.ops->freenod )
    44       (*loc.ops->freenod)( &loc );
     43    rtems_filesystem_freenode( &loc );
    4544    set_errno_and_return_minus_one( ENOTSUP );
    4645  }
    4746
    4847  if (  (*loc.ops->node_type)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ){
    49     if ( loc.ops->freenod )
    50       (*loc.ops->freenod)( &loc );
     48    rtems_filesystem_freenode( &loc );
    5149    set_errno_and_return_minus_one( ENOTDIR );
    5250  }
     
    5755
    5856  if ( !loc.ops->rmnod ){
    59     if ( loc.ops->freenod )
    60       (*loc.ops->freenod)( &loc );
     57    rtems_filesystem_freenode( &loc );
    6158    set_errno_and_return_minus_one( ENOTSUP );
    6259  }
     
    6461  result =  (*loc.ops->rmnod)( &loc ); 
    6562
    66   if ( loc.ops->freenod )
    67     (*loc.ops->freenod)( &loc );
     63  rtems_filesystem_freenode( &loc );
    6864 
    6965  return result;
  • cpukit/libcsupport/src/stat.c

    re2116f9 rdd0f326  
    6060 
    6161  if ( !loc.handlers->fstat ){
    62     if ( loc.ops->freenod )
    63       (*loc.ops->freenod)( &loc );
     62    rtems_filesystem_freenode( &loc );
    6463    set_errno_and_return_minus_one( ENOTSUP );
    6564  }
     
    7473  status =  (*loc.handlers->fstat)( &loc, buf );
    7574
    76   if ( loc.ops->freenod )
    77     (*loc.ops->freenod)( &loc );
     75  rtems_filesystem_freenode( &loc );
    7876 
    7977  return status;
  • cpukit/libcsupport/src/symlink.c

    re2116f9 rdd0f326  
    3232  result = (*loc.ops->symlink)( &loc, actualpath, name_start);
    3333
    34   if ( loc.ops->freenod )
    35     (*loc.ops->freenod)( &loc );
     34  rtems_filesystem_freenode( &loc );
    3635
    3736  return result;
  • cpukit/libcsupport/src/unlink.c

    re2116f9 rdd0f326  
    3333 
    3434  if ( !loc.ops->node_type ) {
    35     if ( loc.ops->freenod )
    36       (*loc.ops->freenod)( &loc );
     35    rtems_filesystem_freenode( &loc );
    3736    set_errno_and_return_minus_one( ENOTSUP );
    3837  }
    3938
    4039  if (  (*loc.ops->node_type)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) {
    41     if ( loc.ops->freenod )
    42       (*loc.ops->freenod)( &loc );
     40    rtems_filesystem_freenode( &loc );
    4341    set_errno_and_return_minus_one( EISDIR );
    4442  }
    4543
    4644  if ( !loc.ops->unlink ) {
    47     if ( loc.ops->freenod )
    48       (*loc.ops->freenod)( &loc );
     45    rtems_filesystem_freenode( &loc );
    4946    set_errno_and_return_minus_one( ENOTSUP );
    5047  }
     
    5249  result = (*loc.ops->unlink)( &loc );
    5350
    54   if ( loc.ops->freenod )
    55     (*loc.ops->freenod)( &loc );
     51  rtems_filesystem_freenode( &loc );
    5652 
    5753  return result;
  • cpukit/libcsupport/src/unmount.c

    re2116f9 rdd0f326  
    8585
    8686  if ( rtems_filesystem_current.mt_entry == temp_loc.mt_entry ) {
    87     if ( temp_loc.ops->freenod )
    88       (*temp_loc.ops->freenod)( &temp_loc );
     87    rtems_filesystem_freenode( &temp_loc );
    8988    set_errno_and_return_minus_one( EBUSY );
    9089  }
     
    9796
    9897  if ( rtems_libio_is_open_files_in_fs( temp_loc.mt_entry ) == 1 ) {
    99     if ( temp_loc.ops->freenod )
    100       (*temp_loc.ops->freenod)( &temp_loc );
     98    rtems_filesystem_freenode( &temp_loc );
    10199    set_errno_and_return_minus_one( EBUSY );
    102100  }
     
    111109
    112110  if ((temp_mt_entry.mt_point_node.ops->unmount )( temp_loc.mt_entry ) != 0 ) {
    113     if ( temp_loc.ops->freenod )
    114       (*temp_loc.ops->freenod)( &temp_loc );
     111    rtems_filesystem_freenode( &temp_loc );
    115112    return -1;
    116113  }
     
    121118
    122119  if ((temp_mt_entry.mt_fs_root.ops->fsunmount_me )( temp_loc.mt_entry ) != 0){
    123     if ( temp_loc.ops->freenod )
    124       (*temp_loc.ops->freenod)( &temp_loc );
    125      return -1;
     120    rtems_filesystem_freenode( &temp_loc );
     121    return -1;
    126122  }
    127123
     
    143139
    144140  free( temp_loc.mt_entry );
    145   if ( temp_loc.ops->freenod )
    146     (*temp_loc.ops->freenod)( &temp_loc );
     141  rtems_filesystem_freenode( &temp_loc );
    147142
    148143  return result;
  • cpukit/libcsupport/src/utime.c

    re2116f9 rdd0f326  
    3535  result = (*temp_loc.ops->utime)( &temp_loc, times->actime, times->modtime );
    3636
    37   if ( temp_loc.ops->freenod )
    38     (*temp_loc.ops->freenod)( &temp_loc );
     37  rtems_filesystem_freenode( &temp_loc );
    3938
    4039  return result;
  • cpukit/libfs/src/imfs/ioman.c

    re2116f9 rdd0f326  
    8686  if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) {
    8787    *device_info = 0;
    88     if ( loc.ops->freenod )
    89       (*loc.ops->freenod)( &loc );
     88    rtems_filesystem_freenode( &loc );
    9089    return RTEMS_UNSATISFIED;
    9190  }
     
    9796  *device_info              = &device;
    9897
    99   if ( loc.ops->freenod )
    100     (*loc.ops->freenod)( &loc );
     98  rtems_filesystem_freenode( &loc );
    10199   
    102100#endif
Note: See TracChangeset for help on using the changeset viewer.