Hallo, dies ist ein Test.
PWD: /www/data-lst1/unixsoft/unixsoft/kaempfer/.public_html
Running in File Mode
Relative path: ././../../../../../../../usr/include/libshadowfs_impl.h
Real path: /usr/include/libshadowfs_impl.h
Zurück
/* * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. */ #ifndef _LIBSHADOWFS_IMPL_H #define _LIBSHADOWFS_IMPL_H #include <sys/types.h> #include <sys/list.h> #include <libzfs.h> #ifdef __cplusplus extern "C" { #endif /* Shadow conspiracy SMF parameters */ #define CONFIG_PARAMS "config_params" #define WORKER_THREADS "shadow_threads" #define WORK_TIMEOUT "shadow_worker_timeout" #define MOUNT_TIMEOUT "shadow_mount_timeout" #define MOUNT_RETRY "shadow_mount_retry" #define MOUNT_MAX_RETRY "shadow_mount_max_retry" #define MOUNT_FREQ "shadow_mount_freq" #define FAIL_THROTTLE "shadow_throttle" #define DEBUG_FILE "shadow_debug" #define MIGRATE_TIMEOUT "shadow_migrate_timeout" #define CANARY_TIMEOUT "shadow_sanity_timeout" #define MIGRATE_RETRY_WAIT "shadow_retry_wait" #define FID_LOAD_COUNT "shadow_fid_load_count" #define MT_FILE_SIZE "shadow_mt_file_size" #define MT_FILE_ENTRIES "shadow_mt_file_entries" #define STAT_THRESHOLD_BYTES "shadow_stat_threshold_bytes" #define MTDIR_WORKER_THREADS "shadow_mtdir_threads" #define SHADOW_FM_CLASS "shadowmigration" #define SHADOW_FM_SUBCLASS "done" #define SHADOW_FM_COMPLETION_INFO "completion-details" #define SHADOW_FM_DATASET "dataset" #define SHADOW_FM_SOURCE "source" /* Default/Min/Max values for shadow conspiracy SMF parameters */ #define DEFAULT_NWORKERS 8 #define MIN_NWORKERS 1 #define MAX_NWORKERS 128 #define DEFAULT_THROTTLE (500ULL * NANOSEC / MILLISEC) #define MIN_THROTTLE (100ULL * NANOSEC / MILLISEC) #define MAX_THROTTLE (2ULL * NANOSEC) #define DEFAULT_MIGRATE_TIMEOUT (3ULL * 60ULL * NANOSEC) #define MIN_MIGRATE_TIMEOUT (30ULL * NANOSEC) #define MAX_MIGRATE_TIMEOUT (5ULL * 60ULL * NANOSEC) #define DEFAULT_MOUNT_TIMEOUT (25ULL * NANOSEC) #define MIN_MOUNT_TIMEOUT DEFAULT_MOUNT_TIMEOUT #define MAX_MOUNT_TIMEOUT (2ULL * 60ULL * NANOSEC) #define DEFAULT_MOUNT_RETRY (5ULL * 60ULL * NANOSEC) #define MIN_MOUNT_RETRY (1ULL * 60ULL * NANOSEC) #define MAX_MOUNT_RETRY (UINT64_MAX) #define DEFAULT_MOUNT_MAX_RETRY (60ULL * 60ULL * NANOSEC) #define MIN_MOUNT_MAX_RETRY (5ULL * 60ULL * NANOSEC) #define MAX_MOUNT_MAX_RETRY (UINT64_MAX) #define DEFAULT_MOUNT_FREQ (1ULL * 60ULL * NANOSEC) #define MIN_MOUNT_FREQ (1ULL * 60ULL * NANOSEC) #define MAX_MOUNT_FREQ (5ULL * 60ULL * NANOSEC) #define DEFAULT_CANARY_TIMEOUT (30ULL * NANOSEC) #define MIN_CANARY_TIMEOUT (15ULL * NANOSEC) #define MAX_CANARY_TIMEOUT (5ULL * 60ULL * NANOSEC) #define DEFAULT_RETRY_WAIT (20ULL * NANOSEC) #define DEFAULT_STAT_THRESHOLD_BYTES (50ULL * 1024 * 1024) #define MIN_STAT_THRESHOLD_BYTES (1ULL * 1024 * 1024) #define MAX_STAT_THRESHOLD_BYTES (10ULL * 1024 * 1024 * 1024) #define MIN_RETRY_WAIT DEFAULT_RETRY_WAIT #define MAX_RETRY_WAIT (5ULL * 60ULL * NANOSEC) #define DEFAULT_FID_LOAD_COUNT 10000 #define MIN_FID_LOAD_COUNT 1 #define MAX_FID_LOAD_COUNT 100000 #define DEFAULT_MT_FILE_SIZE (256ULL * 1024 * 1024) #define MIN_MT_FILE_SIZE (128ULL * 1024 * 1024) #define MAX_MT_FILE_SIZE (UINT64_MAX) #define DEFAULT_MT_FILE_ENTRIES 2 #define MIN_MT_FILE_ENTRIES 1 #define MAX_MT_FILE_ENTRIES MAX_NWORKERS #define DEFAULT_MTDIR_NWORKERS 6 #define MIN_MTDIR_NWORKERS 0 #define MAX_MTDIR_NWORKERS 60 #ifndef ASSERT #define ASSERT(x) assert((x)); #endif typedef struct shadow_handle shadow_handle_t; typedef enum { ESHADOW_NONE, /* no error */ ESHADOW_NOMEM, /* out of memory */ ESHADOW_NOMOUNT, /* no such mountpoint */ ESHADOW_NOSHADOW, /* not a shadow mountpoint */ ESHADOW_CORRUPT, /* internal data inconsistency */ ESHADOW_ZFS_NOENT, /* failed to open ZFS dataset */ ESHADOW_ZFS_IO, /* I/O error */ ESHADOW_ZFS_IMPL, /* internal ZFS error */ ESHADOW_MNT_CLEAR, /* failed to clear mount option */ ESHADOW_MIGRATE_BUSY, /* migration currently busy */ ESHADOW_LOADING, /* loading pending logs is in progress */ ESHADOW_MIGRATE_DONE, /* finished migrating all data */ ESHADOW_MIGRATE_INTR, /* a file migration was interrupted */ ESHADOW_STANDBY, /* filesystem is in standby mode */ ESHADOW_TIMEOUT, /* source slow to respond to stat() */ ESHADOW_NOSVC, /* migration daemon not responding */ ESHADOW_PSTAT, /* persistent stat error */ ESHADOW_MTDIR, /* multi-threaded dir. migration config error */ ESHADOW_UNKNOWN /* unknown error */ } shadow_errno_t; typedef struct { uint64_t ss_processed; /* plain file contents transferred */ uint64_t ss_estimated; /* estimated remaining contents */ time_t ss_start; /* start of migration */ uint32_t ss_errors; /* number of unique errors seen */ time_t ss_errors_ts; /* last update time of error count */ } shadow_status_t; typedef struct shadow_progress { uint64_t sp_processed; /* total file data processed */ uint64_t sp_dir_seen; /* number of directories seen */ uint64_t sp_interior; /* number of interior done */ uint64_t sp_leaf; /* number of leaves done */ uint64_t sp_leaf_depth; /* total depth of all leaves */ uint64_t sp_dir_queue; /* number of dirs in queue */ uint64_t sp_dir_depth; /* depth of all dirs in queue */ time_t sp_start; /* start time */ uint64_t sp_srcsize; /* total shadow source size */ } shadow_progress_t; extern shadow_handle_t *shadow_open(const char *); extern const char *shadow_dataset(shadow_handle_t *); extern void shadow_close(shadow_handle_t *); extern void shadow_drain(shadow_handle_t *); extern int shadow_cancel(shadow_handle_t *); extern int shadow_specified_cancel(char *, char *, char *, char *); extern int shadow_set_errno(shadow_errno_t); extern shadow_errno_t shadow_errno(void); extern const char *shadow_errmsg(void); extern nvlist_t *shadow_get_errors(shadow_handle_t *, size_t); extern void shadow_free_errors(nvlist_t **, size_t); extern int shadow_pending_loads(shadow_handle_t *); extern int shadow_failed_pending_loads(shadow_handle_t *); extern int shadow_migrate_one(shadow_handle_t *); extern boolean_t shadow_migrate_only_errors(shadow_handle_t *); extern int shadow_migrate_finalize(shadow_handle_t *); extern void shadow_get_status(shadow_handle_t *, shadow_status_t *); extern int shadow_get_saved_stats(const char *, shadow_progress_t *); extern int shadow_update_saved_stats(shadow_handle_t *); extern int shadow_mtdir_setup(shadow_handle_t *); extern void shadow_mtdir_teardown(shadow_handle_t *); #ifdef __cplusplus } #endif #endif /* _LIBSHADOWFS_IMPL_H */