All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH linux-4.7-rc7] blk_stack_limits() setting discard_granularity
@ 2016-07-22 14:49 Florian-Ewald Müller
  2016-07-22 19:34 ` Martin K. Petersen
  0 siblings, 1 reply; 13+ messages in thread
From: Florian-Ewald Müller @ 2016-07-22 14:49 UTC (permalink / raw)
  To: linux-block

[-- Attachment #1: Type: text/plain, Size: 653 bytes --]

blk_stack_limits() can set discard_granularity bigger than
max_discard_sectors (in bytes).
This makes blk_bio_discard_split() non-functional and can lead to data
corruption.

-- 

Florian-Ewald Mueller

Architecture Board


ProfitBricks GmbH
Greifswalder Str. 207
D - 10405 Berlin


Tel:       +49 30 577 008 331
Fax:      +49 30 577 008 598
Email:   florian-ewald.mueller@profitbricks.com
URL:     http://www.profitbricks.de

Sitz der Gesellschaft: Berlin.
Registergericht: Amtsgericht Charlottenburg, HRB 125506 B.
Geschäftsführer: Andreas Gauger, Achim Weiss.

Please consider the environment before printing this email.

[-- Attachment #2: blk_stack_limits-discard_granularity.patch --]
[-- Type: text/x-patch, Size: 984 bytes --]

From: Florian-Ewald Mueller <florian-ewald.mueller@profitbricks.com>
Subject: [PATCH] blk_stack_limits()
blk_stack_limits() can set discard_granularity bigger than max_discard_sectors (in bytes).
This makes blk_bio_discard_split() non-functional and can lead to data corruption.

Signed-off-by: Florian-Ewald Mueller <florian-ewald.mueller@profitbricks.com>

--- linux-4.7-rc7/block/blk-settings.c.orig	2016-07-21 19:39:44.831351396 +0200
+++ linux-4.7-rc7/block/blk-settings.c	2016-07-21 19:40:04.582968496 +0200
@@ -626,8 +626,10 @@ int blk_stack_limits(struct queue_limits
 							 b->max_hw_discard_sectors);
 		t->discard_granularity = max(t->discard_granularity,
 					     b->discard_granularity);
+		if (t->discard_granularity > (t->max_discard_sectors << 9))
+			t->discard_granularity = t->max_discard_sectors << 9;
 		t->discard_alignment = lcm_not_zero(t->discard_alignment, alignment) %
-			t->discard_granularity;
+			(t->discard_granularity ? : 1);
 	}
 
 	return ret;

^ permalink raw reply	[flat|nested] 13+ messages in thread
* [PATCH linux-4.7-rc7] blk_stack_limits() setting discard_granularity
@ 2016-07-21 18:13 Florian-Ewald Müller
  0 siblings, 0 replies; 13+ messages in thread
From: Florian-Ewald Müller @ 2016-07-21 18:13 UTC (permalink / raw)
  To: Jens Axboe, linux-block


[-- Attachment #1.1: Type: text/plain, Size: 197 bytes --]

blk_stack_limits() can set discard_granularity bigger than
max_discard_sectors (in bytes).
This makes blk_bio_discard_split() non-functional and can lead to data
corruption.

Florian-Ewald Mueller

[-- Attachment #1.2: Type: text/html, Size: 264 bytes --]

[-- Attachment #2: blk_stack_limits-discard_granularity.patch --]
[-- Type: text/x-patch, Size: 994 bytes --]

From: Florian-Ewald Mueller <florian-ewald.mueller@profitbricks.com>
Subject: [PATCH] blk_stack_limits()
blk_stack_limits() can set discard_granularity bigger than max_discard_sectors (in bytes).
This makes blk_bio_discard_split() non-functional and can lead to data corruption.

Signed-off-by: Florian-Ewald Mueller <florian-ewald.mueller@profitbricks.com>

--- linux-4.7-rc7/block/blk-settings.c.orig	2016-07-21 19:39:44.831351396 +0200
+++ linux-4.7-rc7/block/blk-settings.c	2016-07-21 19:40:04.582968496 +0200
@@ -626,8 +626,10 @@ int blk_stack_limits(struct queue_limits
 							 b->max_hw_discard_sectors);
 		t->discard_granularity = max(t->discard_granularity,
 					     b->discard_granularity);
+		if (unlikely(t->discard_granularity > (t->max_discard_sectors << 9)))
+			t->discard_granularity = t->max_discard_sectors << 9;
 		t->discard_alignment = lcm_not_zero(t->discard_alignment, alignment) %
-			t->discard_granularity;
+			(t->discard_granularity ? : 1);
 	}
 
 	return ret;

^ permalink raw reply	[flat|nested] 13+ messages in thread
* [PATCH linux-4.7-rc7] blk_stack_limits() setting discard_granularity
@ 2016-07-21 18:09 Florian-Ewald Müller
  2016-07-21 18:56 ` Jens Axboe
  0 siblings, 1 reply; 13+ messages in thread
