]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
client: avoid freeing inode when it contains TX buffer heads 22168/head
authorYunfeiGuan <yunfeiguan@xtaotech.com>
Tue, 8 May 2018 11:35:32 +0000 (19:35 +0800)
committerYan, Zheng <zyan@redhat.com>
Wed, 23 May 2018 03:38:48 +0000 (11:38 +0800)
commita6182cef9c0e31560dc3222d3345cd71aed07ab2
treec773f3a768546a2031e2c3c0dce7874ac67cea0f
parent785a15d6d96e14e6836e39dc4645a9b9c1aa4093
client: avoid freeing inode when it contains TX buffer heads

ObjectCacher::discard_set() prematurely delete TX buffer heads. But
the pending writebacks still pin parent objects of these buffer heads.
Assertion "oset.objects.empty()" gets triggered if inode with pending
writebacks get freed.

Fixes:http://tracker.ceph.com/issues/23837
Signed-off-by: Guan yunfei <yunfei.guan@xtaotech.com>
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
(cherry picked from commit 8a03757ca0ab493c6c2ea4fa4307e053e8ebc944)
src/client/Client.cc
src/osdc/ObjectCacher.cc