Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'md/3.16-fixes' of git://neil.brown.name/md

Pull md bugfixes from Neil Brown:
"Two minor bugfixes for md in 3.16"

* tag 'md/3.16-fixes' of git://neil.brown.name/md:
md: flush writes before starting a recovery.
md: make sure GET_ARRAY_INFO ioctl reports correct "clean" status

+14 -1
+14 -1
drivers/md/md.c
··· 5599 5599 if (mddev->in_sync) 5600 5600 info.state = (1<<MD_SB_CLEAN); 5601 5601 if (mddev->bitmap && mddev->bitmap_info.offset) 5602 - info.state = (1<<MD_SB_BITMAP_PRESENT); 5602 + info.state |= (1<<MD_SB_BITMAP_PRESENT); 5603 5603 info.active_disks = insync; 5604 5604 info.working_disks = working; 5605 5605 info.failed_disks = failed; ··· 7501 7501 rdev->recovery_offset < j) 7502 7502 j = rdev->recovery_offset; 7503 7503 rcu_read_unlock(); 7504 + 7505 + /* If there is a bitmap, we need to make sure all 7506 + * writes that started before we added a spare 7507 + * complete before we start doing a recovery. 7508 + * Otherwise the write might complete and (via 7509 + * bitmap_endwrite) set a bit in the bitmap after the 7510 + * recovery has checked that bit and skipped that 7511 + * region. 7512 + */ 7513 + if (mddev->bitmap) { 7514 + mddev->pers->quiesce(mddev, 1); 7515 + mddev->pers->quiesce(mddev, 0); 7516 + } 7504 7517 } 7505 7518 7506 7519 printk(KERN_INFO "md: %s of RAID array %s\n", desc, mdname(mddev));