All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] ceph: implement new-style ENOSPC handling in kcephfs
@ 2017-02-06 13:29 Jeff Layton
  2017-02-06 13:29 ` [PATCH v2 1/6] libceph: add an epoch_barrier field to struct ceph_osd_client Jeff Layton
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Jeff Layton @ 2017-02-06 13:29 UTC (permalink / raw)
  To: ceph-devel; +Cc: zyan, sage, idryomov, jspray

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


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2017-02-06 21:46 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-06 13:29 [PATCH v2 0/6] ceph: implement new-style ENOSPC handling in kcephfs Jeff Layton
2017-02-06 13:29 ` [PATCH v2 1/6] libceph: add an epoch_barrier field to struct ceph_osd_client Jeff Layton
2017-02-06 13:29 ` [PATCH v2 2/6] libceph: add ceph_osdc_complete_writes Jeff Layton
2017-02-06 13:29 ` [PATCH v2 3/6] libceph: rename and export have_pool_full Jeff Layton
2017-02-06 13:29 ` [PATCH v2 4/6] ceph: register map callback to handle ENOSPC conditions Jeff Layton
2017-02-06 13:29 ` [PATCH v2 5/6] ceph: handle epoch barriers in cap messages Jeff Layton
2017-02-06 13:29 ` [PATCH v2 6/6] libceph: allow requests to return immediately on full conditions if caller wishes Jeff Layton
2017-02-06 14:09   ` Ilya Dryomov
2017-02-06 15:28     ` Jeff Layton
2017-02-06 15:49     ` Jeff Layton
2017-02-06 16:27       ` Ilya Dryomov
2017-02-06 16:36         ` Jeff Layton
2017-02-06 17:05           ` Ilya Dryomov
2017-02-06 18:30             ` Jeff Layton
2017-02-06 21:46               ` Jeff Layton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.