Re: [patch 0/7] Add TRIM support for raid linear/0/1/10

From: Shaohua Li
Date: Tue Mar 13 2012 - 22:47:39 EST


On 3/14/12 10:24 AM, NeilBrown wrote:
On Mon, 12 Mar 2012 11:04:12 +0800 Shaohua Li <shli@xxxxxxxxxxxx> wrote:

> The patches add TRIM support for raid linear/0/1/10. I'll add TRIM
support for
> raid 4/5/6 later. The implementation is pretty straightforward and
> self-explained.
>
> Thanks,
> Shaohua

Thanks.
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/