bio: use offset_in_page macro
authorGeliang Tang <geliangtang@163.com>
Sat, 21 Nov 2015 09:27:31 +0000 (17:27 +0800)
committerJens Axboe <axboe@fb.com>
Tue, 24 Nov 2015 22:24:25 +0000 (15:24 -0700)
Use offset_in_page macro instead of (addr & ~PAGE_MASK).

Signed-off-by: Geliang Tang <geliangtang@163.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/bio.c

index 4f184d938942dcbbbbedbac3b330f6e4bb39a4a9..dbabd48b1934739bba125827e2019414cf34adee 100644 (file)
@@ -1125,7 +1125,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
        int i, ret;
        int nr_pages = 0;
        unsigned int len = iter->count;
-       unsigned int offset = map_data ? map_data->offset & ~PAGE_MASK : 0;
+       unsigned int offset = map_data ? offset_in_page(map_data->offset) : 0;
 
        for (i = 0; i < iter->nr_segs; i++) {
                unsigned long uaddr;
@@ -1304,7 +1304,7 @@ struct bio *bio_map_user_iov(struct request_queue *q,
                        goto out_unmap;
                }
 
-               offset = uaddr & ~PAGE_MASK;
+               offset = offset_in_page(uaddr);
                for (j = cur_page; j < page_limit; j++) {
                        unsigned int bytes = PAGE_SIZE - offset;