FreeBSD ZFS
The Zettabyte File System
Functions | Variables

vdev_geom.c File Reference

Virtual device vector for GEOM. More...

#include <sys/zfs_context.h>
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/bio.h>
#include <sys/disk.h>
#include <sys/spa.h>
#include <sys/spa_impl.h>
#include <sys/vdev_impl.h>
#include <sys/fs/zfs.h>
#include <sys/zio.h>
#include <geom/geom.h>
#include <geom/geom_int.h>
Include dependency graph for vdev_geom.c:

Go to the source code of this file.

Functions

 DECLARE_GEOM_CLASS (zfs_vdev_class, zfs_vdev)
 SYSCTL_DECL (_vfs_zfs_vdev)
 TUNABLE_INT ("vfs.zfs.vdev.bio_flush_disable",&vdev_geom_bio_flush_disable)
 SYSCTL_INT (_vfs_zfs_vdev, OID_AUTO, bio_flush_disable, CTLFLAG_RW,&vdev_geom_bio_flush_disable, 0,"Disable BIO_FLUSH")
 TUNABLE_INT ("vfs.zfs.vdev.bio_delete_disable",&vdev_geom_bio_delete_disable)
 SYSCTL_INT (_vfs_zfs_vdev, OID_AUTO, bio_delete_disable, CTLFLAG_RW,&vdev_geom_bio_delete_disable, 0,"Disable BIO_DELETE")
static void vdev_geom_orphan (struct g_consumer *cp)
static void vdev_geom_attrchanged (struct g_consumer *cp, const char *attr)
static struct g_consumer * vdev_geom_attach (struct g_provider *pp, vdev_t *vd)
static void vdev_geom_close_locked (vdev_t *vd)
static void nvlist_get_guids (nvlist_t *list, uint64_t *pguid, uint64_t *vguid)
static int vdev_geom_io (struct g_consumer *cp, int cmd, void *data, off_t offset, off_t size)
static int vdev_geom_read_config (struct g_consumer *cp, nvlist_t **config)
static int vdev_geom_check_config (nvlist_t *config, const char *name, uint64_t *best_txg)
static int vdev_geom_attach_taster (struct g_consumer *cp, struct g_provider *pp)
static void vdev_geom_detach_taster (struct g_consumer *cp)
static void vdev_geom_taste_orphan (struct g_consumer *cp)
int vdev_geom_read_pool_label (const char *name, nvlist_t **config)
static void vdev_geom_read_guids (struct g_consumer *cp, uint64_t *pguid, uint64_t *vguid)
static struct g_consumer * vdev_geom_attach_by_guids (vdev_t *vd)
static struct g_consumer * vdev_geom_open_by_guids (vdev_t *vd)
static struct g_consumer * vdev_geom_open_by_path (vdev_t *vd, int check_guid)
static int vdev_geom_open (vdev_t *vd, uint64_t *psize, uint64_t *max_psize, uint64_t *ashift)
static void vdev_geom_close (vdev_t *vd)
static void vdev_geom_io_intr (struct bio *bp)
static int vdev_geom_io_start (zio_t *zio)
static void vdev_geom_io_done (zio_t *zio)
static void vdev_geom_hold (vdev_t *vd)
static void vdev_geom_rele (vdev_t *vd)

Variables

struct g_class zfs_vdev_class
static int vdev_geom_bio_flush_disable = 0
 Don't send BIO_FLUSH.
static int vdev_geom_bio_delete_disable = 0
 Don't send BIO_DELETE.
vdev_ops_t vdev_geom_ops
 Vector table for the vdev_geom module.

Detailed Description

Virtual device vector for GEOM.

Creates a GEOM class to represent vdevs.

Definition in file vdev_geom.c.


Function Documentation

DECLARE_GEOM_CLASS ( zfs_vdev_class  ,
zfs_vdev   
)
static void nvlist_get_guids ( nvlist_t *  list,
uint64_t *  pguid,
uint64_t *  vguid 
) [static]

Definition at line 275 of file vdev_geom.c.

