Lines Matching refs:page
49 unsigned long page, int create) in bitmap_checkpage() argument
55 if (page >= bitmap->pages) { in bitmap_checkpage()
63 if (bitmap->bp[page].hijacked) /* it's hijacked, don't try to alloc */ in bitmap_checkpage()
66 if (bitmap->bp[page].map) /* page is already allocated, just return */ in bitmap_checkpage()
82 if (!bitmap->bp[page].map) in bitmap_checkpage()
83 bitmap->bp[page].hijacked = 1; in bitmap_checkpage()
84 } else if (bitmap->bp[page].map || in bitmap_checkpage()
85 bitmap->bp[page].hijacked) { in bitmap_checkpage()
93 bitmap->bp[page].map = mappage; in bitmap_checkpage()
102 static void bitmap_checkfree(struct bitmap_counts *bitmap, unsigned long page) in bitmap_checkfree() argument
106 if (bitmap->bp[page].count) /* page is still busy */ in bitmap_checkfree()
111 if (bitmap->bp[page].hijacked) { /* page was hijacked, undo this now */ in bitmap_checkfree()
112 bitmap->bp[page].hijacked = 0; in bitmap_checkfree()
113 bitmap->bp[page].map = NULL; in bitmap_checkfree()
116 ptr = bitmap->bp[page].map; in bitmap_checkfree()
117 bitmap->bp[page].map = NULL; in bitmap_checkfree()
133 struct page *page, in read_sb_page() argument
150 page, READ, true)) { in read_sb_page()
151 page->index = index; in read_sb_page()
189 static int write_sb_page(struct bitmap *bitmap, struct page *page, int wait) in write_sb_page() argument
202 if (page->index == store->file_pages-1) { in write_sb_page()
214 if (rdev->sb_start + offset + (page->index in write_sb_page()
225 + (long)(page->index * (PAGE_SIZE/512)) in write_sb_page()
237 + page->index*(PAGE_SIZE/512) + size/512 in write_sb_page()
246 + page->index * (PAGE_SIZE/512), in write_sb_page()
248 page); in write_sb_page()
263 static void write_page(struct bitmap *bitmap, struct page *page, int wait) in write_page() argument
268 switch (write_sb_page(bitmap, page, wait)) { in write_page()
274 bh = page_buffers(page); in write_page()
304 __clear_page_buffers(struct page *page) in __clear_page_buffers() argument
306 ClearPagePrivate(page); in __clear_page_buffers()
307 set_page_private(page, 0); in __clear_page_buffers()
308 page_cache_release(page); in __clear_page_buffers()
310 static void free_buffers(struct page *page) in free_buffers() argument
314 if (!PagePrivate(page)) in free_buffers()
317 bh = page_buffers(page); in free_buffers()
323 __clear_page_buffers(page); in free_buffers()
324 put_page(page); in free_buffers()
337 struct page *page) in read_page() argument
347 bh = alloc_page_buffers(page, 1<<inode->i_blkbits, 0); in read_page()
352 attach_page_buffers(page, bh); in read_page()
380 page->index = index; in read_page()
536 struct page *sb_page; in bitmap_read_sb()
676 static inline struct page *filemap_get_page(struct bitmap_storage *store, in filemap_get_page()
698 store->filemap = kmalloc(sizeof(struct page *) in bitmap_storage_alloc()
739 struct page **map, *sb_page; in bitmap_file_unmap()
835 struct page *page; in bitmap_file_set_bit() local
839 page = filemap_get_page(&bitmap->storage, chunk); in bitmap_file_set_bit()
840 if (!page) in bitmap_file_set_bit()
845 kaddr = kmap_atomic(page); in bitmap_file_set_bit()
851 pr_debug("set file bit %lu page %lu\n", bit, page->index); in bitmap_file_set_bit()
853 set_page_attr(bitmap, page->index, BITMAP_PAGE_DIRTY); in bitmap_file_set_bit()
859 struct page *page; in bitmap_file_clear_bit() local
863 page = filemap_get_page(&bitmap->storage, chunk); in bitmap_file_clear_bit()
864 if (!page) in bitmap_file_clear_bit()
867 paddr = kmap_atomic(page); in bitmap_file_clear_bit()
873 if (!test_page_attr(bitmap, page->index, BITMAP_PAGE_NEEDWRITE)) { in bitmap_file_clear_bit()
874 set_page_attr(bitmap, page->index, BITMAP_PAGE_PENDING); in bitmap_file_clear_bit()
934 struct page *page = NULL; in bitmap_init_from_disk() local
990 page = store->filemap[index]; in bitmap_init_from_disk()
993 count, page); in bitmap_init_from_disk()
998 page, in bitmap_init_from_disk()
1011 paddr = kmap_atomic(page); in bitmap_init_from_disk()
1015 write_page(bitmap, page, 1); in bitmap_init_from_disk()
1023 paddr = kmap_atomic(page); in bitmap_init_from_disk()
1077 unsigned long page = chunk >> PAGE_COUNTER_SHIFT; in bitmap_count_page() local
1078 bitmap->bp[page].count += inc; in bitmap_count_page()
1079 bitmap_checkfree(bitmap, page); in bitmap_count_page()
1085 unsigned long page = chunk >> PAGE_COUNTER_SHIFT; in bitmap_set_pending() local
1086 struct bitmap_page *bp = &bitmap->bp[page]; in bitmap_set_pending()
1234 unsigned long page = chunk >> PAGE_COUNTER_SHIFT; in bitmap_get_counter() local
1239 err = bitmap_checkpage(bitmap, page, create); in bitmap_get_counter()
1241 if (bitmap->bp[page].hijacked || in bitmap_get_counter()
1242 bitmap->bp[page].map == NULL) in bitmap_get_counter()
1254 if (bitmap->bp[page].hijacked) { /* hijacked pointer */ in bitmap_get_counter()
1259 &bitmap->bp[page].map)[hi]; in bitmap_get_counter()
1262 &(bitmap->bp[page].map[pageoff]); in bitmap_get_counter()
1953 location_show(struct mddev *mddev, char *page) in location_show() argument
1957 len = sprintf(page, "file"); in location_show()
1959 len = sprintf(page, "%+lld", (long long)mddev->bitmap_info.offset); in location_show()
1961 len = sprintf(page, "none"); in location_show()
1962 len += sprintf(page+len, "\n"); in location_show()
2050 space_show(struct mddev *mddev, char *page) in space_show() argument
2052 return sprintf(page, "%lu\n", mddev->bitmap_info.space); in space_show()
2083 timeout_show(struct mddev *mddev, char *page) in timeout_show() argument
2089 len = sprintf(page, "%lu", secs); in timeout_show()
2091 len += sprintf(page+len, ".%03u", jiffies_to_msecs(jifs)); in timeout_show()
2092 len += sprintf(page+len, "\n"); in timeout_show()
2133 backlog_show(struct mddev *mddev, char *page) in backlog_show() argument
2135 return sprintf(page, "%lu\n", mddev->bitmap_info.max_write_behind); in backlog_show()
2155 chunksize_show(struct mddev *mddev, char *page) in chunksize_show() argument
2157 return sprintf(page, "%lu\n", mddev->bitmap_info.chunksize); in chunksize_show()
2181 static ssize_t metadata_show(struct mddev *mddev, char *page) in metadata_show() argument
2183 return sprintf(page, "%s\n", (mddev->bitmap_info.external in metadata_show()
2205 static ssize_t can_clear_show(struct mddev *mddev, char *page) in can_clear_show() argument
2209 len = sprintf(page, "%s\n", (mddev->bitmap->need_sync ? in can_clear_show()
2212 len = sprintf(page, "\n"); in can_clear_show()
2235 behind_writes_used_show(struct mddev *mddev, char *page) in behind_writes_used_show() argument
2238 return sprintf(page, "0\n"); in behind_writes_used_show()
2239 return sprintf(page, "%lu\n", in behind_writes_used_show()