|
FreeBSD ZFS
The Zettabyte File System
|
#include <sys/zfs_context.h>#include <sys/dmu_objset.h>#include <sys/dmu_traverse.h>#include <sys/dsl_dataset.h>#include <sys/dsl_dir.h>#include <sys/dsl_pool.h>#include <sys/dnode.h>#include <sys/spa.h>#include <sys/zio.h>#include <sys/dmu_impl.h>#include <sys/sa.h>#include <sys/sa_impl.h>#include <sys/callb.h>
Go to the source code of this file.
Data Structures | |
| struct | prefetch_data |
| struct | traverse_data |
Typedefs | |
| typedef struct prefetch_data | prefetch_data_t |
| typedef struct traverse_data | traverse_data_t |
| typedef enum resume_skip | resume_skip_t |
Enumerations | |
| enum | resume_skip { RESUME_SKIP_ALL, RESUME_SKIP_NONE, RESUME_SKIP_CHILDREN } |
Functions | |
| static int | traverse_dnode (traverse_data_t *td, const dnode_phys_t *dnp, arc_buf_t *buf, uint64_t objset, uint64_t object) |
| static void | prefetch_dnode_metadata (traverse_data_t *td, const dnode_phys_t *, arc_buf_t *buf, uint64_t objset, uint64_t object) |
| static int | traverse_zil_block (zilog_t *zilog, blkptr_t *bp, void *arg, uint64_t claim_txg) |
| static int | traverse_zil_record (zilog_t *zilog, lr_t *lrc, void *arg, uint64_t claim_txg) |
| static void | traverse_zil (traverse_data_t *td, zil_header_t *zh) |
| static resume_skip_t | resume_skip_check (traverse_data_t *td, const dnode_phys_t *dnp, const zbookmark_t *zb) |
| static void | traverse_pause (traverse_data_t *td, const zbookmark_t *zb) |
| static void | traverse_prefetch_metadata (traverse_data_t *td, arc_buf_t *pbuf, const blkptr_t *bp, const zbookmark_t *zb) |
| static int | traverse_visitbp (traverse_data_t *td, const dnode_phys_t *dnp, arc_buf_t *pbuf, const blkptr_t *bp, const zbookmark_t *zb) |
| static int | traverse_prefetcher (spa_t *spa, zilog_t *zilog, const blkptr_t *bp, arc_buf_t *pbuf, const zbookmark_t *zb, const dnode_phys_t *dnp, void *arg) |
| static void | traverse_prefetch_thread (void *arg) |
| static int | traverse_impl (spa_t *spa, dsl_dataset_t *ds, uint64_t objset, blkptr_t *rootbp, uint64_t txg_start, zbookmark_t *resume, int flags, blkptr_cb_t func, void *arg) |
| NB: dataset must not be changing on-disk (eg, is a snapshot or we are in syncing context). | |
| int | traverse_dataset (dsl_dataset_t *ds, uint64_t txg_start, int flags, blkptr_cb_t func, void *arg) |
| NB: dataset must not be changing on-disk (eg, is a snapshot or we are in syncing context). | |
| int | traverse_dataset_destroyed (spa_t *spa, blkptr_t *blkptr, uint64_t txg_start, zbookmark_t *resume, int flags, blkptr_cb_t func, void *arg) |
| int | traverse_pool (spa_t *spa, uint64_t txg_start, int flags, blkptr_cb_t func, void *arg) |
| NB: pool must not be changing on-disk (eg, from zdb or sync context). | |
Variables | |
| int | zfs_pd_blks_max = 100 |
| typedef struct prefetch_data prefetch_data_t |
| typedef enum resume_skip resume_skip_t |
| typedef struct traverse_data traverse_data_t |
| enum resume_skip |
Definition at line 135 of file dmu_traverse.c.
| static void prefetch_dnode_metadata | ( | traverse_data_t * | td, |
| const dnode_phys_t * | dnp, | ||
| arc_buf_t * | buf, | ||
| uint64_t | objset, | ||
| uint64_t | object | ||
| ) | [static] |
Definition at line 389 of file dmu_traverse.c.
| static resume_skip_t resume_skip_check | ( | traverse_data_t * | td, |
| const dnode_phys_t * | dnp, | ||
| const zbookmark_t * | zb | ||
| ) | [static] |
| RESUME_SKIP_ALL | td indicates that we are resuming a traversal and the block indicated by zb does not need to be visited at all. |
| RESUME_SKIP_CHILDREN | We are resuming a post traversal and we reach the resume point. This indicates that this block should be visited but not its children (since they must have been visited in a previous traversal). |
| RESUME_SKIP_NONE | No skipping required. |
Definition at line 153 of file dmu_traverse.c.
| int traverse_dataset | ( | dsl_dataset_t * | ds, |
| uint64_t | txg_start, | ||
| int | flags, | ||
| blkptr_cb_t | func, | ||
| void * | arg | ||
| ) |
NB: dataset must not be changing on-disk (eg, is a snapshot or we are in syncing context).
Definition at line 566 of file dmu_traverse.c.
| int traverse_dataset_destroyed | ( | spa_t * | spa, |
| blkptr_t * | blkptr, | ||
| uint64_t | txg_start, | ||
| zbookmark_t * | resume, | ||
| int | flags, | ||
| blkptr_cb_t | func, | ||
| void * | arg | ||
| ) |
Definition at line 574 of file dmu_traverse.c.
| static int traverse_dnode | ( | traverse_data_t * | td, |
| const dnode_phys_t * | dnp, | ||
| arc_buf_t * | buf, | ||
| uint64_t | objset, | ||
| uint64_t | object | ||
| ) | [static] |
Definition at line 407 of file dmu_traverse.c.
| static int traverse_impl | ( | spa_t * | spa, |
| dsl_dataset_t * | ds, | ||
| uint64_t | objset, | ||
| blkptr_t * | rootbp, | ||
| uint64_t | txg_start, | ||
| zbookmark_t * | resume, | ||
| int | flags, | ||
| blkptr_cb_t | func, | ||
| void * | arg | ||
| ) | [static] |
NB: dataset must not be changing on-disk (eg, is a snapshot or we are in syncing context).
Definition at line 495 of file dmu_traverse.c.
| static void traverse_pause | ( | traverse_data_t * | td, |
| const zbookmark_t * | zb | ||
| ) | [static] |
Definition at line 179 of file dmu_traverse.c.
| int traverse_pool | ( | spa_t * | spa, |
| uint64_t | txg_start, | ||
| int | flags, | ||
| blkptr_cb_t | func, | ||
| void * | arg | ||
| ) |
NB: pool must not be changing on-disk (eg, from zdb or sync context).
Definition at line 586 of file dmu_traverse.c.
| static void traverse_prefetch_metadata | ( | traverse_data_t * | td, |
| arc_buf_t * | pbuf, | ||
| const blkptr_t * | bp, | ||
| const zbookmark_t * | zb | ||
| ) | [static] |
Definition at line 187 of file dmu_traverse.c.
| static void traverse_prefetch_thread | ( | void * | arg | ) | [static] |
Definition at line 470 of file dmu_traverse.c.
| static int traverse_prefetcher | ( | spa_t * | spa, |
| zilog_t * | zilog, | ||
| const blkptr_t * | bp, | ||
| arc_buf_t * | pbuf, | ||
| const zbookmark_t * | zb, | ||
| const dnode_phys_t * | dnp, | ||
| void * | arg | ||
| ) | [static] |
Definition at line 438 of file dmu_traverse.c.
| static int traverse_visitbp | ( | traverse_data_t * | td, |
| const dnode_phys_t * | dnp, | ||
| arc_buf_t * | pbuf, | ||
| const blkptr_t * | bp, | ||
| const zbookmark_t * | zb | ||
| ) | [static] |
Definition at line 212 of file dmu_traverse.c.
| static void traverse_zil | ( | traverse_data_t * | td, |
| zil_header_t * | zh | ||
| ) | [static] |
Definition at line 115 of file dmu_traverse.c.
| static int traverse_zil_block | ( | zilog_t * | zilog, |
| blkptr_t * | bp, | ||
| void * | arg, | ||
| uint64_t | claim_txg | ||
| ) | [static] |
Definition at line 70 of file dmu_traverse.c.
| static int traverse_zil_record | ( | zilog_t * | zilog, |
| lr_t * | lrc, | ||
| void * | arg, | ||
| uint64_t | claim_txg | ||
| ) | [static] |
Definition at line 90 of file dmu_traverse.c.
| int zfs_pd_blks_max = 100 |
Definition at line 40 of file dmu_traverse.c.
1.7.3