From: Florian-Ewald Müller @ 2016-07-21 18:09 UTC (permalink / raw)
  To: Jens Axboe, linux-block


[-- Attachment #1.1: Type: text/plain, Size: 725 bytes --]

blk_stack_limits() can set discard_granularity bigger than
max_discard_sectors (in bytes).
This makes blk_bio_discard_split() non-functional and can lead to data
corruption.

-- 

Florian-Ewald Mueller

Architecture Board


*ProfitBricks GmbH*
Greifswalder Str. 207
D - 10405 Berlin


Tel:       +49 30 577 008 331
Fax:      +49 30 577 008 598
Email:   florian-ewald.mueller@profitbricks.com
<firstname.lastname@profitbricks.com>
URL:     http://www.profitbricks.de <https://www.profitbricks.de/>

Sitz der Gesellschaft: Berlin.
Registergericht: Amtsgericht Charlottenburg, HRB 125506 B.
Geschäftsführer: Andreas Gauger, Achim Weiss.

Please consider the environment before printing this email.

[-- Attachment #1.2: Type: text/html, Size: 2225 bytes --]

[-- Attachment #2: blk_stack_limits-discard_granularity.patch --]
[-- Type: text/x-patch, Size: 994 bytes --]

From: Florian-Ewald Mueller <florian-ewald.mueller@profitbricks.com>
Subject: [PATCH] blk_stack_limits()
blk_stack_limits() can set discard_granularity bigger than max_discard_sectors (in bytes).
This makes blk_bio_discard_split() non-functional and can lead to data corruption.

Signed-off-by: Florian-Ewald Mueller <florian-ewald.mueller@profitbricks.com>

--- linux-4.7-rc7/block/blk-settings.c.orig	2016-07-21 19:39:44.831351396 +0200
+++ linux-4.7-rc7/block/blk-settings.c	2016-07-21 19:40:04.582968496 +0200
@@ -626,8 +626,10 @@ int blk_stack_limits(struct queue_limits
 							 b->max_hw_discard_sectors);
 		t->discard_granularity = max(t->discard_granularity,
 					     b->discard_granularity);
+		if (unlikely(t->discard_granularity > (t->max_discard_sectors << 9)))
+			t->discard_granularity = t->max_discard_sectors << 9;
 		t->discard_alignment = lcm_not_zero(t->discard_alignment, alignment) %
-			t->discard_granularity;
+			(t->discard_granularity ? : 1);
 	}
 
 	return ret;

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-08-02 11:33 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-22 14:49 [PATCH linux-4.7-rc7] blk_stack_limits() setting discard_granularity Florian-Ewald Müller
2016-07-22 19:34 ` Martin K. Petersen
2016-07-23 11:19   ` Florian-Ewald Müller
2016-07-27  1:51     ` Martin K. Petersen
2016-07-27  8:13       ` Florian-Ewald Müller
2016-07-29  1:39         ` Martin K. Petersen
2016-07-29  7:59           ` Florian-Ewald Müller
2016-08-02  2:08             ` Martin K. Petersen
2016-08-02 11:31               ` Florian-Ewald Müller
  -- strict thread matches above, loose matches on Subject: below --
2016-07-21 18:13 Florian-Ewald Müller
2016-07-21 18:09 Florian-Ewald Müller
2016-07-21 18:56 ` Jens Axboe
2016-07-21 18:59   ` Florian-Ewald Müller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.