fsmonitor: store fsmonitor bitmap before splitting index
commit3bd28eb29912801481b293691039b05caebf13a3
authorAlex Vandiver <alexmv@dropbox.com>
Thu, 9 Nov 2017 19:58:10 +0000 (9 11:58 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 10 Nov 2017 05:05:01 +0000 (10 14:05 +0900)
tree61498c30c6f2e4fcfd2bddc97c8bea893752d8e6
parent6f1dc21d983a495877c8054d41d9b634e234ccc4
fsmonitor: store fsmonitor bitmap before splitting index

ba1b9cac ("fsmonitor: delay updating state until after split index
is merged", 2017-10-27) resolved the problem of the fsmonitor data
being applied to the non-base index when reading; however, a similar
problem exists when writing the index.  Specifically, writing of the
fsmonitor extension happens only after the work to split the index
has been applied -- as such, the information in the index is only
for the non-"base" index, and thus the extension information
contains only partial data.

When saving, compute the ewah bitmap before the index is split, and
store it in the fsmonitor_dirty field, mirroring the behavior that
occurred during reading.  fsmonitor_dirty is kept from being leaked by
being freed when the extension data is written -- which always happens
precisely once, no matter the split index configuration.

Signed-off-by: Alex Vandiver <alexmv@dropbox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
fsmonitor.c
fsmonitor.h
read-cache.c
t/t7519-status-fsmonitor.sh