<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/md/raid1.h, branch v3.4.58</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/md/raid1.h?h=v3.4.58</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/md/raid1.h?h=v3.4.58'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-12-22T23:17:56Z</updated>
<entry>
<title>md/raid1: Allocate spare to store replacement devices and their bios.</title>
<updated>2011-12-22T23:17:56Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2011-12-22T23:17:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8f19ccb2fd70deb1f278be5e75076074cfddee46'/>
<id>urn:sha1:8f19ccb2fd70deb1f278be5e75076074cfddee46</id>
<content type='text'>
In RAID1, a replacement is much like a normal device, so we just
double the size of the relevant arrays and look at all possible
devices for reads and writes.

This means that the array looks like it is now double the size in some
way - we need to be careful about that.
In particular, we checking if the array is still degraded while
creating a recovery request we need to only consider the first 'half'
- i.e. the real (non-replacement) devices.

Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md: add proper write-congestion reporting to RAID1 and RAID10.</title>
<updated>2011-10-11T05:50:01Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2011-10-11T05:50:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=34db0cd60f8a1f4ab73d118a8be3797c20388223'/>
<id>urn:sha1:34db0cd60f8a1f4ab73d118a8be3797c20388223</id>
<content type='text'>
RAID1 and RAID10 handle write requests by queuing them for handling by
a separate thread.  This is because when a write-intent-bitmap is
active we might need to update the bitmap first, so it is good to
queue a lot of writes, then do one big bitmap update for them all.

However writeback request devices to appear to be congested after a
while so it can make some guesstimate of throughput.  The infinite
queue defeats that (note that RAID5 has already has a finite queue so
it doesn't suffer from this problem).

So impose a limit on the number of pending write requests.  By default
it is 1024 which seems to be generally suitable.  Make it configurable
via module option just in case someone finds a regression.

Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md/raid1: typedef removal: conf_t -&gt; struct r1conf</title>
<updated>2011-10-11T05:49:05Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2011-10-11T05:49:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e8096360476689898f038feebf5b352c9ec43a2a'/>
<id>urn:sha1:e8096360476689898f038feebf5b352c9ec43a2a</id>
<content type='text'>
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md: remove typedefs: mirror_info_t -&gt; struct mirror_info</title>
<updated>2011-10-11T05:48:46Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2011-10-11T05:48:46Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0f6d02d580ca77ee4be085c29c5fe5b879df24d9'/>
<id>urn:sha1:0f6d02d580ca77ee4be085c29c5fe5b879df24d9</id>
<content type='text'>
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md: remove typedefs: r10bio_t -&gt; struct r10bio and r1bio_t -&gt; struct r1bio</title>
<updated>2011-10-11T05:48:43Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2011-10-11T05:48:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9f2c9d12bcc53fcb3b787023723754e84d1aef8b'/>
<id>urn:sha1:9f2c9d12bcc53fcb3b787023723754e84d1aef8b</id>
<content type='text'>
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md: remove typedefs: mdk_thread_t -&gt; struct md_thread</title>
<updated>2011-10-11T05:48:23Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2011-10-11T05:48:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2b8bf3451d1e3133ebc3998721d14013a6c27114'/>
<id>urn:sha1:2b8bf3451d1e3133ebc3998721d14013a6c27114</id>
<content type='text'>
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md: remove typedefs: mddev_t -&gt; struct mddev</title>
<updated>2011-10-11T05:47:53Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2011-10-11T05:47:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fd01b88c75a718020ff77e7f560d33835e9b58de'/>
<id>urn:sha1:fd01b88c75a718020ff77e7f560d33835e9b58de</id>
<content type='text'>
Having mddev_t and 'struct mddev_s' is ugly and not preferred

Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md: removing typedefs:  mdk_rdev_t -&gt; struct md_rdev</title>
<updated>2011-10-11T05:45:26Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2011-10-11T05:45:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3cb03002000f133f9f97269edefd73611eafc873'/>
<id>urn:sha1:3cb03002000f133f9f97269edefd73611eafc873</id>
<content type='text'>
The typedefs are just annoying. 'mdk' probably refers to 'md_k.h'
which used to be an include file that defined this thing.

Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md/raid1:  add documentation to r1_private_data_s data structure.</title>
<updated>2011-10-07T03:22:33Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2011-10-07T03:22:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ce550c2059a67ee7834fc6f64cf895391d36a58e'/>
<id>urn:sha1:ce550c2059a67ee7834fc6f64cf895391d36a58e</id>
<content type='text'>
There wasn't much and it is inconsistent.
Also rearrange fields to keep related fields together.

Reported-by: Aapo Laine &lt;aapo.laine@shiftmail.org&gt;
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md/raid1:  Handle write errors by updating badblock log.</title>
<updated>2011-07-28T01:32:41Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2011-07-28T01:32:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cd5ff9a16f0831f68c1024d5d776075b5123b034'/>
<id>urn:sha1:cd5ff9a16f0831f68c1024d5d776075b5123b034</id>
<content type='text'>
When we get a write error (in the data area, not in metadata),
update the badblock log rather than failing the whole device.

As the write may well be many blocks, we trying writing each
block individually and only log the ones which fail.

Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
Reviewed-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
</content>
</entry>
</feed>
