]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/FileStore::sync_entry check for stop in after wait 8905/head
authorKefu Chai <kchai@redhat.com>
Tue, 3 May 2016 09:20:04 +0000 (17:20 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 3 May 2016 09:27:50 +0000 (17:27 +0800)
commit65426a522d9d052fd7c38964f143087f277816c5
tree56452a9a88157d70d3050fe858345bda7c9feb78
parenta71f3dc93c5deab09b09ae7918360853f5d0342a
os/FileStore::sync_entry check for stop in after wait

there is chance that the sync_entry() gets signaled in the
WaitInterval(max_interval) call because of sync_cond.Signal() call after
"stop = true" in umount(), so without this change, sync_entry() will
continue wait until min_interval is reached. this forces umount() to
wait even it has called d_force_sync(), and hence slows down the
progress of umount(). so we need to check for `stop` if we are not
signalled because of `force_sync`.

Fixes: http://tracker.ceph.com/issues/15695
Reported-by: Haomai Wang <haomaiwang@gmail.com>
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/os/filestore/FileStore.cc