Adds mutual exclusion locking of unifyfs_client state to prevent client threads from seeing inconsistent state.
Fixes a bug where unifyfs_unmount() would fail if an unlink client callback was processed during an attempt to sync extents for the removed file.
Motivation and Context
Running the writeread example on Summit with the option to remove the target file at completion was causing unifyfs_unmount() failures in most clients.
Description
unifyfs_client
state to prevent client threads from seeing inconsistent state.unifyfs_unmount()
would fail if an unlink client callback was processed during an attempt to sync extents for the removed file.Motivation and Context
Running the
writeread
example on Summit with the option to remove the target file at completion was causingunifyfs_unmount()
failures in most clients.For example:
How Has This Been Tested?
Tested on OLCF Summit and in Ubuntu Docker.
Types of changes
Checklist: