Linux Kernel
3.7.1
|
#include <linux/bitops.h>
#include <linux/vmalloc.h>
#include <linux/string.h>
#include <linux/drbd.h>
#include <linux/slab.h>
#include <asm/kmap_types.h>
#include "drbd_int.h"
Go to the source code of this file.
Data Structures | |
struct | drbd_bitmap |
struct | bm_aio_ctx |
Macros | |
#define | bm_print_lock_info(m) __bm_print_lock_info(m, __func__) |
#define | BM_PAGE_IDX_MASK ((1UL<<24)-1) |
#define | BM_PAGE_IO_LOCK 31 |
#define | BM_PAGE_IO_ERROR 30 |
#define | BM_PAGE_NEED_WRITEOUT 29 |
#define | BM_PAGE_LAZY_WRITEOUT 28 |
#define | S2W(s) ((s)<<(BM_EXT_SHIFT-BM_BLOCK_SHIFT-LN2_BPL)) |
#define | MLPP(X) ((X) & ((PAGE_SIZE/sizeof(long))-1)) |
#define | LWPP (PAGE_SIZE/sizeof(long)) |
#define | BITS_PER_PAGE (1UL << (PAGE_SHIFT + 3)) |
#define | BITS_PER_PAGE_MASK (BITS_PER_PAGE - 1) |
#define | BITS_PER_LONG_MASK (BITS_PER_LONG - 1) |
#define | BM_AIO_COPY_PAGES 1 |
#define | BM_WRITE_ALL_PAGES 2 |
#define BITS_PER_LONG_MASK (BITS_PER_LONG - 1) |
Definition at line 464 of file drbd_bitmap.c.
#define BITS_PER_PAGE (1UL << (PAGE_SHIFT + 3)) |
Definition at line 462 of file drbd_bitmap.c.
#define BITS_PER_PAGE_MASK (BITS_PER_PAGE - 1) |
Definition at line 463 of file drbd_bitmap.c.
#define BM_AIO_COPY_PAGES 1 |
Definition at line 891 of file drbd_bitmap.c.
#define BM_PAGE_IDX_MASK ((1UL<<24)-1) |
Definition at line 188 of file drbd_bitmap.c.
#define BM_PAGE_IO_ERROR 30 |
Definition at line 192 of file drbd_bitmap.c.
#define BM_PAGE_IO_LOCK 31 |
Definition at line 190 of file drbd_bitmap.c.
#define BM_PAGE_LAZY_WRITEOUT 28 |
Definition at line 198 of file drbd_bitmap.c.
#define BM_PAGE_NEED_WRITEOUT 29 |
Definition at line 195 of file drbd_bitmap.c.
Definition at line 115 of file drbd_bitmap.c.
#define BM_WRITE_ALL_PAGES 2 |
Definition at line 892 of file drbd_bitmap.c.
Definition at line 324 of file drbd_bitmap.c.
Definition at line 321 of file drbd_bitmap.c.
#define S2W | ( | s | ) | ((s)<<(BM_EXT_SHIFT-BM_BLOCK_SHIFT-LN2_BPL)) |
Definition at line 314 of file drbd_bitmap.c.
Definition at line 1320 of file drbd_bitmap.c.
Definition at line 1326 of file drbd_bitmap.c.
Definition at line 1440 of file drbd_bitmap.c.
Definition at line 729 of file drbd_bitmap.c.
Definition at line 1636 of file drbd_bitmap.c.
Definition at line 765 of file drbd_bitmap.c.
Definition at line 440 of file drbd_bitmap.c.
Definition at line 448 of file drbd_bitmap.c.
Definition at line 874 of file drbd_bitmap.c.
Definition at line 1414 of file drbd_bitmap.c.
Definition at line 1549 of file drbd_bitmap.c.
Definition at line 1603 of file drbd_bitmap.c.
Definition at line 1305 of file drbd_bitmap.c.
void drbd_bm_get_lel | ( | struct drbd_conf * | mdev, |
size_t | offset, | ||
size_t | number, | ||
unsigned long * | buffer | ||
) |
Definition at line 825 of file drbd_bitmap.c.
Definition at line 424 of file drbd_bitmap.c.
Definition at line 131 of file drbd_bitmap.c.
void drbd_bm_merge_lel | ( | struct drbd_conf * | mdev, |
size_t | offset, | ||
size_t | number, | ||
unsigned long * | buffer | ||
) |
Definition at line 778 of file drbd_bitmap.c.
drbd_bm_read() - Read the whole bitmap from its on disk location. : DRBD device.
Definition at line 1129 of file drbd_bitmap.c.
Definition at line 604 of file drbd_bitmap.c.
Definition at line 860 of file drbd_bitmap.c.
Definition at line 1408 of file drbd_bitmap.c.
Definition at line 1520 of file drbd_bitmap.c.
Definition at line 745 of file drbd_bitmap.c.
Definition at line 162 of file drbd_bitmap.c.
Definition at line 756 of file drbd_bitmap.c.
drbd_bm_write() - Write the whole bitmap to its on disk location. : DRBD device.
Will only write pages that have changed since last IO.
Definition at line 1140 of file drbd_bitmap.c.
drbd_bm_write_all() - Write the whole bitmap to its on disk location. : DRBD device.
Will write all pages.
Definition at line 1151 of file drbd_bitmap.c.
drbd_bm_write_copy_pages() - Write the whole bitmap to its on disk location. : DRBD device.
Will only write pages that have changed since last IO. In contrast to drbd_bm_write(), this will copy the bitmap pages to temporary writeout pages. It is intended to trigger a full write-out while still allowing the bitmap to change, for example if a resync or online verify is aborted due to a failed peer disk, while local IO continues, or pending resync acks are still being processed.
Definition at line 1177 of file drbd_bitmap.c.
drbd_bm_lazy_write_out() - Write bitmap pages 0 to -1, if they have changed. : DRBD device. : 0: write all changed pages; +ve: page index to stop scanning for changed pages
Definition at line 1161 of file drbd_bitmap.c.
drbd_bm_write_page: Writes a PAGE_SIZE aligned piece of bitmap : DRBD device. : bitmap page index
We don't want to special case on logical_block_size of the backend device, so we submit PAGE_SIZE aligned pieces. Note that on "most" systems, PAGE_SIZE is 4k.
In case this becomes an issue on systems with larger PAGE_SIZE, we may want to change this again to write 4k aligned 4k pieces.
Definition at line 1195 of file drbd_bitmap.c.