numam-spdk/lib
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
..
bdev ocf: accept optional base in bottom adapter 2019-05-24 23:55:04 +00:00
blob blobstore: Remove blob on blobstore load when required 2019-05-24 23:09:56 +00:00
blobfs blobfs: ensure length xattr is written even if all data is flushed 2019-05-27 06:45:41 +00:00
conf string: spdk_strtol to delegate additional error checking 2019-01-29 00:10:57 +00:00
copy misc/rpc: rename some C functions of rpc methods 2019-05-07 05:30:16 +00:00
env_dpdk env_dpdk: set crypto log level to ERR 2019-05-13 15:46:50 +00:00
event thread: Add a mechanism to exit a lightweight thread 2019-05-22 04:23:17 +00:00
ftl lib/ftl: improved padding during shutdown 2019-05-24 23:29:22 +00:00
ioat ioat: allocate device struct using regular calloc 2019-04-09 06:30:42 +00:00
iscsi lib/iscsi: Rename _iov_ctx to _iscsi_sgl to match DIF library 2019-05-24 23:19:24 +00:00
json json_util: add debug logs to spdk_json_decode_object function 2019-01-10 14:31:37 +00:00
jsonrpc jsonrpc: Use spdk_json_write_named_* APIs throughout 2019-02-04 07:08:04 +00:00
log log/fdump: fix alignment of the last printed line 2019-05-10 10:27:29 +00:00
lvol lvol: Fix for lvol failed deletion flow 2019-04-02 19:23:22 +00:00
nbd nbd: optional nbd_device in start_nbd_disk 2019-04-04 08:35:50 +00:00
net net: Use spdk_json_write_named_* APIs throughout 2019-02-04 07:08:04 +00:00
notify lib/notify: rename spdk_notify_get_events to spdk_notify_foreach_event 2019-05-07 06:11:27 +00:00
nvme nvme/tcp: Rename _iov_ctx to _nvme_tcp_sgl to match DIF library 2019-05-24 23:19:24 +00:00
nvmf nvmf: increase default max num qps to 128 2019-05-22 14:50:05 +00:00
reduce lib/reduce: add new API to retrieve volume parameters 2019-05-13 15:41:35 +00:00
rocksdb rocksdb: cleanup SpdkInitializeThread/SpdkFinalizeThread 2019-05-02 09:00:43 +00:00
rpc rpc: fix segfault on get_spdk_version request with extra params 2019-05-22 04:36:47 +00:00
scsi Revert "SCSI: Stop I/O flooding to hot-removing LUN from iSCSI target" 2019-05-24 23:46:53 +00:00
sock sock: fix a uninitialized-variable error 2019-05-08 21:24:13 +00:00
thread thread: Add a mechanism to exit a lightweight thread 2019-05-22 04:23:17 +00:00
trace trace: print error message if event name is too long 2019-05-02 08:41:56 +00:00
ut_mock thread: Eliminate use of pthread_self and thread_ids 2019-01-15 16:53:12 +00:00
util util/cpuset: use dst & src parameter names 2019-05-23 07:00:34 +00:00
vhost rte_vhost: fix deadlock on rte_vhost_driver_unregister() 2019-05-24 00:53:42 +00:00
virtio virtio: zero-out virtqueue structures at init 2019-04-22 16:49:39 +00:00
Makefile bdev/nvme: always enable FTL 2019-05-02 08:41:56 +00:00