]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
client: flush the mdlog in _fsync before waiting on unstable reqs 21498/head
authorJeff Layton <jlayton@redhat.com>
Mon, 16 Apr 2018 17:48:10 +0000 (13:48 -0400)
committerJeff Layton <jlayton@redhat.com>
Wed, 18 Apr 2018 14:06:44 +0000 (10:06 -0400)
commitd790108158d21616fdf6ea148bf7f9d1534326d0
tree4a3e7fa82419637029f2b16d3125330771e4b20c
parenta2eea2427a7c9a576f08198e936debdf1e805f87
client: flush the mdlog in _fsync before waiting on unstable reqs

Recently, we changed ganesha to call to ceph_ll_sync_inode after
issuing a setattr call, to ensure that the attribute changes makes it
to the backing store before returning.

While testing with this, I noticed that we'd occasionally see setattr
calls stall for a long time. Analysis showed that the client's _fsync
request was stalled waiting on an mdlog flush.

This patch adds a call to flush_mdlog_sync prior to waiting on unsafe
requests in _fsync and seems to resolve the issue.

Tracker: http://tracker.ceph.com/issues/23714
Signed-off-by: Jeff Layton <jlayton@redhat.com>
src/client/Client.cc