.lease_time = {10, 0}, /* Duration of lease at FS in seconds */ .acl_support = FSAL_ACLSUPPORT_ALLOW, /* ACL support */ .cansettime = true, .homogenous = true, /* homogenous */ .supported_attrs = ZFS_SUPPORTED_ATTRIBUTES, /* supported attributes */ .link_supports_permission_checks = true, }; static struct config_item zfs_params[] = { CONF_ITEM_BOOL("link_support", true, zfs_fsal_module, fs_info.link_support), CONF_ITEM_BOOL("symlink_support", true, zfs_fsal_module, fs_info.symlink_support), CONF_ITEM_BOOL("cansettime", true, zfs_fsal_module, fs_info.cansettime), CONF_ITEM_UI32("maxread", 512, FSAL_MAXIOSIZE, FSAL_MAXIOSIZE, zfs_fsal_module, fs_info.maxread), CONF_ITEM_UI32("maxwrite", 512, FSAL_MAXIOSIZE, FSAL_MAXIOSIZE, zfs_fsal_module, fs_info.maxwrite), CONF_ITEM_MODE("umask", 0, zfs_fsal_module, fs_info.umask), CONF_ITEM_BOOL("auth_xdev_export", false, zfs_fsal_module, fs_info.auth_exportpath_xdev), CONF_ITEM_MODE("xattr_access_rights", 0400, zfs_fsal_module, fs_info.xattr_access_rights), CONFIG_EOL }; struct config_block zfs_param = { .dbus_interface_name = "org.ganesha.nfsd.config.fsal.zfs", .blk_desc.name = "ZFS", .blk_desc.type = CONFIG_BLOCK,
CONFIG_LIST_TOK("9p", CORE_OPTION_9P), CONFIG_LIST_EOL }; static struct config_item core_params[] = { CONF_ITEM_UI16("NFS_Port", 0, UINT16_MAX, NFS_PORT, nfs_core_param, port[P_NFS]), CONF_ITEM_UI16("MNT_Port", 0, UINT16_MAX, 0, nfs_core_param, port[P_MNT]), CONF_ITEM_UI16("NLM_Port", 0, UINT16_MAX, 0, nfs_core_param, port[P_NLM]), CONF_ITEM_UI16("Rquota_Port", 0, UINT16_MAX, RQUOTA_PORT, nfs_core_param, port[P_RQUOTA]), CONF_ITEM_IP_ADDR("Bind_Addr", "0.0.0.0", nfs_core_param, bind_addr), CONF_ITEM_UI32("NFS_Program", 1, INT32_MAX, NFS_PROGRAM, nfs_core_param, program[P_NFS]), CONF_ITEM_UI32("MNT_Program", 1, INT32_MAX, MOUNTPROG, nfs_core_param, program[P_MNT]), CONF_ITEM_UI32("NLM_Program", 1, INT32_MAX, NLMPROG, nfs_core_param, program[P_NLM]), CONF_ITEM_UI32("Rquota_Program", 1, INT32_MAX, RQUOTAPROG, nfs_core_param, program[P_RQUOTA]), CONF_ITEM_UI32("Nb_Worker", 1, 1024*128, NB_WORKER_THREAD_DEFAULT, nfs_core_param, nb_worker), CONF_ITEM_BOOL("Drop_IO_Errors", false, nfs_core_param, drop_io_errors), CONF_ITEM_BOOL("Drop_Inval_Errors", false, nfs_core_param, drop_inval_errors), CONF_ITEM_BOOL("Drop_Delay_Errors", false, nfs_core_param, drop_delay_errors), CONF_ITEM_UI32("Dispatch_Max_Reqs", 1, 10000, 5000,
#include "config_parsing.h" #include <unistd.h> #include <sys/types.h> #include <sys/param.h> #include <time.h> #include <pthread.h> #include <string.h> /** File cache configuration, settable in the CacheInode stanza. */ struct mdcache_parameter mdcache_param; static struct config_item mdcache_params[] = { CONF_ITEM_UI32("NParts", 1, 32633, 7, mdcache_parameter, nparts), CONF_ITEM_UI32("Cache_Size", 1, UINT32_MAX, 32633, mdcache_parameter, cache_size), CONF_ITEM_BOOL("Use_Getattr_Directory_Invalidation", false, mdcache_parameter, getattr_dir_invalidation), CONF_ITEM_UI32("Dir_Max_Deleted", 1, UINT32_MAX, 65536, mdcache_parameter, dir.avl_max_deleted), CONF_ITEM_UI32("Entries_HWMark", 1, UINT32_MAX, 100000, mdcache_parameter, entries_hwmark), CONF_ITEM_UI32("LRU_Run_Interval", 1, 24 * 3600, 90, mdcache_parameter, lru_run_interval), CONF_ITEM_BOOL("Cache_FDs", true, mdcache_parameter, use_fd_cache), CONF_ITEM_UI32("FD_Limit_Percent", 0, 100, 99, mdcache_parameter, fd_limit_percent), CONF_ITEM_UI32("FD_HWMark_Percent", 0, 100, 90,