Ignore:
Timestamp:
Mar 16, 2017, 10:54:29 AM (3 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
1becaa9
Parents:
191d39a
git-author:
Sebastian Huber <sebastian.huber@…> (03/16/17 10:54:29)
git-committer:
Sebastian Huber <sebastian.huber@…> (03/16/17 14:33:56)
Message:

libio: Fix deadlock in location management

Perform a context-dependent deferred location release to avoid a
deadlock on the file system instance locks, for example during a
chdir().

Update #2936.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • testsuites/fstests/fsnofs01/init.c

    r191d39a r66fac03  
    7575  rtems_test_assert(!null_mt->mounted);
    7676  rtems_test_assert(!null_mt->writeable);
    77   rtems_test_assert(null_loc->reference_count == 6);
     77  rtems_test_assert(null_loc->reference_count == 4);
    7878  rtems_test_assert(null_loc->deferred_released_next == NULL);
    79   rtems_test_assert(null_loc->deferred_released_count == 2);
     79  rtems_test_assert(null_loc->deferred_released_count == 0);
    8080}
    8181
     
    9191  rtems_test_assert(null_loc->reference_count == 5);
    9292
    93   rtems_filesystem_global_location_release(null_loc);
     93  rtems_filesystem_global_location_release(null_loc, false);
    9494
    9595  rtems_test_assert(node_count(loc_chain) == 1);
     
    107107  rtems_test_assert(null_loc->reference_count == 5);
    108108
    109   rtems_filesystem_global_location_release(null_loc);
     109  rtems_filesystem_global_location_release(null_loc, false);
    110110
    111111  rtems_test_assert(node_count(loc_chain) == 1);
Note: See TracChangeset for help on using the changeset viewer.