FreeBSD ZFS
The Zettabyte File System
|
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>
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. |
Virtual device vector for GEOM.
Creates a GEOM class to represent vdevs.
Definition in file vdev_geom.c.
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, | ||
0 | , | ||
"Disable BIO_FLUSH" | |||
) |
SYSCTL_INT | ( | _vfs_zfs_vdev | , |
OID_AUTO | , | ||
bio_delete_disable | , | ||
CTLFLAG_RW | , | ||
& | vdev_geom_bio_delete_disable, | ||
0 | , | ||
"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.
{ vdev_geom_open, vdev_geom_close, vdev_default_asize, vdev_geom_io_start, vdev_geom_io_done, NULL, vdev_geom_hold, vdev_geom_rele, VDEV_TYPE_DISK, B_TRUE }
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 |
{
.name = "ZFS::VDEV",
.version = G_VERSION,
}
Definition at line 48 of file vdev_geom.c.