v2: teach libcephfs how to hold on to requests until the right map epoch appears, instead of delaying cap handling in the cephfs layer. This patchset is an updated version of the patch series originally done by John Spray and posted here: http://www.spinics.net/lists/ceph-devel/msg21257.html The patchset has undergone a number of changes since the original submission, and now more closely resembles the approach taken by the userland cephfs code. When it sees a new epoch barrier, it communicates that to libcephfs which then uses the normal request target pausing mechanism to hold them until the right map comes in. With this, xfstests seems to work as well as before, and we get timely -ENOSPC returns under these conditions with O_DIRECT writes. I still need to plumb in a way to throttle the dirtying of new pages in buffered I/O when we are getting errors during writeback. Still, I figure this is a good place to pause to make sure that things look ok in the set before I implement that part. Jeff Layton (5): libceph: add an epoch_barrier field to struct ceph_osd_client libceph: rename and export have_pool_full ceph: register map callback to handle ENOSPC conditions ceph: handle epoch barriers in cap messages libceph: allow requests to return immediately on full conditions if caller wishes John Spray (1): libceph: add ceph_osdc_complete_writes fs/ceph/addr.c | 14 ++++-- fs/ceph/caps.c | 17 +++++-- fs/ceph/file.c | 8 +-- fs/ceph/mds_client.c | 38 +++++++++++++++ fs/ceph/mds_client.h | 7 ++- include/linux/ceph/osd_client.h | 15 ++++++ include/linux/ceph/rados.h | 1 + net/ceph/osd_client.c | 105 +++++++++++++++++++++++++++++++++++----- 8 files changed, 180 insertions(+), 25 deletions(-) -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html