linux-nfs.vger.kernel.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).