Description of problem: In gluster-block project we had hit a case where we will sometimes get old block metadata with blockGetMetaInfo(), which will glfs_read from the block file, after updating the block metadata with GB_METAUPDATE_OR_GOTO(), which will glfs_write the block file. In GB_METAUPDATE_OR_GOTO, it basically open the metafile with the O_SYNC, write the new details and close it in-place, which should flush the data to metafile. But looks like in glusterfs-api-devel-6.0-0.4.rc1.fc29.x86_64 it will not be flushed in time. Version-Release number of selected component (if applicable): How reproducible: In RHEL 7 by using the gluster-blocl/tests/basic.t script with glusterfs-api-devel-6.0-0.4.rc1.fc29.x86_64 it is very easy to reproduce, in my setups almost 40%. Steps to Reproduce: 1. git clone https://github.com/gluster/gluster-block.git 2. build it from source and install it 3. install the tcmu-runner package or use the upstream code 4. $ ./tests/basic.t Actual results: Delete will fail sometimes Expected results: Delete should be success Additional info: More detail please see https://github.com/gluster/gluster-block/issues/204 https://github.com/gluster/gluster-block/pull/209