]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
ceph-fuse: Delete inode's bufferhead was in Tx state would lead a assert fail 21615/head
authorYunfeiGuan <yunfeiguan@xtaotech.com>
Tue, 8 May 2018 11:35:32 +0000 (19:35 +0800)
committerYunfeiGuan <yunfeiguan@xtaotech.com>
Tue, 8 May 2018 11:42:04 +0000 (19:42 +0800)
commit07e3bceea78dc8ecd76abb1cafca5c9d1fde521e
treee73bed1b0024e3557d9b08d1659aa38601d74a80
parentd71dbdc2991870014cee8bb7e5a301d9c4267fbb
ceph-fuse: Delete inode's bufferhead was in Tx state would lead a assert fail

Prematurely delted the bh which was in Tx state may lead the object can't
be closed before its writer of this bh callback. Thus if inode's ref call
put_inode decrease ref to zero and release inode's oset.An assert fail occur
beacuse the oset can't be emptied.

If gather.has_subs() is true, we can't call flush_set_callback() because
this would cause a double drop of FILE_CACHE | FILE_BUFFER.

Fixes:http://tracker.ceph.com/issues/23837
Signed-off-by: Guan yunfei <yunfei.guan@xtaotech.com>
src/client/Client.cc
src/osdc/ObjectCacher.cc