SYSCTL_DECL ( _vfs_zfs_vdev  )
SYSCTL_INT ( _vfs_zfs_vdev  ,
OID_AUTO  ,
bio_flush_disable  ,
CTLFLAG_RW  ,
vdev_geom_bio_flush_disable,
,
"Disable BIO_FLUSH"   
)
SYSCTL_INT ( _vfs_zfs_vdev  ,
OID_AUTO  ,
bio_delete_disable  ,
CTLFLAG_RW  ,
vdev_geom_bio_delete_disable,
,
"Disable BIO_DELETE"   
)
TUNABLE_INT ( "vfs.zfs.vdev.bio_delete_disable"  ,
vdev_geom_bio_delete_disable 
)
TUNABLE_INT ( "vfs.zfs.vdev.bio_flush_disable"  ,
vdev_geom_bio_flush_disable 
)
static struct g_consumer* vdev_geom_attach ( struct g_provider *  pp,
vdev_t vd 
) [static, read]

Definition at line 165 of file vdev_geom.c.

static struct g_consumer* vdev_geom_attach_by_guids ( vdev_t vd) [static, read]

Definition at line 522 of file vdev_geom.c.

static int vdev_geom_attach_taster ( struct g_consumer *  cp,
struct g_provider *  pp 
) [static]

Definition at line 417 of file vdev_geom.c.

static void vdev_geom_attrchanged ( struct g_consumer *  cp,
const char *  attr 
) [static]

Definition at line 112 of file vdev_geom.c.

static int vdev_geom_check_config ( nvlist_t *  config,
const char *  name,
uint64_t *  best_txg 
) [static]

Definition at line 394 of file vdev_geom.c.

static void vdev_geom_close ( vdev_t vd) [static]

Definition at line 763 of file vdev_geom.c.

static void vdev_geom_close_locked ( vdev_t vd) [static]

Definition at line 240 of file vdev_geom.c.

static void vdev_geom_detach_taster ( struct g_consumer *  cp) [static]

Definition at line 433 of file vdev_geom.c.

static void vdev_geom_hold ( vdev_t vd) [static]

Definition at line 910 of file vdev_geom.c.

static int vdev_geom_io ( struct g_consumer *  cp,
int  cmd,
void *  data,
off_t  offset,
off_t  size 
) [static]

Definition at line 297 of file vdev_geom.c.

static void vdev_geom_io_done ( zio_t zio) [static]

Definition at line 905 of file vdev_geom.c.

static void vdev_geom_io_intr ( struct bio *  bp) [static]

Definition at line 771 of file vdev_geom.c.

static int vdev_geom_io_start ( zio_t zio) [static]

Definition at line 824 of file vdev_geom.c.

static int vdev_geom_open ( vdev_t vd,
uint64_t *  psize,
uint64_t *  max_psize,
uint64_t *  ashift 
) [static]

Definition at line 649 of file vdev_geom.c.

static struct g_consumer* vdev_geom_open_by_guids ( vdev_t vd) [static, read]

Definition at line 576 of file vdev_geom.c.

static struct g_consumer* vdev_geom_open_by_path ( vdev_t vd,
int  check_guid 
) [static, read]

Definition at line 608 of file vdev_geom.c.

static void vdev_geom_orphan ( struct g_consumer *  cp) [static]

Definition at line 80 of file vdev_geom.c.

static int vdev_geom_read_config ( struct g_consumer *  cp,
nvlist_t **  config 
) [static]

Definition at line 332 of file vdev_geom.c.

static void vdev_geom_read_guids ( struct g_consumer *  cp,
uint64_t *  pguid,
uint64_t *  vguid 
) [static]

Definition at line 507 of file vdev_geom.c.

int vdev_geom_read_pool_label ( const char *  name,
nvlist_t **  config 
)

Definition at line 448 of file vdev_geom.c.

static void vdev_geom_rele ( vdev_t vd) [static]

Definition at line 915 of file vdev_geom.c.

static void vdev_geom_taste_orphan ( struct g_consumer *  cp) [static]

Definition at line 440 of file vdev_geom.c.


Variable Documentation

Initial value:

Vector table for the vdev_geom module.

This is the only entry point for vdev_geom

Definition at line 923 of file vdev_geom.c.

struct g_class zfs_vdev_class
Initial value:
 {
        .name = "ZFS::VDEV",
        .version = G_VERSION,
}

Definition at line 48 of file vdev_geom.c.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines