All of lore.kernel.org
 help / color / mirror / Atom feed
* (unknown), 
@ 2010-06-02 15:54 andros
  2010-06-02 15:54 ` [PATCH 1/6] SQUASHME pnfs-submit: remove setup_layoutcommit andros
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: andros @ 2010-06-02 15:54 UTC (permalink / raw)
  To: bhalevy; +Cc: linux-nfs


This is against the pnfs-submit branch of the 2.6.34 tree. They will need to be
applied against the 2.6.35-rc1 tree which I can do after comments.

RFC: I would like comments, especially on
0006-SQUASHME-pnfs-submit-move-layoutcommit-to-nfs_write_.patch.

Remove unused layoutcommit layoutdriver_io_operations. Will be restored
in post-submit patches
0001-SQUASHME-pnfs-submit-remove-setup_layoutcommit.patch
0002-SQUASHNE-pnfs-submit-remove-cleanup_layoutcommit.patch
0003-SQUASHME-pnfs-submit-remove-encode_layoutcommit.patch

A cleanup, and call the async error handler.
0004-SQUASHME-pnfs-submit-cleanup-layoutcommit-call.patch
0005-SQUASHME-pnfs-submit-handle-async-layoutcommit-error.patch

This next  patch moves the pnfs_layoutcommit_inode call to nfs_write_inode,
and it is the only call other than in layoutreturn. (removed calls in
__nfs4_close, nfs_commit_inode, nfs_wb_sync).

This is fine for the file layout, and I think it's OK for the object and
block layouts as well.

I left the LAYOUTCOMMIT call in nfs_write_inode a synchronous call, because
nfs_commit_unstable_pages sets the FLUSH_SYNC flag. Should this
be an asyc LAYOUTCOMMIT call?

pnfs_layoutcommit_inode is called after nfs_commit_unstable_pages() so that
if LAYOUTCOMMIT fails, the unstable pages have been processed..

The error handlers (sync and async) call nfs4_map_errors, so unhandled
errors (such as NFS4ERR_BADLAYOUT) get returned to nfs_write_ioode as -EIO.

Examining the write_inode call paths, I could not see where the -EIO would
be passed back to the application.  Testing with pynfs which I
had return NFS4ERR_BADLAYOUT to the layout commit call, shows the -EIO return
not stopping the client nor is the error reported back to the application.

We will add code to the error handlers for errors such as NFS4ERR_BADLAYOUT 
that require us to stop using and free the layout, and redo the I/O through
the MDS.

Anyway, review is much appreciated.

0006-SQUASHME-pnfs-submit-move-layoutcommit-to-nfs_write_.patch

Testing:
With CONFIG_NFS_V4_1 set
NFSv4.1/pnfs passed Connectathon against write enabled GFS2/pNFS. Note: there
were exactly the same number of LAYOUTCOMMITS sent as were sent with
pnfs_layoutcommit_inode being called from __nfs4_close (never happened),
nfs_commit_inode and nfs_wb_sync.

Passed Connectathon general test against pynfs file layout server with
the NFS4ERR_BADLAYOUT being returned on every third LAYOUTCOMMIT.


-->Andy


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

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

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-02 15:54 (unknown), andros
2010-06-02 15:54 ` [PATCH 1/6] SQUASHME pnfs-submit: remove setup_layoutcommit andros
2010-06-02 15:54   ` [PATCH 2/6] SQUASHNE pnfs-submit: remove cleanup_layoutcommit andros
2010-06-02 15:54     ` [PATCH 3/6] SQUASHME pnfs-submit: remove encode_layoutcommit andros
2010-06-02 15:54       ` [PATCH 4/6] SQUASHME pnfs-submit: cleanup layoutcommit call andros
2010-06-02 15:54         ` [PATCH 5/6] SQUASHME pnfs-submit: handle async layoutcommit errors andros
2010-06-02 15:54           ` [PATCH 6/6] SQUASHME pnfs-submit: move layoutcommit to nfs_write_inode andros
2010-06-03  7:44             ` Boaz Harrosh
2010-06-03  7:35         ` [PATCH 4/6] SQUASHME pnfs-submit: cleanup layoutcommit call Boaz Harrosh
2010-06-02 18:05 ` [PATCH 0/6] pnfs-submit cleanup layoutcommit for file layout Andy Adamson
2010-06-03  8:10 ` Boaz Harrosh
2010-06-03 13:15   ` William A. (Andy) Adamson

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.