| Submitter | Milan Broz |
|---|---|
| Date | Dec. 19, 2012, 9:07 p.m. |
| Message ID | <50D22C7F.2020201@redhat.com> |
| Download | mbox | patch |
| Permalink | /patch/207803/ |
| State | New |
| Headers | show |
Comments
On 12/19/2012 11:20 PM, Joseph Salisbury wrote: > Great work, Milan. Your patch fixes the bug, stops the panic and allows > dm-crypt to function properly. Thanks. > > Will you be requesting this in v3.8 ? This should go into 3.7 stable as well, I am talking with Alasdair already how to handle it. Milan
>>>>> "Milan" == Milan Broz <mbroz@redhat.com> writes: Milan> dm-crypt: never use write same Milan> Ciphertext device is not compatible with WRITE SAME, disable it Milan> for all dmcrypt devices. Milan> Signed-off-by: Milan Broz <mbroz@redhat.com> Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
On Wed, Dec 19 2012 at 7:11pm -0500, Martin K. Petersen <martin.petersen@oracle.com> wrote: > >>>>> "Milan" == Milan Broz <mbroz@redhat.com> writes: > > Milan> dm-crypt: never use write same > > Milan> Ciphertext device is not compatible with WRITE SAME, disable it > Milan> for all dmcrypt devices. > > Milan> Signed-off-by: Milan Broz <mbroz@redhat.com> > > Acked-by: Martin K. Petersen <martin.petersen@oracle.com> I've developed more comprehensive WRITE SAME support for DM. It can be used in conjunction with Milan's patch (which enables Milan's patch to go in too and be more easily tagged for v3.7 stable). Anyway, my changes are available in the 'dm-write-same' branch of my github tree: git://github.com/snitm/linux.git See the top 5 commits: https://github.com/snitm/linux/commits/dm-write-same (topmost needs to be folded, I'll do that when posting to dm-devel in reply to this mail)
Patch
--- a/drivers/md/dm-crypt.c +++ b/drivers/md/dm-crypt.c @@ -1844,6 +1844,12 @@ static int crypt_iterate_devices(struct dm_target *ti, return fn(ti, cc->dev, cc->start, ti->len, data); } +static void crypt_io_hints(struct dm_target *ti, + struct queue_limits *limits) +{ + limits->max_write_same_sectors = 0; +} + static struct target_type crypt_target = { .name = "crypt", .version = {1, 11, 0}, @@ -1858,6 +1864,7 @@ static struct target_type crypt_target = { .message = crypt_message, .merge = crypt_merge, .iterate_devices = crypt_iterate_devices, + .io_hints = crypt_io_hints, }; static int __init dm_crypt_init(void)
Does this help? dm-crypt: never use write same Ciphertext device is not compatible with WRITE SAME, disable it for all dmcrypt devices. Signed-off-by: Milan Broz <mbroz@redhat.com>