<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/md/linear.c, branch v2.6.32</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v2.6.32</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v2.6.32'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2009-09-23T08:10:29+00:00</updated>
<entry>
<title>md: report device as congested when suspended</title>
<updated>2009-09-23T08:10:29+00:00</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2009-09-23T08:10:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3fa841d7e7266f6fcc1b3885b905f5153ba897d8'/>
<id>urn:sha1:3fa841d7e7266f6fcc1b3885b905f5153ba897d8</id>
<content type='text'>
This should writeback from coming when the device is temporarily
suspended.

Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>bio: first step in sanitizing the bio-&gt;bi_rw flag testing</title>
<updated>2009-09-11T12:33:31+00:00</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2009-09-11T12:32:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=1f98a13f623e0ef666690a18c1250335fc6d7ef1'/>
<id>urn:sha1:1f98a13f623e0ef666690a18c1250335fc6d7ef1</id>
<content type='text'>
Get rid of any functions that test for these bits and make callers
use bio_rw_flagged() directly. Then it is at least directly apparent
what variable and flag they check.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>md: Use revalidate_disk to effect changes in size of device.</title>
<updated>2009-08-03T00:59:58+00:00</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2009-08-03T00:59:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=449aad3e25358812c43afc60918c5ad3819488e7'/>
<id>urn:sha1:449aad3e25358812c43afc60918c5ad3819488e7</id>
<content type='text'>
As revalidate_disk calls check_disk_size_change, it will cause
any capacity change of a gendisk to be propagated to the blockdev
inode.  So use that instead of mucking about with locks and
i_size_write.

Also add a call to revalidate_disk in do_md_run and a few other places
where the gendisk capacity is changed.

Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md: Push down data integrity code to personalities.</title>
<updated>2009-08-03T00:59:47+00:00</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-08-03T00:59:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ac5e7113e74872928844d00085bd47c988f12728'/>
<id>urn:sha1:ac5e7113e74872928844d00085bd47c988f12728</id>
<content type='text'>
This patch replaces md_integrity_check() by two new public functions:
md_integrity_register() and md_integrity_add_rdev() which are both
personality-independent.

md_integrity_register() is called from the -&gt;run and -&gt;hot_remove
methods of all personalities that support data integrity.  The
function iterates over the component devices of the array and
determines if all active devices are integrity capable and if their
profiles match. If this is the case, the common profile is registered
for the mddev via blk_integrity_register().

The second new function, md_integrity_add_rdev() is called from the
-&gt;hot_add_disk methods, i.e. whenever a new device is being added
to a raid array. If the new device does not support data integrity,
or has a profile different from the one already registered, data
integrity for the mddev is disabled.

For raid0 and linear, only the call to md_integrity_register() from
the -&gt;run method is necessary.

Signed-off-by: Andre Noll &lt;maan@systemlinux.org&gt;
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md: Use new topology calls to indicate alignment and I/O sizes</title>
<updated>2009-07-01T01:13:45+00:00</updated>
<author>
<name>Martin K. Petersen</name>
<email>martin.petersen@oracle.com</email>
</author>
<published>2009-07-01T01:13:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8f6c2e4b325a8e9f8f47febb2fd0ed4fae7d45a9'/>
<id>urn:sha1:8f6c2e4b325a8e9f8f47febb2fd0ed4fae7d45a9</id>
<content type='text'>
Switch MD over to the new disk_stack_limits() function which checks for
aligment and adjusts preferred I/O sizes when stacking.

Also indicate preferred I/O sizes where applicable.

Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md/linear: use call_rcu to free obsolete 'conf' structures.</title>
<updated>2009-06-17T22:49:42+00:00</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2009-06-17T22:49:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=495d357301e1de01fabe30ce9a555301fb4675c3'/>
<id>urn:sha1:495d357301e1de01fabe30ce9a555301fb4675c3</id>
<content type='text'>
Current, when we update the 'conf' structure, when adding a
drive to a linear array, we keep the old version around until
the array is finally stopped, as it is not safe to free it
immediately.

Now that we have rcu protection on all accesses to 'conf',
we can use call_rcu to free it more promptly.

Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md linear: Protecting mddev with rcu locks to avoid races</title>
<updated>2009-06-17T22:49:35+00:00</updated>
<author>
<name>SandeepKsinha</name>
<email>sandeepksinha@gmail.com</email>
</author>
<published>2009-06-17T22:49:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=af11c397fd8835c70ec0bb777104e4ab98b2d660'/>
<id>urn:sha1:af11c397fd8835c70ec0bb777104e4ab98b2d660</id>
<content type='text'>
Due to the lack of memory ordering guarantees, we may have races around
mddev-&gt;conf.

In particular, the correct contents of the structure we get from
dereferencing -&gt;private might not be visible to this CPU yet, and
they might not be correct w.r.t mddev-&gt;raid_disks.

This patch addresses the problem using rcu protection to avoid
such race conditions.

Signed-off-by: SandeepKsinha &lt;sandeepksinha@gmail.com&gt;
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md: Move check for bitmap presence to personality code.</title>
<updated>2009-06-17T22:49:23+00:00</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-06-17T22:49:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0894cc3066aaa3e75a99383c0d25feebf9b688ac'/>
<id>urn:sha1:0894cc3066aaa3e75a99383c0d25feebf9b688ac</id>
<content type='text'>
If the superblock of a component device indicates the presence of a
bitmap but the corresponding raid personality does not support bitmaps
(raid0, linear, multipath, faulty), then something is seriously wrong
and we'd better refuse to run such an array.

Currently, this check is performed while the superblocks are examined,
i.e. before entering personality code. Therefore the generic md layer
must know which raid levels support bitmaps and which do not.

This patch avoids this layer violation without adding identical code
to various personalities. This is accomplished by introducing a new
public function to md.c, md_check_no_bitmap(), which replaces the
hard-coded checks in the superblock loading functions.

A call to md_check_no_bitmap() is added to the -&gt;run method of each
personality which does not support bitmaps and assembly is aborted
if at least one component device contains a bitmap.

Signed-off-by: Andre Noll &lt;maan@systemlinux.org&gt;
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md: raid0/linear: ensure device sizes are rounded to chunk size.</title>
<updated>2009-06-17T22:48:55+00:00</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2009-06-17T22:48:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=13f2682b7216ebebd72b3d5868fe7fccec91a92d'/>
<id>urn:sha1:13f2682b7216ebebd72b3d5868fe7fccec91a92d</id>
<content type='text'>
This is currently ensured by common code, but it is more reliable to
ensure it where it is needed in personality code.
All the other personalities that care already round the size to
the chunk_size.  raid0 and linear are the only hold-outs.

Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md: Make mddev-&gt;chunk_size sector-based.</title>
<updated>2009-06-17T22:45:01+00:00</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-06-17T22:45:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=9d8f0363623b3da12c43007cf77f5e1a4e8a5964'/>
<id>urn:sha1:9d8f0363623b3da12c43007cf77f5e1a4e8a5964</id>
<content type='text'>
This patch renames the chunk_size field to chunk_sectors with the
implied change of semantics.  Since

	is_power_of_2(chunk_size) = is_power_of_2(chunk_sectors &lt;&lt; 9)
				  = is_power_of_2(chunk_sectors)

these bits don't need an adjustment for the shift.

Signed-off-by: Andre Noll &lt;maan@systemlinux.org&gt;
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
</feed>
