2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-30 22:57:33 -03:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files. percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.
percpu.h -> slab.h dependency is about to be removed. Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability. As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.
http://userweb.kernel.org/~tj/misc/slabh-sweep.py
The script does the followings.
* Scan files for gfp and slab usages and update includes such that
only the necessary includes are there. ie. if only gfp is used,
gfp.h, if slab is used, slab.h.
* When the script inserts a new include, it looks at the include
blocks and try to put the new include such that its order conforms
to its surrounding. It's put in the include block which contains
core kernel includes, in the same order that the rest are ordered -
alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
doesn't seem to be any matching order.
* If the script can't find a place to put a new include (mostly
because the file doesn't have fitting include block), it prints out
an error message indicating which .h file needs to be added to the
file.
The conversion was done in the following steps.
1. The initial automatic conversion of all .c files updated slightly
over 4000 files, deleting around 700 includes and adding ~480 gfp.h
and ~3000 slab.h inclusions. The script emitted errors for ~400
files.
2. Each error was manually checked. Some didn't need the inclusion,
some needed manual addition while adding it to implementation .h or
embedding .c file was more appropriate for others. This step added
inclusions to around 150 files.
3. The script was run again and the output was compared to the edits
from #2 to make sure no file was left behind.
4. Several build tests were done and a couple of problems were fixed.
e.g. lib/decompress_*.c used malloc/free() wrappers around slab
APIs requiring slab.h to be added manually.
5. The script was run on all .h files but without automatically
editing them as sprinkling gfp.h and slab.h inclusions around .h
files could easily lead to inclusion dependency hell. Most gfp.h
inclusion directives were ignored as stuff from gfp.h was usually
wildly available and often used in preprocessor macros. Each
slab.h inclusion directive was examined and added manually as
necessary.
6. percpu.h was updated not to include slab.h.
7. Build test were done on the following configurations and failures
were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
distributed build env didn't work with gcov compiles) and a few
more options had to be turned off depending on archs to make things
build (like ipr on powerpc/64 which failed due to missing writeq).
* x86 and x86_64 UP and SMP allmodconfig and a custom test config.
* powerpc and powerpc64 SMP allmodconfig
* sparc and sparc64 SMP allmodconfig
* ia64 SMP allmodconfig
* s390 SMP allmodconfig
* alpha SMP allmodconfig
* um on x86_64 SMP allmodconfig
8. percpu.h modifications were reverted so that it could be applied as
a separate patch and serve as bisection point.
Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.
Signed-off-by: Tejun Heo <tj@kernel.org>
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
2010-03-24 17:04:11 +09:00
|
|
|
|
2008-10-15 09:09:21 +11:00
|
|
|
|
2009-03-31 14:33:13 +11:00
|
|
|
|
2011-07-03 13:58:33 -04:00
|
|
|
|
2009-03-31 14:33:13 +11:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2016-11-18 13:22:04 +11:00
|
|
|
|
2009-03-31 14:33:13 +11:00
|
|
|
|
2009-03-31 14:27:03 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2017-10-10 17:02:41 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:41 -07:00
|
|
|
|
MD RAID10: Improve redundancy for 'far' and 'offset' algorithms (part 1)
The MD RAID10 'far' and 'offset' algorithms make copies of entire stripe
widths - copying them to a different location on the same devices after
shifting the stripe. An example layout of each follows below:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
F A B C D E --> Copy of stripe0, but shifted by 1
L G H I J K
...
"offset" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
F A B C D E --> Copy of stripe0, but shifted by 1
G H I J K L
L G H I J K
...
Redundancy for these algorithms is gained by shifting the copied stripes
one device to the right. This patch proposes that array be divided into
sets of adjacent devices and when the stripe copies are shifted, they wrap
on set boundaries rather than the array size boundary. That is, for the
purposes of shifting, the copies are confined to their sets within the
array. The sets are 'near_copies * far_copies' in size.
The above "far" algorithm example would change to:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
B A D C F E --> Copy of stripe0, shifted 1, 2-dev sets
H G J I L K Dev sets are 1-2, 3-4, 5-6
...
This has the affect of improving the redundancy of the array. We can
always sustain at least one failure, but sometimes more than one can
be handled. In the first examples, the pairs of devices that CANNOT fail
together are:
(1,2) (2,3) (3,4) (4,5) (5,6) (1, 6) [40% of possible pairs]
In the example where the copies are confined to sets, the pairs of
devices that cannot fail together are:
(1,2) (3,4) (5,6) [20% of possible pairs]
We cannot simply replace the old algorithms, so the 17th bit of the 'layout'
variable is used to indicate whether we use the old or new method of computing
the shift. (This is similar to the way the 16th bit indicates whether the
"far" algorithm or the "offset" algorithm is being used.)
This patch only handles the cases where the number of total raid disks is
a multiple of 'far_copies'. A follow-on patch addresses the condition where
this is not true.
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2013-02-21 13:28:10 +11:00
|
|
|
|
2015-10-22 13:20:15 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
MD RAID10: Improve redundancy for 'far' and 'offset' algorithms (part 1)
The MD RAID10 'far' and 'offset' algorithms make copies of entire stripe
widths - copying them to a different location on the same devices after
shifting the stripe. An example layout of each follows below:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
F A B C D E --> Copy of stripe0, but shifted by 1
L G H I J K
...
"offset" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
F A B C D E --> Copy of stripe0, but shifted by 1
G H I J K L
L G H I J K
...
Redundancy for these algorithms is gained by shifting the copied stripes
one device to the right. This patch proposes that array be divided into
sets of adjacent devices and when the stripe copies are shifted, they wrap
on set boundaries rather than the array size boundary. That is, for the
purposes of shifting, the copies are confined to their sets within the
array. The sets are 'near_copies * far_copies' in size.
The above "far" algorithm example would change to:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
B A D C F E --> Copy of stripe0, shifted 1, 2-dev sets
H G J I L K Dev sets are 1-2, 3-4, 5-6
...
This has the affect of improving the redundancy of the array. We can
always sustain at least one failure, but sometimes more than one can
be handled. In the first examples, the pairs of devices that CANNOT fail
together are:
(1,2) (2,3) (3,4) (4,5) (5,6) (1, 6) [40% of possible pairs]
In the example where the copies are confined to sets, the pairs of
devices that cannot fail together are:
(1,2) (3,4) (5,6) [20% of possible pairs]
We cannot simply replace the old algorithms, so the 17th bit of the 'layout'
variable is used to indicate whether we use the old or new method of computing
the shift. (This is similar to the way the 16th bit indicates whether the
"far" algorithm or the "offset" algorithm is being used.)
This patch only handles the cases where the number of total raid disks is
a multiple of 'far_copies'. A follow-on patch addresses the condition where
this is not true.
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2013-02-21 13:28:10 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:41 -07:00
|
|
|
|
|
|
|
|
|
MD RAID10: Improve redundancy for 'far' and 'offset' algorithms (part 1)
The MD RAID10 'far' and 'offset' algorithms make copies of entire stripe
widths - copying them to a different location on the same devices after
shifting the stripe. An example layout of each follows below:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
F A B C D E --> Copy of stripe0, but shifted by 1
L G H I J K
...
"offset" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
F A B C D E --> Copy of stripe0, but shifted by 1
G H I J K L
L G H I J K
...
Redundancy for these algorithms is gained by shifting the copied stripes
one device to the right. This patch proposes that array be divided into
sets of adjacent devices and when the stripe copies are shifted, they wrap
on set boundaries rather than the array size boundary. That is, for the
purposes of shifting, the copies are confined to their sets within the
array. The sets are 'near_copies * far_copies' in size.
The above "far" algorithm example would change to:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
B A D C F E --> Copy of stripe0, shifted 1, 2-dev sets
H G J I L K Dev sets are 1-2, 3-4, 5-6
...
This has the affect of improving the redundancy of the array. We can
always sustain at least one failure, but sometimes more than one can
be handled. In the first examples, the pairs of devices that CANNOT fail
together are:
(1,2) (2,3) (3,4) (4,5) (5,6) (1, 6) [40% of possible pairs]
In the example where the copies are confined to sets, the pairs of
devices that cannot fail together are:
(1,2) (3,4) (5,6) [20% of possible pairs]
We cannot simply replace the old algorithms, so the 17th bit of the 'layout'
variable is used to indicate whether we use the old or new method of computing
the shift. (This is similar to the way the 16th bit indicates whether the
"far" algorithm or the "offset" algorithm is being used.)
This patch only handles the cases where the number of total raid disks is
a multiple of 'far_copies'. A follow-on patch addresses the condition where
this is not true.
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2013-02-21 13:28:10 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-31 10:03:52 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:50:01 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
|
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-20 15:29:37 +02:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
2016-11-14 16:30:21 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-14 16:14:43 +08:00
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-10-07 07:46:04 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
2011-03-10 08:52:07 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-10-24 15:11:52 +08:00
|
|
|
|
2008-08-05 15:54:14 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-10-24 15:11:52 +08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-10-07 07:46:04 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-03-10 08:52:07 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-10-26 17:33:54 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:03 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-22 13:55:03 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:28 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2008-07-25 12:03:38 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
md/raid10: stop using bi_phys_segments
raid10 currently repurposes bi_phys_segments on each
incoming bio to count how many r10bio was used to encode the
request.
We need to know when the number of attached r10bio reaches
zero to:
1/ call bio_endio() when all IO on the bio is finished
2/ decrement ->nr_pending so that resync IO can proceed.
Now that the bio has its own __bi_remaining counter, that
can be used instead. We can call bio_inc_remaining to
increment the counter and call bio_endio() every time an
r10bio completes, rather than only when bi_phys_segments
reaches zero.
This addresses point 1, but not point 2. bio_endio()
doesn't (and cannot) report when the last r10bio has
finished, so a different approach is needed.
So: instead of counting bios in ->nr_pending, count r10bios.
i.e. every time we attach a bio, increment nr_pending.
Every time an r10bio completes, decrement nr_pending.
Normally we only increment nr_pending after first checking
that ->barrier is zero, or some other non-trivial tests and
possible waiting. When attaching multiple r10bios to a bio,
we only need the tests and the waiting once. After the
first increment, subsequent increments can happen
unconditionally as they are really all part of the one
request.
So introduce inc_pending() which can be used when we know
that nr_pending is already elevated.
Note that this fixes a bug. freeze_array() contains the line
atomic_read(&conf->nr_pending) == conf->nr_queued+extra,
which implies that the units for ->nr_pending, ->nr_queued and extra
are the same.
->nr_queue and extra count r10_bios, but prior to this patch,
->nr_pending counted bios. If a bio ever resulted in multiple
r10_bios (due to bad blocks), freeze_array() would not work correctly.
Now it does.
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
2017-03-15 14:05:13 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-18 17:38:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2011-07-18 17:38:47 +10:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2011-07-18 17:38:47 +10:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2011-07-18 17:38:47 +10:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-18 17:38:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
2011-07-18 17:38:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-20 15:29:37 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2017-10-11 11:46:54 +01:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:28 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-14 11:10:10 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
|
|
|
|
|
2012-02-14 11:10:10 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2006-01-06 00:20:28 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-05-11 14:53:17 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2011-09-10 17:21:17 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-20 15:29:37 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2011-07-18 17:38:47 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
2016-10-06 14:13:52 -07:00
|
|
|
|
|
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
md/raid1: consider WRITE as successful only if at least one non-Faulty and non-rebuilding drive completed it.
Without that fix, the following scenario could happen:
- RAID1 with drives A and B; drive B was freshly-added and is rebuilding
- Drive A fails
- WRITE request arrives to the array. It is failed by drive A, so
r1_bio is marked as R1BIO_WriteError, but the rebuilding drive B
succeeds in writing it, so the same r1_bio is marked as
R1BIO_Uptodate.
- r1_bio arrives to handle_write_finished, badblocks are disabled,
md_error()->error() does nothing because we don't fail the last drive
of raid1
- raid_end_bio_io() calls call_bio_endio()
- As a result, in call_bio_endio():
if (!test_bit(R1BIO_Uptodate, &r1_bio->state))
clear_bit(BIO_UPTODATE, &bio->bi_flags);
this code doesn't clear the BIO_UPTODATE flag, and the whole master
WRITE succeeds, back to the upper layer.
So we returned success to the upper layer, even though we had written
the data onto the rebuilding drive only. But when we want to read the
data back, we would not read from the rebuilding drive, so this data
is lost.
[neilb - applied identical change to raid10 as well]
This bug can result in lost data, so it is suitable for any
-stable kernel.
Cc: stable@vger.kernel.org
Signed-off-by: Alex Lyakas <alex@zadarastorage.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2013-06-04 20:42:21 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2016-10-06 14:13:52 -07:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-09-10 17:21:17 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2012-11-22 15:12:09 +11:00
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-30 22:57:33 -03:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-30 22:57:33 -03:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:41 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-21 13:28:10 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
MD RAID10: Improve redundancy for 'far' and 'offset' algorithms (part 1)
The MD RAID10 'far' and 'offset' algorithms make copies of entire stripe
widths - copying them to a different location on the same devices after
shifting the stripe. An example layout of each follows below:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
F A B C D E --> Copy of stripe0, but shifted by 1
L G H I J K
...
"offset" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
F A B C D E --> Copy of stripe0, but shifted by 1
G H I J K L
L G H I J K
...
Redundancy for these algorithms is gained by shifting the copied stripes
one device to the right. This patch proposes that array be divided into
sets of adjacent devices and when the stripe copies are shifted, they wrap
on set boundaries rather than the array size boundary. That is, for the
purposes of shifting, the copies are confined to their sets within the
array. The sets are 'near_copies * far_copies' in size.
The above "far" algorithm example would change to:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
B A D C F E --> Copy of stripe0, shifted 1, 2-dev sets
H G J I L K Dev sets are 1-2, 3-4, 5-6
...
This has the affect of improving the redundancy of the array. We can
always sustain at least one failure, but sometimes more than one can
be handled. In the first examples, the pairs of devices that CANNOT fail
together are:
(1,2) (2,3) (3,4) (4,5) (5,6) (1, 6) [40% of possible pairs]
In the example where the copies are confined to sets, the pairs of
devices that cannot fail together are:
(1,2) (3,4) (5,6) [20% of possible pairs]
We cannot simply replace the old algorithms, so the 17th bit of the 'layout'
variable is used to indicate whether we use the old or new method of computing
the shift. (This is similar to the way the 16th bit indicates whether the
"far" algorithm or the "offset" algorithm is being used.)
This patch only handles the cases where the number of total raid disks is
a multiple of 'far_copies'. A follow-on patch addresses the condition where
this is not true.
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2013-02-21 13:28:10 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2013-02-21 13:28:09 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
MD RAID10: Improve redundancy for 'far' and 'offset' algorithms (part 1)
The MD RAID10 'far' and 'offset' algorithms make copies of entire stripe
widths - copying them to a different location on the same devices after
shifting the stripe. An example layout of each follows below:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
F A B C D E --> Copy of stripe0, but shifted by 1
L G H I J K
...
"offset" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
F A B C D E --> Copy of stripe0, but shifted by 1
G H I J K L
L G H I J K
...
Redundancy for these algorithms is gained by shifting the copied stripes
one device to the right. This patch proposes that array be divided into
sets of adjacent devices and when the stripe copies are shifted, they wrap
on set boundaries rather than the array size boundary. That is, for the
purposes of shifting, the copies are confined to their sets within the
array. The sets are 'near_copies * far_copies' in size.
The above "far" algorithm example would change to:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
B A D C F E --> Copy of stripe0, shifted 1, 2-dev sets
H G J I L K Dev sets are 1-2, 3-4, 5-6
...
This has the affect of improving the redundancy of the array. We can
always sustain at least one failure, but sometimes more than one can
be handled. In the first examples, the pairs of devices that CANNOT fail
together are:
(1,2) (2,3) (3,4) (4,5) (5,6) (1, 6) [40% of possible pairs]
In the example where the copies are confined to sets, the pairs of
devices that cannot fail together are:
(1,2) (3,4) (5,6) [20% of possible pairs]
We cannot simply replace the old algorithms, so the 17th bit of the 'layout'
variable is used to indicate whether we use the old or new method of computing
the shift. (This is similar to the way the 16th bit indicates whether the
"far" algorithm or the "offset" algorithm is being used.)
This patch only handles the cases where the number of total raid disks is
a multiple of 'far_copies'. A follow-on patch addresses the condition where
this is not true.
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2013-02-21 13:28:10 +11:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
MD RAID10: Improve redundancy for 'far' and 'offset' algorithms (part 1)
The MD RAID10 'far' and 'offset' algorithms make copies of entire stripe
widths - copying them to a different location on the same devices after
shifting the stripe. An example layout of each follows below:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
F A B C D E --> Copy of stripe0, but shifted by 1
L G H I J K
...
"offset" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
F A B C D E --> Copy of stripe0, but shifted by 1
G H I J K L
L G H I J K
...
Redundancy for these algorithms is gained by shifting the copied stripes
one device to the right. This patch proposes that array be divided into
sets of adjacent devices and when the stripe copies are shifted, they wrap
on set boundaries rather than the array size boundary. That is, for the
purposes of shifting, the copies are confined to their sets within the
array. The sets are 'near_copies * far_copies' in size.
The above "far" algorithm example would change to:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
B A D C F E --> Copy of stripe0, shifted 1, 2-dev sets
H G J I L K Dev sets are 1-2, 3-4, 5-6
...
This has the affect of improving the redundancy of the array. We can
always sustain at least one failure, but sometimes more than one can
be handled. In the first examples, the pairs of devices that CANNOT fail
together are:
(1,2) (2,3) (3,4) (4,5) (5,6) (1, 6) [40% of possible pairs]
In the example where the copies are confined to sets, the pairs of
devices that cannot fail together are:
(1,2) (3,4) (5,6) [20% of possible pairs]
We cannot simply replace the old algorithms, so the 17th bit of the 'layout'
variable is used to indicate whether we use the old or new method of computing
the shift. (This is similar to the way the 16th bit indicates whether the
"far" algorithm or the "offset" algorithm is being used.)
This patch only handles the cases where the number of total raid disks is
a multiple of 'far_copies'. A follow-on patch addresses the condition where
this is not true.
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2013-02-21 13:28:10 +11:00
|
|
|
|
2013-02-21 13:28:10 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
MD RAID10: Improve redundancy for 'far' and 'offset' algorithms (part 1)
The MD RAID10 'far' and 'offset' algorithms make copies of entire stripe
widths - copying them to a different location on the same devices after
shifting the stripe. An example layout of each follows below:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
F A B C D E --> Copy of stripe0, but shifted by 1
L G H I J K
...
"offset" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
F A B C D E --> Copy of stripe0, but shifted by 1
G H I J K L
L G H I J K
...
Redundancy for these algorithms is gained by shifting the copied stripes
one device to the right. This patch proposes that array be divided into
sets of adjacent devices and when the stripe copies are shifted, they wrap
on set boundaries rather than the array size boundary. That is, for the
purposes of shifting, the copies are confined to their sets within the
array. The sets are 'near_copies * far_copies' in size.
The above "far" algorithm example would change to:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
B A D C F E --> Copy of stripe0, shifted 1, 2-dev sets
H G J I L K Dev sets are 1-2, 3-4, 5-6
...
This has the affect of improving the redundancy of the array. We can
always sustain at least one failure, but sometimes more than one can
be handled. In the first examples, the pairs of devices that CANNOT fail
together are:
(1,2) (2,3) (3,4) (4,5) (5,6) (1, 6) [40% of possible pairs]
In the example where the copies are confined to sets, the pairs of
devices that cannot fail together are:
(1,2) (3,4) (5,6) [20% of possible pairs]
We cannot simply replace the old algorithms, so the 17th bit of the 'layout'
variable is used to indicate whether we use the old or new method of computing
the shift. (This is similar to the way the 16th bit indicates whether the
"far" algorithm or the "offset" algorithm is being used.)
This patch only handles the cases where the number of total raid disks is
a multiple of 'far_copies'. A follow-on patch addresses the condition where
this is not true.
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2013-02-21 13:28:10 +11:00
|
|
|
|
|
|
|
|
|
2013-02-21 13:28:10 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:41 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MD RAID10: Improve redundancy for 'far' and 'offset' algorithms (part 1)
The MD RAID10 'far' and 'offset' algorithms make copies of entire stripe
widths - copying them to a different location on the same devices after
shifting the stripe. An example layout of each follows below:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
F A B C D E --> Copy of stripe0, but shifted by 1
L G H I J K
...
"offset" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
F A B C D E --> Copy of stripe0, but shifted by 1
G H I J K L
L G H I J K
...
Redundancy for these algorithms is gained by shifting the copied stripes
one device to the right. This patch proposes that array be divided into
sets of adjacent devices and when the stripe copies are shifted, they wrap
on set boundaries rather than the array size boundary. That is, for the
purposes of shifting, the copies are confined to their sets within the
array. The sets are 'near_copies * far_copies' in size.
The above "far" algorithm example would change to:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
B A D C F E --> Copy of stripe0, shifted 1, 2-dev sets
H G J I L K Dev sets are 1-2, 3-4, 5-6
...
This has the affect of improving the redundancy of the array. We can
always sustain at least one failure, but sometimes more than one can
be handled. In the first examples, the pairs of devices that CANNOT fail
together are:
(1,2) (2,3) (3,4) (4,5) (5,6) (1, 6) [40% of possible pairs]
In the example where the copies are confined to sets, the pairs of
devices that cannot fail together are:
(1,2) (3,4) (5,6) [20% of possible pairs]
We cannot simply replace the old algorithms, so the 17th bit of the 'layout'
variable is used to indicate whether we use the old or new method of computing
the shift. (This is similar to the way the 16th bit indicates whether the
"far" algorithm or the "offset" algorithm is being used.)
This patch only handles the cases where the number of total raid disks is
a multiple of 'far_copies'. A follow-on patch addresses the condition where
this is not true.
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2013-02-21 13:28:10 +11:00
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:41 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
MD RAID10: Improve redundancy for 'far' and 'offset' algorithms (part 1)
The MD RAID10 'far' and 'offset' algorithms make copies of entire stripe
widths - copying them to a different location on the same devices after
shifting the stripe. An example layout of each follows below:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
F A B C D E --> Copy of stripe0, but shifted by 1
L G H I J K
...
"offset" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
F A B C D E --> Copy of stripe0, but shifted by 1
G H I J K L
L G H I J K
...
Redundancy for these algorithms is gained by shifting the copied stripes
one device to the right. This patch proposes that array be divided into
sets of adjacent devices and when the stripe copies are shifted, they wrap
on set boundaries rather than the array size boundary. That is, for the
purposes of shifting, the copies are confined to their sets within the
array. The sets are 'near_copies * far_copies' in size.
The above "far" algorithm example would change to:
"far" algorithm
dev1 dev2 dev3 dev4 dev5 dev6
==== ==== ==== ==== ==== ====
A B C D E F
G H I J K L
...
B A D C F E --> Copy of stripe0, shifted 1, 2-dev sets
H G J I L K Dev sets are 1-2, 3-4, 5-6
...
This has the affect of improving the redundancy of the array. We can
always sustain at least one failure, but sometimes more than one can
be handled. In the first examples, the pairs of devices that CANNOT fail
together are:
(1,2) (2,3) (3,4) (4,5) (5,6) (1, 6) [40% of possible pairs]
In the example where the copies are confined to sets, the pairs of
devices that cannot fail together are:
(1,2) (3,4) (5,6) [20% of possible pairs]
We cannot simply replace the old algorithms, so the 17th bit of the 'layout'
variable is used to indicate whether we use the old or new method of computing
the shift. (This is similar to the way the 16th bit indicates whether the
"far" algorithm or the "offset" algorithm is being used.)
This patch only handles the cases where the number of total raid disks is
a multiple of 'far_copies'. A follow-on patch addresses the condition where
this is not true.
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2013-02-21 13:28:10 +11:00
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:41 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2006-06-26 00:27:41 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2006-06-26 00:27:41 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2010-05-08 08:20:17 +10:00
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
2012-07-31 10:03:52 +10:00
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-10-24 15:11:50 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:39 +11:00
|
|
|
|
2015-04-27 23:48:34 -07:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-11-28 13:44:09 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
2008-03-04 14:29:34 -08:00
|
|
|
|
|
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
2008-03-04 14:29:34 -08:00
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-05-11 14:27:03 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2014-12-15 12:56:56 +11:00
|
|
|
|
2006-10-03 01:15:54 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2006-10-03 01:15:54 -07:00
|
|
|
|
|
|
|
|
|
2015-05-22 17:13:26 -04:00
|
|
|
|
2011-10-11 16:50:01 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:54 -07:00
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:45:26 +11:00
|
|
|
|
2006-10-03 01:15:54 -07:00
|
|
|
|
2007-07-24 09:28:11 +02:00
|
|
|
|
2006-10-03 01:15:54 -07:00
|
|
|
|
2017-02-02 15:56:50 +01:00
|
|
|
|
2006-10-03 01:15:54 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2008-03-04 14:29:29 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-01 12:12:34 -08:00
|
|
|
|
2008-03-04 14:29:29 -08:00
|
|
|
|
2017-12-01 12:12:34 -08:00
|
|
|
|
2008-03-04 14:29:29 -08:00
|
|
|
|
2011-10-11 16:50:01 +11:00
|
|
|
|
2008-03-04 14:29:29 -08:00
|
|
|
|
2017-12-04 08:21:04 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-01 12:12:34 -08:00
|
|
|
|
2008-03-04 14:29:29 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:50:01 +11:00
|
|
|
|
2008-03-04 14:29:29 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2008-03-04 14:29:29 -08:00
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2016-11-04 16:46:03 +11:00
|
|
|
|
2017-07-21 16:33:44 +08:00
|
|
|
|
2016-11-04 16:46:03 +11:00
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2012-10-11 13:30:52 +11:00
|
|
|
|
2015-07-20 15:29:37 +02:00
|
|
|
|
2012-10-11 13:30:52 +11:00
|
|
|
|
|
|
|
|
|
2008-03-04 14:29:29 -08:00
|
|
|
|
|
|
|
|
|
2017-12-01 12:12:34 -08:00
|
|
|
|
2008-03-04 14:29:29 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-10 08:52:07 +01:00
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
|
|
|
|
|
2012-11-30 11:42:40 +01:00
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-04-18 18:25:43 +10:00
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
2016-06-24 14:20:16 +02:00
|
|
|
|
2012-11-30 11:42:40 +01:00
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:38 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-14 16:30:21 +11:00
|
|
|
|
2012-03-19 12:46:38 +11:00
|
|
|
|
|
|
|
|
|
2016-06-24 14:20:16 +02:00
|
|
|
|
2012-03-19 12:46:38 +11:00
|
|
|
|
2017-03-10 17:00:47 +11:00
|
|
|
|
|
|
|
|
|
2012-11-30 11:42:40 +01:00
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
2016-06-24 14:20:16 +02:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-06-24 14:20:16 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
2016-06-24 14:20:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
|
|
|
|
|
2013-06-12 11:01:22 +10:00
|
|
|
|
2006-01-06 00:20:28 -08:00
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:42 -08:00
|
|
|
|
2006-01-06 00:20:28 -08:00
|
|
|
|
2013-06-12 11:01:22 +10:00
|
|
|
|
2008-03-04 14:29:35 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-12 11:01:22 +10:00
|
|
|
|
2008-03-04 14:29:35 -08:00
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:28 -08:00
|
|
|
|
|
|
|
|
|
2016-06-24 14:20:16 +02:00
|
|
|
|
2006-01-06 00:20:28 -08:00
|
|
|
|
|
|
|
|
|
2012-11-30 11:42:40 +01:00
|
|
|
|
2016-06-24 14:20:16 +02:00
|
|
|
|
2012-11-30 11:42:40 +01:00
|
|
|
|
|
|
|
|
|
2011-04-18 18:25:43 +10:00
|
|
|
|
2016-06-24 14:20:16 +02:00
|
|
|
|
2006-01-06 00:20:28 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2006-01-06 00:20:28 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-11 13:32:13 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-27 12:14:40 +11:00
|
|
|
|
2012-10-11 13:32:13 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-25 12:38:29 +11:00
|
|
|
|
2012-10-11 13:32:13 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2012-10-11 13:32:13 +11:00
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2016-11-04 16:46:03 +11:00
|
|
|
|
2017-07-21 16:33:44 +08:00
|
|
|
|
2016-11-04 16:46:03 +11:00
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2013-04-28 18:26:38 +08:00
|
|
|
|
2015-07-20 15:29:37 +02:00
|
|
|
|
2013-04-28 18:26:38 +08:00
|
|
|
|
|
|
|
|
|
2012-10-11 13:32:13 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-20 17:46:04 +08:00
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2016-08-05 15:35:16 -06:00
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2012-10-11 13:32:13 +11:00
|
|
|
|
|
|
|
|
|
2017-03-20 17:46:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2017-03-20 17:46:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2017-03-20 17:46:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2017-03-20 17:46:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-10 08:47:11 -07:00
|
|
|
|
2017-03-20 17:46:04 +08:00
|
|
|
|
|
|
|
|
|
2017-05-10 08:47:11 -07:00
|
|
|
|
2017-03-20 17:46:04 +08:00
|
|
|
|
2017-05-10 08:47:11 -07:00
|
|
|
|
2017-03-20 17:46:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-10-24 15:11:51 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-05-05 13:34:37 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2013-10-11 15:44:27 -07:00
|
|
|
|
|
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2016-11-14 16:30:21 +11:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2013-10-11 15:44:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2013-10-11 15:44:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2016-12-08 15:48:19 -08:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2016-11-14 16:30:21 +11:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2016-12-08 15:48:19 -08:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:50:01 +11:00
|
|
|
|
|
|
|
|
|
2016-11-14 16:30:21 +11:00
|
|
|
|
2011-10-11 16:50:01 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-04-30 00:52:32 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
md/raid10: stop using bi_phys_segments
raid10 currently repurposes bi_phys_segments on each
incoming bio to count how many r10bio was used to encode the
request.
We need to know when the number of attached r10bio reaches
zero to:
1/ call bio_endio() when all IO on the bio is finished
2/ decrement ->nr_pending so that resync IO can proceed.
Now that the bio has its own __bi_remaining counter, that
can be used instead. We can call bio_inc_remaining to
increment the counter and call bio_endio() every time an
r10bio completes, rather than only when bi_phys_segments
reaches zero.
This addresses point 1, but not point 2. bio_endio()
doesn't (and cannot) report when the last r10bio has
finished, so a different approach is needed.
So: instead of counting bios in ->nr_pending, count r10bios.
i.e. every time we attach a bio, increment nr_pending.
Every time an r10bio completes, decrement nr_pending.
Normally we only increment nr_pending after first checking
that ->barrier is zero, or some other non-trivial tests and
possible waiting. When attaching multiple r10bios to a bio,
we only need the tests and the waiting once. After the
first increment, subsequent increments can happen
unconditionally as they are really all part of the one
request.
So introduce inc_pending() which can be used when we know
that nr_pending is already elevated.
Note that this fixes a bug. freeze_array() contains the line
atomic_read(&conf->nr_pending) == conf->nr_queued+extra,
which implies that the units for ->nr_pending, ->nr_queued and extra
are the same.
->nr_queue and extra count r10_bios, but prior to this patch,
->nr_pending counted bios. If a bio ever resulted in multiple
r10_bios (due to bad blocks), freeze_array() would not work correctly.
Now it does.
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
2017-03-15 14:05:13 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-04-18 18:25:43 +10:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2008-05-06 20:42:32 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:45:26 +11:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2008-04-30 00:52:32 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-27 23:48:34 -07:00
|
|
|
|
2012-11-22 14:42:49 +11:00
|
|
|
|
2015-04-27 23:48:34 -07:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2012-11-22 14:42:49 +11:00
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2012-11-22 14:42:49 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2012-11-22 14:42:49 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-04-30 00:52:32 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2008-04-30 00:52:32 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2008-04-30 00:52:32 -07:00
|
|
|
|
2016-11-14 16:30:21 +11:00
|
|
|
|
2008-04-30 00:52:32 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-15 14:05:13 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2010-10-19 12:54:01 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2005-06-21 17:17:12 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-03-20 17:46:04 +08:00
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
2017-03-20 17:46:04 +08:00
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2011-09-10 17:21:23 +10:00
|
|
|
|
2013-11-23 18:21:01 -08:00
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
2016-12-05 13:02:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-05 16:49:39 +10:00
|
|
|
|
2013-11-23 18:21:01 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
2013-11-23 18:21:01 -08:00
|
|
|
|
2016-08-05 15:35:16 -06:00
|
|
|
|
2013-11-23 18:21:01 -08:00
|
|
|
|
2017-06-05 16:49:39 +10:00
|
|
|
|
2013-11-23 18:21:01 -08:00
|
|
|
|
|
|
|
|
|
2017-06-05 16:49:39 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-09-10 17:21:23 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-05 16:49:39 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2016-01-20 13:52:20 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2009-06-18 08:45:01 +10:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:41 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2015-10-22 13:20:15 +11:00
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:41 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
|
|
|
|
|
2013-06-11 15:08:03 +10:00
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
2013-06-11 15:08:03 +10:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-09-27 12:35:21 +10:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
2013-06-11 15:08:03 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
|
|
|
|
|
2013-06-11 15:08:03 +10:00
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
2013-06-11 15:08:03 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
2016-01-20 13:52:20 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
2005-11-08 21:39:31 -08:00
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
2014-07-31 10:16:29 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2014-07-31 10:16:29 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:31:48 +10:00
|
|
|
|
2005-11-08 21:39:31 -08:00
|
|
|
|
2016-12-08 15:48:19 -08:00
|
|
|
|
|
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2006-01-06 00:20:13 -08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2012-07-31 10:03:52 +10:00
|
|
|
|
2010-08-18 11:56:59 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-24 12:55:17 +11:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2010-08-18 11:56:59 +10:00
|
|
|
|
2012-10-11 13:38:58 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2010-08-18 11:56:59 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2010-08-18 11:56:59 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2008-06-28 08:31:33 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-06-28 08:31:31 +10:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-06-28 08:31:33 +10:00
|
|
|
|
2013-06-11 14:57:09 +10:00
|
|
|
|
2008-06-28 08:31:33 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-01-13 16:00:07 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-06 17:28:20 +11:00
|
|
|
|
2008-06-28 08:31:31 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-07-18 17:38:43 +10:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-06-28 08:31:31 +10:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
2012-07-31 10:03:52 +10:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-02 14:19:24 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2013-05-02 14:19:24 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
2011-10-26 11:54:39 +11:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-31 11:42:30 +11:00
|
|
|
|
2012-10-11 13:30:52 +11:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-06-28 08:31:33 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:51 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-12-23 10:17:51 +11:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2012-07-31 10:03:52 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:53 +10:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2012-05-22 13:55:33 +10:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2016-06-02 16:19:53 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-24 15:58:04 +08:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2017-04-24 15:58:04 +08:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:32 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2006-01-06 00:20:29 -08:00
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2006-01-06 00:20:29 -08:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:52 -08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-25 13:18:47 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:32 +08:00
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2017-03-17 00:12:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2017-03-17 00:12:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
md: restart recovery cleanly after device failure.
When we get any IO error during a recovery (rebuilding a spare), we abort
the recovery and restart it.
For RAID6 (and multi-drive RAID1) it may not be best to restart at the
beginning: when multiple failures can be tolerated, the recovery may be
able to continue and re-doing all that has already been done doesn't make
sense.
We already have the infrastructure to record where a recovery is up to
and restart from there, but it is not being used properly.
This is because:
- We sometimes abort with MD_RECOVERY_ERR rather than just MD_RECOVERY_INTR,
which causes the recovery not be be checkpointed.
- We remove spares and then re-added them which loses important state
information.
The distinction between MD_RECOVERY_ERR and MD_RECOVERY_INTR really isn't
needed. If there is an error, the relevant drive will be marked as
Faulty, and that is enough to ensure correct handling of the error. So we
first remove MD_RECOVERY_ERR, changing some of the uses of it to
MD_RECOVERY_INTR.
Then we cause the attempt to remove a non-faulty device from an array to
fail (unless recovery is impossible as the array is too degraded). Then
when remove_and_add_spares attempts to remove the devices on which
recovery can continue, it will fail, they will remain in place, and
recovery will continue on them as desired.
Issue: If we are halfway through rebuilding a spare and another drive
fails, and a new spare is immediately available, do we want to:
1/ complete the current rebuild, then go back and rebuild the new spare or
2/ restart the rebuild from the start and rebuild both devices in
parallel.
Both options can be argued for. The code currently takes option 2 as
a/ this requires least code change
b/ this results in a minimally-degraded array in minimal time.
Cc: "Eivind Sarto" <ivan@kasenna.com>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-23 13:04:39 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-25 13:18:47 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-25 13:18:47 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-20 15:29:37 +02:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-13 11:21:20 +11:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-04-12 16:04:47 +10:00
|
|
|
|
2017-03-17 00:12:34 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-18 15:19:16 +11:00
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:34 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-04-12 16:04:47 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2006-01-06 00:20:29 -08:00
|
|
|
|
|
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:29 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-03-17 00:12:34 +08:00
|
|
|
|
|
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
|
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2006-01-06 00:20:29 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-07-16 16:50:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:34 +08:00
|
|
|
|
|
|
|
|
|
2013-07-16 16:50:47 +10:00
|
|
|
|
2006-01-06 00:20:29 -08:00
|
|
|
|
2013-07-16 16:50:47 +10:00
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:29 -08:00
|
|
|
|
|
|
|
|
|
2012-10-11 14:17:59 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:29 -08:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2012-09-06 14:14:43 -07:00
|
|
|
|
|
|
|
|
|
2017-07-14 16:14:43 +08:00
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
|
|
|
|
|
2013-10-11 15:44:27 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2015-05-06 23:34:20 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2013-02-05 15:19:29 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
|
|
|
|
|
2013-10-11 15:44:27 -07:00
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-06 23:34:20 -07:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-06 23:34:20 -07:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-05 15:19:29 -08:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:34 +08:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:45:26 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:34 +08:00
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:34 +08:00
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2011-12-23 10:17:56 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
2011-12-23 10:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:45:26 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2011-07-18 17:38:49 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-18 17:38:49 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2013-07-24 15:37:42 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2013-02-05 15:19:29 -08:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2013-07-24 15:37:42 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2013-02-05 15:19:29 -08:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
2016-06-17 17:33:10 +02:00
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-17 17:33:10 +02:00
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
2016-06-17 17:33:10 +02:00
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-17 17:33:10 +02:00
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:45:26 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:56 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
2011-12-23 10:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:45:26 +11:00
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
2010-06-24 13:31:03 +10:00
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
2011-05-11 14:53:17 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
2011-05-11 14:53:17 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
2011-05-11 14:53:17 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-02-14 11:10:10 +11:00
|
|
|
|
2011-05-11 14:53:17 +10:00
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-24 13:31:03 +10:00
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2016-06-02 16:19:53 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
|
|
|
|
|
2010-10-27 15:16:40 +11:00
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
2011-01-14 09:14:33 +11:00
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-14 11:10:10 +11:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
2012-02-14 11:10:10 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:57 +11:00
|
|
|
|
2010-06-24 13:31:03 +10:00
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
2016-06-02 16:19:53 +10:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-03 15:55:33 +10:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
2010-06-24 13:31:03 +10:00
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
2016-06-02 16:19:53 +10:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-03 15:55:33 +10:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2011-10-11 16:45:26 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-02-16 14:51:54 +11:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-23 10:53:57 +02:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-02-14 23:29:03 +08:00
|
|
|
|
2013-10-11 15:44:27 -07:00
|
|
|
|
2016-08-23 10:53:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2016-06-05 14:31:41 -05:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2016-08-23 10:53:57 +02:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-14 11:10:10 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-12 11:01:22 +10:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
2012-02-14 11:10:10 +11:00
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
2012-02-14 11:10:10 +11:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:45:26 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:27:00 +10:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-20 15:29:37 +02:00
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:27:00 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2015-08-14 11:26:17 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:27:00 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2015-08-14 11:26:17 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:27:00 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2015-08-14 11:26:17 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-14 11:49:32 -07:00
|
|
|
|
2015-08-14 11:26:17 +10:00
|
|
|
|
2017-04-17 17:11:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-08-14 11:26:17 +10:00
|
|
|
|
2015-10-24 16:23:48 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-08-14 11:26:17 +10:00
|
|
|
|
2015-10-24 16:23:48 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-11 13:34:00 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-10-11 13:34:00 +11:00
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-04-18 18:25:41 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-08-14 11:26:17 +10:00
|
|
|
|
2016-12-08 15:48:19 -08:00
|
|
|
|
2015-08-14 11:26:17 +10:00
|
|
|
|
|
|
|
|
|
2016-12-08 15:48:19 -08:00
|
|
|
|
2016-03-14 11:49:32 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-08-14 11:26:17 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-01 15:17:43 -04:00
|
|
|
|
|
|
|
|
|
2015-08-14 11:26:17 +10:00
|
|
|
|
2015-10-24 16:23:48 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-08-14 11:26:17 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-04-18 18:25:41 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2012-07-31 09:08:14 +02:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2008-03-04 14:29:29 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-03-04 14:29:29 -08:00
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2006-01-06 00:20:28 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-06-16 16:54:21 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-03-10 08:52:07 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:23 +10:00
|
|
|
|
2009-10-16 15:55:32 +11:00
|
|
|
|
2016-12-08 15:48:19 -08:00
|
|
|
|
2011-07-28 11:31:48 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-04-18 18:25:41 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2006-04-02 13:34:29 +02:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2011-12-23 10:17:54 +11:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-24 17:50:40 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-10-24 15:11:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-20 13:52:20 -08:00
|
|
|
|
2015-02-19 16:04:40 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2010-10-19 10:03:39 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2017-07-14 16:14:42 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:13 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2013-04-24 11:42:42 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-07-04 16:41:53 +10:00
|
|
|
|
|
|
|
|
|
2013-04-24 11:42:42 +10:00
|
|
|
|
2013-07-04 16:41:53 +10:00
|
|
|
|
2013-04-24 11:42:42 +10:00
|
|
|
|
|
|
|
|
|
2013-07-04 16:41:53 +10:00
|
|
|
|
2013-04-24 11:42:42 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2009-03-31 14:33:13 +11:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2017-10-24 15:11:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2014-08-18 13:59:50 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-06-21 17:17:13 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:13 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2008-02-06 01:39:52 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-06-13 15:51:19 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2012-07-31 10:03:52 +10:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:53 +10:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-03 10:37:30 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-07-03 10:37:30 +10:00
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:53 +10:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2017-08-24 17:50:40 -07:00
|
|
|
|
2014-08-18 14:38:45 +10:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
2009-05-07 12:48:10 +10:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
2005-09-09 16:24:04 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
2013-10-11 15:44:27 -07:00
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
2011-07-28 11:39:25 +10:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2013-10-11 15:44:27 -07:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2013-10-11 15:44:27 -07:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2014-01-06 10:35:34 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:43 +11:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2017-10-24 15:11:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-25 13:18:47 +11:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
|
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-24 17:50:40 -07:00
|
|
|
|
2014-08-18 14:38:45 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-11 14:20:58 +11:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2017-06-13 11:16:08 +08:00
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2017-06-13 11:16:08 +08:00
|
|
|
|
2016-11-18 16:16:12 +11:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2017-06-13 11:16:08 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-11 14:54:41 +10:00
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2017-07-14 16:14:42 +08:00
|
|
|
|
2017-03-17 00:12:22 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-14 16:14:42 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2017-10-24 15:11:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:13 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-28 11:39:24 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2009-02-25 13:18:47 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-03-17 18:10:40 -07:00
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-03-17 18:10:40 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2009-03-17 18:10:40 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2009-03-17 18:10:40 -07:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2009-03-17 18:10:40 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
2009-03-17 18:10:40 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2009-03-17 18:10:40 -07:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2009-03-17 18:10:40 -07:00
|
|
|
|
|
|
|
|
|
2012-05-17 10:08:45 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-17 10:08:45 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2012-05-17 10:08:45 +10:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2012-05-17 10:08:45 +10:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
2012-05-17 10:08:45 +10:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
2012-05-17 10:08:45 +10:00
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-22 13:20:15 +11:00
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-22 13:20:15 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2006-01-06 00:20:36 -08:00
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2012-07-31 10:03:52 +10:00
|
|
|
|
2013-07-02 15:58:05 +10:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:28 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-18 14:38:57 +10:00
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-17 10:08:45 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-06 17:37:49 +10:00
|
|
|
|
2008-05-14 16:05:54 -07:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2015-08-14 11:26:17 +10:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-24 14:20:16 +02:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2012-07-03 15:56:52 +10:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-13 14:15:10 +02:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-20 13:52:20 -08:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2012-07-31 10:03:52 +10:00
|
|
|
|
2011-10-11 16:45:26 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2012-10-11 13:30:52 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2017-06-05 16:05:13 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-10-24 15:11:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-07-01 11:13:45 +10:00
|
|
|
|
2012-07-31 10:03:53 +10:00
|
|
|
|
2012-10-11 13:30:52 +11:00
|
|
|
|
|
|
|
|
|
md/raid1,5,10: Disable WRITE SAME until a recovery strategy is in place
There are cases where the kernel will believe that the WRITE SAME
command is supported by a block device which does not, in fact,
support WRITE SAME. This currently happens for SATA drivers behind a
SAS controller, but there are probably a hundred other ways that can
happen, including drive firmware bugs.
After receiving an error for WRITE SAME the block layer will retry the
request as a plain write of zeroes, but mdraid will consider the
failure as fatal and consider the drive failed. This has the effect
that all the mirrors containing a specific set of data are each
offlined in very rapid succession resulting in data loss.
However, just bouncing the request back up to the block layer isn't
ideal either, because the whole initial request-retry sequence should
be inside the write bitmap fence, which probably means that md needs
to do its own conversion of WRITE SAME to write zero.
Until the failure scenario has been sorted out, disable WRITE SAME for
raid1, raid5, and raid10.
[neilb: added raid5]
This patch is appropriate for any -stable since 3.7 when write_same
support was added.
Cc: stable@vger.kernel.org
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2013-06-12 07:37:43 -07:00
|
|
|
|
2017-04-05 19:21:03 +02:00
|
|
|
|
2012-07-31 10:03:53 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-07-01 11:13:45 +10:00
|
|
|
|
2012-03-19 12:46:39 +11:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2011-07-28 11:31:47 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
2012-07-31 10:03:53 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-10-11 13:30:52 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-06 09:12:18 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2012-10-31 11:42:30 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-09-09 16:24:03 -07:00
|
|
|
|
2011-07-27 11:00:36 +10:00
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
2005-09-09 16:24:03 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-07-02 15:58:05 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 10:17:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:40 -07:00
|
|
|
|
2006-10-21 10:24:07 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2014-01-14 16:30:10 +11:00
|
|
|
|
|
|
|
|
|
Ensure interrupted recovery completed properly (v1 metadata plus bitmap)
If, while assembling an array, we find a device which is not fully
in-sync with the array, it is important to set the "fullsync" flags.
This is an exact analog to the setting of this flag in hot_add_disk
methods.
Currently, only v1.x metadata supports having devices in an array
which are not fully in-sync (it keep track of how in sync they are).
The 'fullsync' flag only makes a difference when a write-intent bitmap
is being used. In this case it tells recovery to ignore the bitmap
and recovery all blocks.
This fix is already in place for raid1, but not raid5/6 or raid10.
So without this fix, a raid1 ir raid4/5/6 array with version 1.x
metadata and a write intent bitmaps, that is stopped in the middle
of a recovery, will appear to complete the recovery instantly
after it is reassembled, but the recovery will not be correct.
If you might have an array like that, issueing
echo repair > /sys/block/mdXX/md/sync_action
will make sure recovery completes properly.
Cc: <stable@kernel.org>
Signed-off-by: Neil Brown <neilb@suse.de>
2008-06-28 08:30:52 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-10-26 11:54:39 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2009-06-18 08:48:06 +10:00
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-18 16:16:11 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-07-31 10:03:53 +10:00
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2009-06-18 08:45:01 +10:00
|
|
|
|
2012-07-31 10:03:53 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2017-02-02 15:56:50 +01:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-03-17 11:11:05 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-09-21 15:30:20 +10:00
|
|
|
|
2015-09-13 14:15:10 +02:00
|
|
|
|
2006-01-06 00:20:40 -08:00
|
|
|
|
2005-06-21 17:17:30 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-12-15 12:56:58 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2014-12-15 12:56:58 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2015-09-13 14:15:10 +02:00
|
|
|
|
2013-04-24 11:42:44 +10:00
|
|
|
|
2005-06-21 17:17:30 -07:00
|
|
|
|
2014-08-23 20:19:26 +10:00
|
|
|
|
|
|
|
|
|
2017-04-05 14:05:51 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-10-19 12:49:15 +11:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2017-10-19 12:49:15 +11:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2017-10-19 12:49:15 +11:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-21 09:28:20 +10:00
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:27 +10:00
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
2012-05-22 13:55:27 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-17 10:08:45 +10:00
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-02-12 14:09:57 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2011-10-11 16:45:26 +11:00
|
|
|
|
2011-10-11 16:49:02 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
2015-02-12 14:09:57 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-02-12 14:09:57 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
2011-02-04 14:18:26 +01:00
|
|
|
|
2012-03-19 12:46:39 +11:00
|
|
|
|
2015-02-12 14:09:57 +11:00
|
|
|
|
2010-06-15 09:36:03 +01:00
|
|
|
|
2015-02-12 14:09:57 +11:00
|
|
|
|
|
|
|
|
|
2011-02-04 14:18:26 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2011-10-11 16:48:59 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:48:59 +11:00
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
2015-02-12 14:09:57 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-31 10:03:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:28 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-01 12:15:07 -07:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-31 10:03:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2014-08-23 20:19:26 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:50 +11:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-06 17:37:49 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:28 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-08 15:48:19 -08:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-06-12 20:05:04 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:28 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:28 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-06 17:37:49 +10:00
|
|
|
|
2012-05-22 13:55:28 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-06 16:33:47 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-06 16:33:47 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-08 15:48:19 -08:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2016-12-08 15:48:19 -08:00
|
|
|
|
2013-11-19 12:02:01 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-24 17:50:40 -07:00
|
|
|
|
2014-08-18 14:38:45 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-18 14:48:54 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2013-10-11 15:44:27 -07:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:32 +08:00
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2014-08-18 13:56:38 +10:00
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2013-10-11 15:44:27 -07:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-09-06 14:14:43 -07:00
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2013-10-11 15:44:27 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:22 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2017-08-23 19:10:32 +02:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-06 17:37:49 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-02-02 15:56:50 +01:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-10-05 11:28:47 -07:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:35 +08:00
|
|
|
|
|
|
|
|
|
2017-10-05 11:28:47 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:35 +08:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2012-08-18 09:51:42 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2012-08-18 09:51:42 +10:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-08-18 09:51:42 +10:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-17 00:12:35 +08:00
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-10-05 11:28:47 -07:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-10-05 11:28:47 -07:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-20 15:29:37 +02:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
2017-03-17 00:12:33 +08:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-03 09:38:06 +02:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-03 19:43:24 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:33 +10:00
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:55:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:55:33 +10:00
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:55:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-02 16:19:52 +10:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:49:58 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:36 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-01-20 13:52:20 -08:00
|
|
|
|
|
|
|
|
|
2014-12-15 12:56:58 +11:00
|
|
|
|
2016-01-20 13:52:20 -08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-20 13:52:20 -08:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2009-03-17 18:10:40 -07:00
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
2010-03-08 16:02:45 +11:00
|
|
|
|
2012-05-22 13:53:47 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-12-15 12:56:56 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:36 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:36 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:58 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2006-01-06 00:20:51 -08:00
|
|
|
|
2006-01-06 00:20:36 -08:00
|
|
|
|
2011-10-11 16:50:01 +11:00
|
|
|
|
|
|
|
|
|