The BUG_ON(mddev->ro == 1) in md_write_start can be triggered under two
circumstances in recent kernels. One was reported by Justin Maggard:
1) Create an md array with >= 1 disk
2) Start a task writing to the array ("dd if=/dev/zero of=/dev/md0
bs=1M count=10000 &" does the trick for me)
3) Force an improper reboot with reboot -fn
...the other was discovered while investigating this issue.
1) Set a raid5 readyonly with mdadm
2) Set the array writable with blockdev
3) Attempt to write to the array
---
Dan Williams (2):
Revert "Restore force switch of md array to readonly at reboot time."
md: set mddev readonly flag on blkdev BLKROSET ioctl
drivers/md/md.c | 35 ++++++++++++++++++++++++++++++-----
1 files changed, 30 insertions(+), 5 deletions(-)