diff options
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.patch | 50 |
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 @@ | |||
1 | From df673b323fa5ef227649ad218343f244261c0611 Mon Sep 17 00:00:00 2001 | ||
2 | From: Boaz Harrosh <bharrosh@panasas.com> | ||
3 | Date: Fri, 6 Jan 2012 09:28:12 +0200 | ||
4 | Subject: [PATCH 020/130] pnfs-obj: pNFS errors are communicated on | ||
5 | iodata->pnfs_error | ||
6 | |||
7 | commit 5c0b4129c07b902b27d3f3ebc087757f534a3abd upstream. | ||
8 | |||
9 | Some time along the way pNFS IO errors were switched to | ||
10 | communicate with a special iodata->pnfs_error member instead | ||
11 | of the regular RPC members. But objlayout was not switched | ||
12 | over. | ||
13 | |||
14 | Fix that! | ||
15 | Without this fix any IO error is hanged, because IO is not | ||
16 | switched 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] | ||
19 | Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> | ||
20 | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> | ||
21 | Signed-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 | |||
26 | diff --git a/fs/nfs/objlayout/objlayout.c b/fs/nfs/objlayout/objlayout.c | ||
27 | index 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 | -- | ||
49 | 1.7.7.4 | ||
50 | |||