Thread (18 messages) 18 messages, 2 authors, 2020-05-15

Re: [PATCH v2 07/10] block: use sectors_to_npage() and PAGE_SECTORS to clean up code

From: Leizhen (ThunderTown) <hidden>
Date: 2020-05-15 06:52:38
Also in: dm-devel, linux-block, linux-mm, lkml


On 2020/5/15 12:19, Matthew Wilcox wrote:
On Thu, May 07, 2020 at 03:50:57PM +0800, Zhen Lei wrote:
quoted
+++ b/block/blk-settings.c
@@ -150,7 +150,7 @@ void blk_queue_max_hw_sectors(struct request_queue *q, unsigned int max_hw_secto
 	unsigned int max_sectors;
 
 	if ((max_hw_sectors << 9) < PAGE_SIZE) {
-		max_hw_sectors = 1 << (PAGE_SHIFT - 9);
+		max_hw_sectors = PAGE_SECTORS;
Surely this should be:

	if (max_hw_sectors < PAGE_SECTORS) {
		max_hw_sectors = PAGE_SECTORS;

... no?
I've noticed this place before. "(max_hw_sectors << 9) < PAGE_SIZE" can also make sure
that max_hw_sectors is not too large, that means (max_hw_sectors << 9) may overflow.
quoted
-	page = read_mapping_page(mapping,
-			(pgoff_t)(n >> (PAGE_SHIFT - 9)), NULL);
+	page = read_mapping_page(mapping, (pgoff_t)sectors_to_npage(n), NULL);
... again, get the type right, and you won't need the cast.
OK, I'll consider it.

.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help