]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore/BlueStore: Don't leak trim overlay data before write. 7895/head
authorJianpeng Ma <jianpeng.ma@intel.com>
Thu, 3 Mar 2016 13:46:55 +0000 (21:46 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Thu, 3 Mar 2016 13:46:55 +0000 (21:46 +0800)
commitfcc459c8af4295d75a7e21322b389963e576f76e
treeb49d6c67dcfc070414cd473d0f97b2b3f92b1f63
parent045ad3d2a5bf85698d9d28e8e47bfe3ec2a136af
os/bluestore/BlueStore: Don't leak trim overlay data before write.

Suppose: bluestore_overlay_max_length=bluestore_min_alloc_size;
bluestore_overlay_max = 2;
For the following ops:
write(off=0, len=4096) --->write into overlay
write(off=4096, len=4096)-->write into overlay
write(off=0, len=bluestore_min_alloc_size)-->because overlay_map.size()
>=2, it allocate a extent.

It should trim overlay data(0,4096) &(4096, 4096),and then write(0,
bluestore_min_alloc_size).
But the original code don't trim overlay data.
This make the later read data is orignal data rather that new data.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/os/bluestore/BlueStore.cc