Commit 8a87a873 authored by Joe Thornber's avatar Joe Thornber Committed by Linus Torvalds

[PATCH] dm: __LOW macro fix no. 2

Another fix for the __LOW macro.

When dm_table and dm_target structures are initialized, the "limits" fields
(struct io_restrictions) are initialized to zero (e.g. in dm_table_add_target()
in dm-table.c). However, zero is not a useable value in these fields. The
request queue will never let an I/O through, regardless of how small it might
be, if max_sectors is set to zero (see generic_make_request in ll_rw_blk.c).
This change to the __LOW() macro sets these fields correctly when they are
first initialized.  [Kevin Corry]
parent 62d3bab5
...@@ -79,7 +79,7 @@ static unsigned int int_log(unsigned long n, unsigned long base) ...@@ -79,7 +79,7 @@ static unsigned int int_log(unsigned long n, unsigned long base)
} }
#define __HIGH(l, r) if (*(l) < (r)) *(l) = (r) #define __HIGH(l, r) if (*(l) < (r)) *(l) = (r)
#define __LOW(l, r) if (*(l) > (r)) *(l) = (r) #define __LOW(l, r) if (*(l) == 0 || *(l) > (r)) *(l) = (r)
/* /*
* Combine two io_restrictions, always taking the lower value. * Combine two io_restrictions, always taking the lower value.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment