Spdk/lib
Tomasz Zawadzki 28a44891f1 lib/blob: add error path on persisting dirty bs
super->clean value signifies if blobstore was unloaded
cleanly.
If it was not, then during bs_load the _spdk_bs_recover()
procedure if called.

Meanwhile bs->clean is always set to 1 after load, causing very first
blob_persist to also re-write super block with the super->clean
set to 0. To signify that md has changed and possibly trigger
the recovery if clean bs unload does not occur.
When the re-write of super block succeeds the bs->clean is set to 0,
because further re-writes of super block are not needed on next
blob persist.

This patch resolves issue when:
1) reading super block fails - execution should backoff, to prevent
writing an empty buffer as super block !
2) writing super->clean = 0 to the super block fails - execution
again should fail, and bs->clean should not be set to 0. It will
cause next persist to attempt re-write again.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: Ia07cc5c6c107310059b50886edb7283c176b9169
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1164
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2020-03-24 07:39:47 +00:00
..
accel make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
bdev make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
blob lib/blob: add error path on persisting dirty bs 2020-03-24 07:39:47 +00:00
blobfs make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
conf make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
env_dpdk memory.h: move to public headers 2020-03-19 08:50:45 +00:00
env_ocf lib/bdev/ocf: update of ocf library to version 19.06 2019-10-22 17:22:41 +00:00
event make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
ftl make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
ioat memory.h: move to public headers 2020-03-19 08:50:45 +00:00
iscsi lib/iscsi: Use spdk_sn32_lt/gt() to compare two sequence numbers 2020-03-19 08:51:31 +00:00
json make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
jsonrpc make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
log make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
log_rpc make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
lvol make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
nbd make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
net make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
notify make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
nvme nvme: Cleanup resources when memory allocation fails 2020-03-24 07:39:19 +00:00
nvmf nvmf/rpc: remove NULL checks for spdk_jsonrpc_begin_result() 2020-03-19 08:51:27 +00:00
reduce make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
rocksdb global: rename copy to accel 2020-02-18 08:05:34 +00:00
rpc make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
rte_vhost make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
scsi make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
sock make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
thread lib/thread: Factor out main loops of spdk_thread_poll() into a helper function 2020-03-19 08:52:15 +00:00
trace make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
ut_mock make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
util make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
vhost memory.h: move to public headers 2020-03-19 08:50:45 +00:00
virtio memory.h: move to public headers 2020-03-19 08:50:45 +00:00
vmd make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
Makefile global: rename copy to accel 2020-02-18 08:05:34 +00:00