summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0020-pnfs-obj-pNFS-errors-are-communicated-on-iodata-pnfs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0020-pnfs-obj-pNFS-errors-are-communicated-on-iodata-pnfs.patch')
-rw-r--r--recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0020-pnfs-obj-pNFS-errors-are-communicated-on-iodata-pnfs.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0020-pnfs-obj-pNFS-errors-are-communicated-on-iodata-pnfs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0020-pnfs-obj-pNFS-errors-are-communicated-on-iodata-pnfs.patch
new file mode 100644
index 00000000..0b1e79bd
--- /dev/null
+++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0020-pnfs-obj-pNFS-errors-are-communicated-on-iodata-pnfs.patch
@@ -0,0 +1,50 @@
1From df673b323fa5ef227649ad218343f244261c0611 Mon Sep 17 00:00:00 2001
2From: Boaz Harrosh <bharrosh@panasas.com>
3Date: Fri, 6 Jan 2012 09:28:12 +0200
4Subject: [PATCH 020/130] pnfs-obj: pNFS errors are communicated on
5 iodata->pnfs_error
6
7commit 5c0b4129c07b902b27d3f3ebc087757f534a3abd upstream.
8
9Some time along the way pNFS IO errors were switched to
10communicate with a special iodata->pnfs_error member instead
11of the regular RPC members. But objlayout was not switched
12over.
13
14Fix that!
15Without this fix any IO error is hanged, because IO is not
16switched to MDS and pages are never cleared or read.
17
18[Applies to 3.2.0. Same bug different patch for 3.1/0 Kernels]
19Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
20Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
21Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
22---
23 fs/nfs/objlayout/objlayout.c | 4 ++++
24 1 files changed, 4 insertions(+), 0 deletions(-)
25
26diff --git a/fs/nfs/objlayout/objlayout.c b/fs/nfs/objlayout/objlayout.c
27index 72074e3..b3c2903 100644
28--- a/fs/nfs/objlayout/objlayout.c
29+++ b/fs/nfs/objlayout/objlayout.c
30@@ -254,6 +254,8 @@ objlayout_read_done(struct objlayout_io_res *oir, ssize_t status, bool sync)
31 oir->status = rdata->task.tk_status = status;
32 if (status >= 0)
33 rdata->res.count = status;
34+ else
35+ rdata->pnfs_error = status;
36 objlayout_iodone(oir);
37 /* must not use oir after this point */
38
39@@ -334,6 +336,8 @@ objlayout_write_done(struct objlayout_io_res *oir, ssize_t status, bool sync)
40 if (status >= 0) {
41 wdata->res.count = status;
42 wdata->verf.committed = oir->committed;
43+ } else {
44+ wdata->pnfs_error = status;
45 }
46 objlayout_iodone(oir);
47 /* must not use oir after this point */
48--
491.7.7.4
50