The first patch is the same as in v1. The second is the client side of
a fix for a race condition in handling osdmaps marked full. The fix
for this race condition requires the osd to drop requests rather than
returning ENOSPC when full, so we can't offer the old behavior of
returning an error easily as an rbd option.

Cephfs looks directly at the osdmap to return ENOSPC in aio_write, but
if it hits the race with the osd and loses, it may block instead.
ceph-fuse already blocks, but in the future it may be desirable to
return ENOSPC earlier rather than blocking. This patchset does not
address this at all, it is left for future work.

These patches can also be found in the wip-full-6938 branch of
ceph-client.git.

Josh Durgin (2):
  libceph: block I/O when PAUSE or FULL osd map flags are set
  libceph: resend all writes after the osdmap loses the full flag

 include/linux/ceph/osd_client.h |    1 +
 net/ceph/osd_client.c           |   57 +++++++++++++++++++++++++++++++++------
 2 files changed, 50 insertions(+), 8 deletions(-)

-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to