Spdk/lib/blobfs
Jim Harris e967dcd245 blobfs: ensure length xattr is written even if all data is flushed
Data can get implicitly flushed as cache buffers are filled.  But
the length xattr is only written in response to a sync or close
operation.  So we cannot just look at the amount of data flushed,
and ignore the sync operation if all of the data written has been
flushed - we still need to write the length xattr.

This also adds a unit test which reproduces the original problem.

Fixes issue #297.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Icca6ef4d1544f72e9bc31c4ee77d26b4b7f0cce4

Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/455692
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Ziye Yang <ziye.yang@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2019-05-27 06:45:41 +00:00
..
blobfs_internal.h blobfs: separate cache tree related definitions into tree.h 2017-05-04 09:11:28 -07:00
blobfs.c blobfs: ensure length xattr is written even if all data is flushed 2019-05-27 06:45:41 +00:00
Makefile blobfs: Add a lightweight filesystem built on the blobstore 2017-03-24 14:15:45 -07:00
tree.c blobfs: Add conf parse for blobfs. 2017-11-15 18:03:00 -05:00
tree.h blobfs: Add conf parse for blobfs. 2017-11-15 18:03:00 -05:00