<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/md/linear.c, branch v2.6.26</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v2.6.26</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.26'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2008-05-15T02:11:15Z</updated>
<entry>
<title>Remove blkdev warning triggered by using md</title>
<updated>2008-05-15T02:11:15Z</updated>
<author>
<name>Neil Brown</name>
<email>neilb@suse.de</email>
</author>
<published>2008-05-14T23:05:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e7e72bf641b1fc7b9df6f40bd2c36dfccd8d647c'/>
<id>urn:sha1:e7e72bf641b1fc7b9df6f40bd2c36dfccd8d647c</id>
<content type='text'>
As setting and clearing queue flags now requires that we hold a spinlock
on the queue, and as blk_queue_stack_limits is called without that lock,
get the lock inside blk_queue_stack_limits.

For blk_queue_stack_limits to be able to find the right lock, each md
personality needs to set q-&gt;queue_lock to point to the appropriate lock.
Those personalities which didn't previously use a spin_lock, us
q-&gt;__queue_lock.  So always initialise that lock when allocated.

With this in place, setting/clearing of the QUEUE_FLAG_PLUGGED bit will no
longer cause warnings as it will be clear that the proper lock is held.

Thanks to Dan Williams for review and fixing the silly bugs.

Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
Cc: Dan Williams &lt;dan.j.williams@intel.com&gt;
Cc: Jens Axboe &lt;jens.axboe@oracle.com&gt;
Cc: Alistair John Strachan &lt;alistair@devzero.co.uk&gt;
Cc: Nick Piggin &lt;npiggin@suse.de&gt;
Cc: "Rafael J. Wysocki" &lt;rjw@sisk.pl&gt;
Cc: Jacek Luczak &lt;difrost.kernel@gmail.com&gt;
Cc: Prakash Punnoor &lt;prakash@punnoor.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>md: change ITERATE_RDEV to rdev_for_each</title>
<updated>2008-02-06T18:41:19Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2008-02-06T09:39:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d089c6af10c2be5988f03667d6d22fe6085fbe5e'/>
<id>urn:sha1:d089c6af10c2be5988f03667d6d22fe6085fbe5e</id>
<content type='text'>
As this is more in line with common practice in the kernel.  Also swap the
args around to be more like list_for_each.

Signed-off-by: Neil Brown &lt;neilb@suse.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Add UNPLUG traces to all appropriate places</title>
<updated>2007-11-09T12:41:32Z</updated>
<author>
<name>Alan D. Brunelle</name>
<email>Alan.Brunelle@hp.com</email>
</author>
<published>2007-11-07T19:26:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2ad8b1ef11c98c5603580878aebf9f1bc74129e4'/>
<id>urn:sha1:2ad8b1ef11c98c5603580878aebf9f1bc74129e4</id>
<content type='text'>
Added blk_unplug interface, allowing all invocations of unplugs to result
in a generated blktrace UNPLUG.

Signed-off-by: Alan D. Brunelle &lt;Alan.Brunelle@hp.com&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>block: convert blkdev_issue_flush() to use empty barriers</title>
<updated>2007-10-16T09:05:02Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2007-10-16T09:05:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=fd5d806266935179deda1502101624832eacd01f'/>
<id>urn:sha1:fd5d806266935179deda1502101624832eacd01f</id>
<content type='text'>
Then we can get rid of -&gt;issue_flush_fn() and all the driver private
implementations of that.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>Drop 'size' argument from bio_endio and bi_end_io</title>
<updated>2007-10-10T07:25:57Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2007-09-27T10:47:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6712ecf8f648118c3363c142196418f89a510b90'/>
<id>urn:sha1:6712ecf8f648118c3363c142196418f89a510b90</id>
<content type='text'>
As bi_end_io is only called once when the reqeust is complete,
the 'size' argument is now redundant.  Remove it.

Now there is no need for bio_endio to subtract the size completed
from bi_size.  So don't do that either.

While we are at it, change bi_end_io to return void.

Signed-off-by: Neil Brown &lt;neilb@suse.de&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>[BLOCK] Get rid of request_queue_t typedef</title>
<updated>2007-07-24T07:28:11Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2007-07-24T07:28:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=165125e1e480f9510a5ffcfbfee4e3ee38c05f23'/>
<id>urn:sha1:165125e1e480f9510a5ffcfbfee4e3ee38c05f23</id>
<content type='text'>
Some of the code has been gradually transitioned to using the proper
struct request_queue, but there's lots left. So do a full sweet of
the kernel and get rid of this typedef and replace its uses with
the proper type.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>md: fix bug with linear hot-add and elsewhere</title>
<updated>2007-05-24T03:14:14Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2007-05-23T20:58:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a778b73ff793d34c0082f76110f73a7754915067'/>
<id>urn:sha1:a778b73ff793d34c0082f76110f73a7754915067</id>
<content type='text'>
Adding a drive to a linear array seems to have stopped working, due to changes
elsewhere in md, and insufficient ongoing testing...

So the patch to make linear hot-add work in the first place introduced a
subtle bug elsewhere that interracts poorly with older version of mdadm.

This fixes it all up.

Signed-off-by: Neil Brown &lt;neilb@suse.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] fix read past end of array in md/linear.c</title>
<updated>2007-03-17T02:25:03Z</updated>
<author>
<name>Andy Isaacson</name>
<email>adi@hexapodia.org</email>
</author>
<published>2007-03-16T21:38:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bed31ed9e1cd71d98ff0bc9212100adee523a10a'/>
<id>urn:sha1:bed31ed9e1cd71d98ff0bc9212100adee523a10a</id>
<content type='text'>
When iterating through an array, one must be careful to test one's index
variable rather than another similarly-named variable.

The loop will read off the end of conf-&gt;disks[] in the following
(pathological) case:

  % dd bs=1 seek=840716287 if=/dev/zero of=d1 count=1
  % for i in 2 3 4; do dd if=/dev/zero of=d$i bs=1k count=$(($i+150)); done
  % ./vmlinux ubd0=root ubd1=d1 ubd2=d2 ubd3=d3 ubd4=d4
  # mdadm -C /dev/md0 --level=linear --raid-devices=4 /dev/ubd[1234]

adding some printks, I saw this:

  [42949374.960000] hash_spacing = 821120
  [42949374.960000] cnt          = 4
  [42949374.960000] min_spacing  = 801
  [42949374.960000] j=0 size=820928 sz=820928
  [42949374.960000] i=0 sz=820928 hash_spacing=820928
  [42949374.960000] j=1 size=64 sz=64
  [42949374.960000] j=2 size=64 sz=128
  [42949374.960000] j=3 size=64 sz=192
  [42949374.960000] j=4 size=1515870810 sz=1515871002

Cc: Gautham R Shenoy &lt;ego@in.ibm.com&gt;
Acked-by: Neil Brown &lt;neilb@cse.unsw.edu.au&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] md: define backing_dev_info.congested_fn for raid0 and linear</title>
<updated>2006-10-03T15:04:18Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2006-10-03T08:15:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=26be34dc3a46be983352dd89683db374b0cb73fa'/>
<id>urn:sha1:26be34dc3a46be983352dd89683db374b0cb73fa</id>
<content type='text'>
Each backing_dev needs to be able to report whether it is congested, either by
modulating BDI_*_congested in -&gt;state, or by defining a -&gt;congested_fn.
md/raid did neither of these.  This patch add a congested_fn which simply
checks all component devices to see if they are congested.

Signed-off-by: Neil Brown &lt;neilb@suse.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] md: Fix a bug that recently crept into md/linear</title>
<updated>2006-08-06T15:57:46Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2006-08-05T19:14:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f9abd1ace43d6186268856dbec2ebf411218d6ca'/>
<id>urn:sha1:f9abd1ace43d6186268856dbec2ebf411218d6ca</id>
<content type='text'>
A recent patch that allowed linear arrays to be reconfigured on-line
allowed in a bug which results in divide by zero - not all
mddev-&gt;array_size were converted to conf-&gt;array_size.

This patch finished the conversion and fixed the bug.

The offending patch was commit 7c7546ccf6463edbeee8d9aac6de7be1cd80d08a.

Thanks to Simon Kirby &lt;sim@netnation.com&gt; for the bug report.

Cc: Simon Kirby &lt;sim@netnation.com&gt;
Signed-off-by: Neil Brown &lt;neilb@suse.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
</feed>
