Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
dm-bio-prison.c File Reference
#include "dm.h"
#include "dm-bio-prison.h"
#include <linux/spinlock.h>
#include <linux/mempool.h>
#include <linux/module.h>
#include <linux/slab.h>

Go to the source code of this file.

Data Structures

struct  dm_bio_prison_cell
 
struct  dm_bio_prison
 
struct  dm_deferred_entry
 
struct  dm_deferred_set
 

Macros

#define DEFERRED_SET_SIZE   64
 

Functions

struct dm_bio_prisondm_bio_prison_create (unsigned nr_cells)
 
 EXPORT_SYMBOL_GPL (dm_bio_prison_create)
 
void dm_bio_prison_destroy (struct dm_bio_prison *prison)
 
 EXPORT_SYMBOL_GPL (dm_bio_prison_destroy)
 
int dm_bio_detain (struct dm_bio_prison *prison, struct dm_cell_key *key, struct bio *inmate, struct dm_bio_prison_cell **ref)
 
 EXPORT_SYMBOL_GPL (dm_bio_detain)
 
void dm_cell_release (struct dm_bio_prison_cell *cell, struct bio_list *bios)
 
 EXPORT_SYMBOL_GPL (dm_cell_release)
 
void dm_cell_release_singleton (struct dm_bio_prison_cell *cell, struct bio *bio)
 
 EXPORT_SYMBOL_GPL (dm_cell_release_singleton)
 
void dm_cell_release_no_holder (struct dm_bio_prison_cell *cell, struct bio_list *inmates)
 
 EXPORT_SYMBOL_GPL (dm_cell_release_no_holder)
 
void dm_cell_error (struct dm_bio_prison_cell *cell)
 
 EXPORT_SYMBOL_GPL (dm_cell_error)
 
struct dm_deferred_setdm_deferred_set_create (void)
 
 EXPORT_SYMBOL_GPL (dm_deferred_set_create)
 
void dm_deferred_set_destroy (struct dm_deferred_set *ds)
 
 EXPORT_SYMBOL_GPL (dm_deferred_set_destroy)
 
struct dm_deferred_entrydm_deferred_entry_inc (struct dm_deferred_set *ds)
 
 EXPORT_SYMBOL_GPL (dm_deferred_entry_inc)
 
void dm_deferred_entry_dec (struct dm_deferred_entry *entry, struct list_head *head)
 
 EXPORT_SYMBOL_GPL (dm_deferred_entry_dec)
 
int dm_deferred_set_add_work (struct dm_deferred_set *ds, struct list_head *work)
 
 EXPORT_SYMBOL_GPL (dm_deferred_set_add_work)
 
 module_init (dm_bio_prison_init)
 
 module_exit (dm_bio_prison_exit)
 
 MODULE_DESCRIPTION (DM_NAME" bio prison")
 
 MODULE_AUTHOR ("Joe Thornber <[email protected]>")
 
 MODULE_LICENSE ("GPL")
 

Macro Definition Documentation

#define DEFERRED_SET_SIZE   64

Definition at line 279 of file dm-bio-prison.c.

Function Documentation

int dm_bio_detain ( struct dm_bio_prison prison,
struct dm_cell_key key,
struct bio *  inmate,
struct dm_bio_prison_cell **  ref 
)

Definition at line 124 of file dm-bio-prison.c.

struct dm_bio_prison* dm_bio_prison_create ( unsigned  nr_cells)
read

Definition at line 55 of file dm-bio-prison.c.

void dm_bio_prison_destroy ( struct dm_bio_prison prison)

Definition at line 83 of file dm-bio-prison.c.

void dm_cell_error ( struct dm_bio_prison_cell cell)

Definition at line 259 of file dm-bio-prison.c.

void dm_cell_release ( struct dm_bio_prison_cell cell,
struct bio_list bios 
)

Definition at line 199 of file dm-bio-prison.c.

void dm_cell_release_no_holder ( struct dm_bio_prison_cell cell,
struct bio_list inmates 
)

Definition at line 248 of file dm-bio-prison.c.

void dm_cell_release_singleton ( struct dm_bio_prison_cell cell,
struct bio *  bio 
)

Definition at line 224 of file dm-bio-prison.c.

void dm_deferred_entry_dec ( struct dm_deferred_entry entry,
struct list_head head 
)

Definition at line 353 of file dm-bio-prison.c.

struct dm_deferred_entry* dm_deferred_entry_inc ( struct dm_deferred_set ds)
read

Definition at line 322 of file dm-bio-prison.c.

int dm_deferred_set_add_work ( struct dm_deferred_set ds,
struct list_head work 
)

Definition at line 368 of file dm-bio-prison.c.

struct dm_deferred_set* dm_deferred_set_create ( void  )
read

Definition at line 294 of file dm-bio-prison.c.

void dm_deferred_set_destroy ( struct dm_deferred_set ds)

Definition at line 316 of file dm-bio-prison.c.

EXPORT_SYMBOL_GPL ( dm_bio_prison_create  )
EXPORT_SYMBOL_GPL ( dm_bio_prison_destroy  )
EXPORT_SYMBOL_GPL ( dm_bio_detain  )
EXPORT_SYMBOL_GPL ( dm_cell_release  )
EXPORT_SYMBOL_GPL ( dm_cell_release_singleton  )
EXPORT_SYMBOL_GPL ( dm_cell_release_no_holder  )
EXPORT_SYMBOL_GPL ( dm_cell_error  )
EXPORT_SYMBOL_GPL ( dm_deferred_set_create  )
EXPORT_SYMBOL_GPL ( dm_deferred_set_destroy  )
EXPORT_SYMBOL_GPL ( dm_deferred_entry_inc  )
EXPORT_SYMBOL_GPL ( dm_deferred_entry_dec  )
EXPORT_SYMBOL_GPL ( dm_deferred_set_add_work  )
MODULE_AUTHOR ( "Joe Thornber <[email protected]>"  )
MODULE_DESCRIPTION ( DM_NAME" bio prison"  )
module_exit ( dm_bio_prison_exit  )
module_init ( dm_bio_prison_init  )
MODULE_LICENSE ( "GPL"  )