From: Julia Lawall <julia@xxxxxxx> The kernel.h macro DIV_ROUND_UP performs the computation (((n) + (d) - 1) / (d)) but is perhaps more readable. An extract of the semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @haskernel@ @@ #include <linux/kernel.h> @depends on haskernel@ expression n,d; @@ ( - (n + d - 1) / d + DIV_ROUND_UP(n,d) | - (n + (d - 1)) / d + DIV_ROUND_UP(n,d) ) @depends on haskernel@ expression n,d; @@ - DIV_ROUND_UP((n),d) + DIV_ROUND_UP(n,d) @depends on haskernel@ expression n,d; @@ - DIV_ROUND_UP(n,(d)) + DIV_ROUND_UP(n,d) // </smpl> Signed-off-by: Julia Lawall <julia@xxxxxxx> --- diff -u -p a/fs/direct-io.c b/fs/direct-io.c --- a/fs/direct-io.c 2008-02-08 08:58:17.000000000 +0100 +++ b/fs/direct-io.c 2008-02-13 20:58:53.000000000 +0100 @@ -976,7 +976,7 @@ direct_io_worker(int rw, struct kiocb *i for (seg = 0; seg < nr_segs; seg++) { user_addr = (unsigned long)iov[seg].iov_base; dio->pages_in_io += - ((user_addr+iov[seg].iov_len +PAGE_SIZE-1)/PAGE_SIZE + (DIV_ROUND_UP(user_addr + iov[seg].iov_len, PAGE_SIZE) - user_addr/PAGE_SIZE); } @@ -998,7 +998,7 @@ direct_io_worker(int rw, struct kiocb *i dio->total_pages++; bytes -= PAGE_SIZE - (user_addr & (PAGE_SIZE - 1)); } - dio->total_pages += (bytes + PAGE_SIZE - 1) / PAGE_SIZE; + dio->total_pages += DIV_ROUND_UP(bytes, PAGE_SIZE); dio->curr_user_address = user_addr; ret = do_direct_IO(dio); - To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html