1 Subject: [Bug 429490] sles10 raid0 can not be started
2 From: bugzilla_noreply@novell.com
4 ### Comment #4 from Neil Brown <nfbrown@novell.com> 2008-10-08 17:34:49 MDT ---
5 The md code was written with the expectation that the chunk size would
6 always be at least one page. This may not always be a strict requirement,
7 but I guess that test protects against untested code.
9 For raid4/5/6, the stripe-cache is stored as pages so a chunk size
10 less than one page would certainly cause problems with the current code.
12 For raid0, I think a smaller chunk size should work.
13 The filesystem is always allowed to send down one-page requests, and
14 if the chunk size is less than that page size, these requests will have
15 to be split up, possibly multiple times. However I think the code will
16 get this right - it has only actually be used for page-sized requests
17 that are not page-aligned.
19 You could try changing the test to
21 if (chunk_size < PAGE_SIZE && mddev->level != 0) {
23 and see how that works.
25 Signed-off-by: Olaf Hering <olh@suse.de>
28 drivers/md/md.c | 5 +++++
29 1 file changed, 5 insertions(+)
33 @@ -3587,9 +3587,14 @@ static int do_md_run(mddev_t * mddev)
36 if (chunk_size < PAGE_SIZE) {
38 printk(KERN_ERR "too small chunk_size: %d < %ld\n",
39 chunk_size, PAGE_SIZE);
42 + printk(KERN_ERR "too small chunk_size: %d < %ld, but continuing anyway on raid0. Good luck!\n",
43 + chunk_size, PAGE_SIZE);
47 /* devices must have minimum size of one chunk */