]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
crimson/os/seastore: don't set INVALID extents to CLEAN when reading
authorXuehan Xu <xxhdx1985126@gmail.com>
Tue, 21 Mar 2023 05:52:43 +0000 (05:52 +0000)
committerXuehan Xu <xxhdx1985126@gmail.com>
Tue, 21 Mar 2023 06:01:35 +0000 (06:01 +0000)
commit729dabd8ff20a747e02c15113e005a6d61acc8d7
tree79399bd5b7ca342015a1e53b7cc96682dc43b064
parente1587eed91087465fe6a444514fb423171ff6d91
crimson/os/seastore: don't set INVALID extents to CLEAN when reading
extents

CLEAN_PENDING extents may be invalidated before read completes:

1. transaction A retired an laddr, which lead to a RetirePlaceHolder in
   Cache
2. transaction B try to read that extent, and replace A's
   RetirePlaceHolder with it;
3. transaction A commits and invalidate that extent;
4. transaction B complete reading that extent;

In this case, we shouldn't set the extent's state to CLEAN

Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
src/crimson/os/seastore/cache.h