public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/24] LAYOUTGET invocation (rebased)
@ 2010-06-08  4:18 Fred Isaman
  2010-06-08  4:18 ` [PATCH 01/24] Revert "pnfs-nonfilelayout: Prelim support for non-file layout O_DIRECT" Fred Isaman
  0 siblings, 1 reply; 46+ messages in thread
From: Fred Isaman @ 2010-06-08  4:18 UTC (permalink / raw)
  To: linux-nfs

This patch series limits LAYOUTGET invocation to the beginning of the
IO paths.  It applies atop Alexandros's recent patchset submission,
but is otherwise basically the same as the previous submission.  It is
intended for the pnfs_submit branch, without reversion in a
post_submit branch.

Patches 1-4 revert direct IO.  Commit is already broken, and this
series breaks them further.  The problem is that the direct IO
redefines data->wb_req and data->pages, so that it can only work with
the pnfs code if we don't look at those fields. The reverted code
should be saved somewhere.  I tend to agree with Boaz that keeping it
in git is preferable, but I can supply a patch which returns the code
ifdef'ed out if tht is preferred.

Patches 5-9 do some code cleanup in preperation for the real work.

Patches 10-21 implement the change.  NOTE that patch 20 changes the
calling convention of the layout drivers commit calls.  There is no
longer a universal lseg for the commit, instead each nfs_page has an
lseg attached, with NULL meaning to go through the MDS.

Patches 21-24 rework the filelayout commit function, and then do some
code cleanup this enables.



The basic idea of these patches is as follows:

We attempt to grab a lseg (possibly invoking LAYOUTGET) early in the
IO.  If we succeed, we refcount and stash it, using it through the
rest of the io.  If we fail, we revert to straight nfs, even if the
area becomes covered by a layout due to other io.

The tricky, though hopefully anomalous, case is when we start without
the layout, but have it at this particular stage of the IO.  We ignore
this for the moment at write_pages, which will cause block and object
to issue CB_LAYOUTRECALL.  At commit, it is tricky to handle, but
since block doesn't use commit, and file needs to handle complicated
splitting anyway, I just push all complicated decisions of splitting
commit between nfs (for IO started without layout) and pnfs to the
driver.

Fred


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

end of thread, other threads:[~2010-06-10 13:09 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-08  4:18 [PATCH 00/24] LAYOUTGET invocation (rebased) Fred Isaman
2010-06-08  4:18 ` [PATCH 01/24] Revert "pnfs-nonfilelayout: Prelim support for non-file layout O_DIRECT" Fred Isaman
2010-06-08  4:18   ` [PATCH 02/24] Revert "pnfs: Enable O_DIRECT write path." Fred Isaman
2010-06-08  4:19     ` [PATCH 03/24] Revert "pnfs: Enable O_DIRECT read path." Fred Isaman
2010-06-08  4:19       ` [PATCH 04/24] Revert "pnfs: Add function to set up O_DIRECT I/O" Fred Isaman
2010-06-08  4:19         ` [PATCH 05/24] SQUASHME: ensure pnfs_update_lseg clears lsegp on error Fred Isaman
2010-06-08  4:19           ` [PATCH 06/24] pnfs: filelayout: clean and breakup nfs4_pnfs_dserver_get Fred Isaman
2010-06-08  4:19             ` [PATCH 07/24] pnfs: filelayout: remove some dead code from filelayout_commit Fred Isaman
2010-06-08  4:19               ` [PATCH 08/24] pnfs: remove PNFS_LAYOUTGET_ON_OPEN Fred Isaman
2010-06-08  4:19                 ` [PATCH 09/24] pnfs: track the number of outstanding commits Fred Isaman
2010-06-08  4:19                   ` [PATCH 10/24] pnfs_submit: mandate basic io path operations for layout drivers Fred Isaman
2010-06-08  4:19                     ` [PATCH 11/24] pnfs_submit: expose pnfs_update_layout, put_lseg, and get_lseg functions Fred Isaman
2010-06-08  4:19                       ` [PATCH 12/24] pnfs_submit: stash and refcount lseg in read path Fred Isaman
2010-06-08  4:19                         ` [PATCH 13/24] pnfs_submit: read path changeover Fred Isaman
2010-06-08  4:19                           ` [PATCH 14/24] pnfs_submit: use fsdata to pass lseg Fred Isaman
2010-06-08  4:19                             ` [PATCH 15/24] pnfs_submit: stash and refcount lseg in write path Fred Isaman
2010-06-08  4:19                               ` [PATCH 16/24] pnfs_submit: remove pnfs_file_operations Fred Isaman
2010-06-08  4:19                                 ` [PATCH 17/24] pnfs_submit: remove pnfs_update_layout_commit Fred Isaman
2010-06-08  4:19                                   ` [PATCH 18/24] pnfs_submit: remove pnfs_writepages LAYOUTGET invocation Fred Isaman
2010-06-08  4:19                                     ` [PATCH 19/24] pnfs: export some commit error handling for use by layout drivers Fred Isaman
2010-06-08  4:19                                       ` [PATCH 20/24] pnfs_submit: API change: remove pnfs_commit layoutget invocation Fred Isaman
2010-06-08  4:19                                         ` [PATCH 21/24] pnfs_submit: filelayout: rewrite filelayout_commit to use new API Fred Isaman
2010-06-08  4:19                                           ` [PATCH 22/24] pnfs_submit: remove unecessary pnfs_fl_call_data field pnfs_client Fred Isaman
2010-06-08  4:19                                             ` [PATCH 23/24] pnfs_submit: remove unecessary pnfs_fl_call_data field commit_through_mds Fred Isaman
2010-06-08  4:19                                               ` [PATCH 24/24] pnfs_submit: pnfs_update_layout can return void Fred Isaman
2010-06-09  9:09                                         ` [PATCH 20/24] pnfs_submit: API change: remove pnfs_commit layoutget invocation Benny Halevy
2010-06-09 12:21                                           ` Fred Isaman
2010-06-09 15:12                                             ` Boaz Harrosh
2010-06-09 15:15                                               ` [PATCH] FIXME: pnfs-obj: Short circuit the objlayout_commit to be a no-op Boaz Harrosh
2010-06-08  7:34                                 ` [PATCH 16/24] pnfs_submit: remove pnfs_file_operations Christoph Hellwig
2010-06-09 10:38                             ` [PATCH 14/24] pnfs_submit: use fsdata to pass lseg Benny Halevy
2010-06-09 12:08                               ` Fred Isaman
2010-06-10 10:33                                 ` Fred Isaman
2010-06-10 12:45                                   ` Benny Halevy
2010-06-10 12:48                                     ` Benny Halevy
2010-06-10 13:09                                       ` Boaz Harrosh
2010-06-09 19:33                             ` Boaz Harrosh
2010-06-09 19:19                           ` [PATCH 13/24] pnfs_submit: read path changeover Boaz Harrosh
2010-06-09 19:29                             ` Fred Isaman
     [not found]                               ` <AANLkTilecdPbSOJCDkGYH-X25gcZB-1fmBmU9mEpFO_y-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-09 19:39                                 ` Boaz Harrosh
2010-06-09 19:46                                   ` Fred Isaman
2010-06-10  6:26                                     ` Boaz Harrosh
2010-06-09 18:58                       ` [PATCH 11/24] pnfs_submit: expose pnfs_update_layout, put_lseg, and get_lseg functions Boaz Harrosh
2010-06-09 19:20                         ` Fred Isaman
2010-06-09 18:18           ` [PATCH 05/24] SQUASHME: ensure pnfs_update_lseg clears lsegp on error Boaz Harrosh
2010-06-09 18:06   ` [PATCH 01/24] Revert "pnfs-nonfilelayout: Prelim support for non-file layout O_DIRECT" Boaz Harrosh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox