Skip to content

Commit

Permalink
pnfs-obj: pNFS errors are communicated on iodata->pnfs_error
Browse files Browse the repository at this point in the history
Some time along the way pNFS IO errors were switched to
communicate with a special iodata->pnfs_error member instead
of the regular RPC members. But objlayout was not switched
over.

Fix that!
Without this fix any IO error is hanged, because IO is not
switched to MDS and pages are never cleared or read.

[Applies to 3.2.0. Same bug different patch for 3.1/0 Kernels]
CC: Stable Tree <stable@kernel.org>
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
  • Loading branch information
Boaz Harrosh authored and Trond Myklebust committed Jan 6, 2012
1 parent 0aaaf5c commit 5c0b412
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions fs/nfs/objlayout/objlayout.c
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,8 @@ objlayout_read_done(struct objlayout_io_res *oir, ssize_t status, bool sync)
oir->status = rdata->task.tk_status = status;
if (status >= 0)
rdata->res.count = status;
else
rdata->pnfs_error = status;
objlayout_iodone(oir);
/* must not use oir after this point */

Expand Down Expand Up @@ -334,6 +336,8 @@ objlayout_write_done(struct objlayout_io_res *oir, ssize_t status, bool sync)
if (status >= 0) {
wdata->res.count = status;
wdata->verf.committed = oir->committed;
} else {
wdata->pnfs_error = status;
}
objlayout_iodone(oir);
/* must not use oir after this point */
Expand Down

0 comments on commit 5c0b412

Please sign in to comment.