]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore/BlueFS: clean up log_writer aios from compaction 16017/head
authorSage Weil <sage@redhat.com>
Thu, 29 Jun 2017 14:32:20 +0000 (10:32 -0400)
committerSage Weil <sage@redhat.com>
Thu, 29 Jun 2017 14:32:20 +0000 (10:32 -0400)
commit727aef4db8e9fb0ca41d0b72118aefa5df9ff436
tree0d1ba9f7b930ee4a18f6ba6a66ff2c2849a9cec6
parent97bb9976c855bafe62d4bdfad1601d346f45fd2c
os/bluestore/BlueFS: clean up log_writer aios from compaction

Normally any time we wait for aios and flush the device we go through
_flush_bdev_safely(), which takes the completed aios off of the IOContext
and discards them, releasing memory.  However, compaction does not use
that method because it does not (currently) drop the lock while doing the
flush, which means we slowly leak memory after each internal log
compaction.

Fix by explicitly releasing these aios, similar to _flush_bdev_safely().

Fixes: http://tracker.ceph.com/issues/20454
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueFS.cc