numam-spdk/lib/blob
Tomasz Zawadzki 50935184c8 lib/blob: force execution of queued persists
When performing snapshot creation the I/O is frozen
during the process. The blob persists for extent page
allocation is delayed until snapshot creation is finished.

This results in multiple blob persists executing one after
the other, with only intent of writing out updated extent table
pointing to new extent pages.
Since blob->state is marked DIRTY before issuing each persist,
but a single persist completion marks state CLEAR.

Blob serialize correctly expects each persist to contain
dirtied metadata, in order to avoid unnecessary md writes.
Since all other instances of marking blob DIRTY is explicit,
assert in blob serialize is left as is.

Instead when running the queued up blob persists, the blob
state is marked DIRTY.

Side effect is that it will write out same md in some cases.

Fixes #1909

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I39f37299f3f0ebfccbdd4063781b5ecce286e993
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7640
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2021-04-29 07:10:13 +00:00
..
blob_bs_dev.c lib/blob: remove _spdk prefix from all functions. 2020-05-27 07:35:02 +00:00
blobstore.c lib/blob: force execution of queued persists 2021-04-29 07:10:13 +00:00
blobstore.h blob: switch to bit_pool for tracking used_clusters 2020-09-15 07:12:44 +00:00
Makefile so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
request.c log: remove internal log.h header 2020-10-15 08:23:39 +00:00
request.h lib/blob: remove spdk_ prefix from bs_batch_read_bs_dev 2020-06-01 09:21:14 +00:00
spdk_blob.map lib/blob: add a map file. 2020-04-15 22:10:08 +00:00
zeroes.c lib/blob: remove spdk_ from non-public APIs 2020-04-15 22:10:08 +00:00