Re: [patch 0/7] Add TRIM support for raid linear/0/1/10
From: Shaohua Li <shli@kernel.org>
Date: 2012-03-14 02:47:42
Also in:
lkml
On 3/14/12 10:24 AM, NeilBrown wrote:
On Mon, 12 Mar 2012 11:04:12 +0800 Shaohua Li [off-list ref] wrote:quoted
The patches add TRIM support for raid linear/0/1/10. I'll add TRIM
support for
quoted
raid 4/5/6 later. The implementation is pretty straightforward and self-explained. Thanks, ShaohuaThanks. They look mostly OK. In raid0.c, I think you'll need to change /* Sanity check -- queue functions should prevent this happening */ if (bio->bi_vcnt != 1 || bio->bi_idx != 0) goto bad_map; to also allow for 'bi_vcnt == 0' like you did in bio_split. Also I wonder about handling failure in RAID1. I think the code will currently treat it like a write error, and maybe record a bad block (then fail the device is writing the badblock record fails). Is that what were want?
Mainly to simplify the code. And I thought a normal discard should not fail. If it fails, something is wrong, marked it as badblock maybe not bad.
And of course resync/recovery will mess up the discarded sector
information,
so this isn't a complete solution for RAID1. But it is a reasonable start.
Yes, this is a mess. Looks impossible without ondisk format change at first glance. Thanks, Shaohua