char *path = strdup(rand_vd->vdev_path);
boolean_t active = rand_vd->vdev_initialize_thread != NULL;
- zfs_dbgmsg("vd %p, guid %llu", rand_vd, guid);
+ zfs_dbgmsg("vd %px, guid %llu", rand_vd, guid);
spa_config_exit(spa, SCL_VDEV, FTAG);
uint64_t cmd = ztest_random(POOL_INITIALIZE_FUNCS);
if (!(_verify3_left OP _verify3_right)) \
spl_panic(__FILE__, __FUNCTION__, __LINE__, \
"VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
- "failed (%p " #OP " %p)\n", \
+ "failed (%px" #OP " %px)\n", \
(void *) (_verify3_left), \
(void *) (_verify3_right)); \
} while (0)
extern void kstat_proc_entry_init(kstat_proc_entry_t *kpep,
const char *module, const char *name);
extern void kstat_proc_entry_delete(kstat_proc_entry_t *kpep);
-extern void kstat_proc_entry_install(kstat_proc_entry_t *kpep,
+extern void kstat_proc_entry_install(kstat_proc_entry_t *kpep, mode_t mode,
const struct file_operations *file_ops, void *data);
extern void __kstat_install(kstat_t *ksp);
void procfs_list_install(const char *module,
const char *name,
+ mode_t mode,
procfs_list_t *procfs_list,
int (*show)(struct seq_file *f, void *p),
int (*show_header)(struct seq_file *f),
void procfs_list_install(const char *module,
const char *name,
+ mode_t mode,
procfs_list_t *procfs_list,
int (*show)(struct seq_file *f, void *p),
int (*show_header)(struct seq_file *f),
void
procfs_list_install(const char *module,
const char *name,
+ mode_t mode,
procfs_list_t *procfs_list,
int (*show)(struct seq_file *f, void *p),
int (*show_header)(struct seq_file *f),
* kstat.
*/
void
-kstat_proc_entry_install(kstat_proc_entry_t *kpep,
+kstat_proc_entry_install(kstat_proc_entry_t *kpep, mode_t mode,
const struct file_operations *file_ops, void *data)
{
kstat_module_t *module;
list_add_tail(&kpep->kpe_list, &module->ksm_kstat_list);
kpep->kpe_owner = module;
- kpep->kpe_proc = proc_create_data(kpep->kpe_name, 0644,
+ kpep->kpe_proc = proc_create_data(kpep->kpe_name, mode,
module->ksm_proc, file_ops, data);
if (kpep->kpe_proc == NULL) {
list_del_init(&kpep->kpe_list);
__kstat_install(kstat_t *ksp)
{
ASSERT(ksp);
- kstat_proc_entry_install(&ksp->ks_proc, &proc_kstat_operations, ksp);
+ mode_t mode;
+ /* Specify permission modes for different kstats */
+ if (strncmp(ksp->ks_proc.kpe_name, "dbufs", KSTAT_STRLEN) == 0) {
+ mode = 0600;
+ } else {
+ mode = 0644;
+ }
+ kstat_proc_entry_install(
+ &ksp->ks_proc, mode, &proc_kstat_operations, ksp);
}
EXPORT_SYMBOL(__kstat_install);
void
procfs_list_install(const char *module,
const char *name,
+ mode_t mode,
procfs_list_t *procfs_list,
int (*show)(struct seq_file *f, void *p),
int (*show_header)(struct seq_file *f),
procfs_list->pl_node_offset = procfs_list_node_off;
kstat_proc_entry_init(&procfs_list->pl_kstat_entry, module, name);
- kstat_proc_entry_install(&procfs_list->pl_kstat_entry,
+ kstat_proc_entry_install(&procfs_list->pl_kstat_entry, mode,
&procfs_list_operations, procfs_list);
}
EXPORT_SYMBOL(procfs_list_install);
*/
if (error != 0) {
zfs_dbgmsg(
- "hdr %p, compress %d, psize %d, lsize %d",
+ "hdr %px, compress %d, psize %d, lsize %d",
hdr, arc_hdr_get_compress(hdr),
HDR_GET_PSIZE(hdr), HDR_GET_LSIZE(hdr));
if (hash_lock != NULL)
ASSERT(msp->ms_loaded);
- zfs_dbgmsg("condensing: txg %llu, msp[%llu] %p, vdev id %llu, "
+ zfs_dbgmsg("condensing: txg %llu, msp[%llu] %px, vdev id %llu, "
"spa %s, smp size %llu, segments %lu, forcing condense=%s", txg,
msp->ms_id, msp, msp->ms_group->mg_vd->vdev_id,
msp->ms_group->mg_vd->vdev_spa->spa_name,
for (i = 0; i < RANGE_TREE_HISTOGRAM_SIZE; i++) {
if (hist[i] != rt->rt_histogram[i]) {
- zfs_dbgmsg("i=%d, hist=%p, hist=%llu, rt_hist=%llu",
+ zfs_dbgmsg("i=%d, hist=%px, hist=%llu, rt_hist=%llu",
i, hist, hist[i], rt->rt_histogram[i]);
}
VERIFY3U(hist[i], ==, rt->rt_histogram[i]);
shl->procfs_list.pl_private = shl;
procfs_list_install(module,
"reads",
+ 0600,
&shl->procfs_list,
spa_read_history_show,
spa_read_history_show_header,
shl->procfs_list.pl_private = shl;
procfs_list_install(module,
"txgs",
+ 0644,
&shl->procfs_list,
spa_txg_history_show,
spa_txg_history_show_header,
shl->procfs_list.pl_private = shl;
procfs_list_install(module,
"multihost",
+ 0644,
&shl->procfs_list,
spa_mmp_history_show,
spa_mmp_history_show_header,
doi.doi_bonus_size != sizeof (space_map_phys_t)) ||
doi.doi_data_block_size != blocksize ||
doi.doi_metadata_block_size != 1 << space_map_ibs) {
- zfs_dbgmsg("txg %llu, spa %s, sm %p, reallocating "
+ zfs_dbgmsg("txg %llu, spa %s, sm %px, reallocating "
"object[%llu]: old bonus %u, old blocksz %u",
dmu_tx_get_txg(tx), spa_name(spa), sm, sm->sm_object,
doi.doi_bonus_size, doi.doi_data_block_size);
*/
vdev_config_dirty(vd);
- zfs_dbgmsg("starting removal thread for vdev %llu (%p) in txg %llu "
+ zfs_dbgmsg("starting removal thread for vdev %llu (%px) in txg %llu "
"im_obj=%llu", vd->vdev_id, vd, dmu_tx_get_txg(tx),
vic->vic_mapping_object);
{
procfs_list_install("zfs",
"dbgmsg",
+ 0600,
&zfs_dbgmsgs,
zfs_dbgmsg_show,
zfs_dbgmsg_show_header,
txg_wait_synced(zilog->zl_dmu_pool, txg);
if (zilog_is_dirty(zilog))
- zfs_dbgmsg("zil (%p) is dirty, txg %llu", zilog, txg);
+ zfs_dbgmsg("zil (%px) is dirty, txg %llu", zilog, txg);
if (txg < spa_freeze_txg(zilog->zl_spa))
VERIFY(!zilog_is_dirty(zilog));
uint64_t delta = gethrtime() - pio->io_timestamp;
uint64_t failmode = spa_get_deadman_failmode(pio->io_spa);
- zfs_dbgmsg("slow zio[%d]: zio=%p timestamp=%llu "
+ zfs_dbgmsg("slow zio[%d]: zio=%px timestamp=%llu "
"delta=%llu queued=%llu io=%llu "
"path=%s last=%llu "
"type=%d priority=%d flags=0x%x "
}
if (error != 0) {
- zfs_dbgmsg("%s: metaslab allocation failure: zio %p, "
+ zfs_dbgmsg("%s: metaslab allocation failure: zio %px, "
"size %llu, error %d", spa_name(spa), zio, zio->io_size,
error);
if (error == ENOSPC && zio->io_size > SPA_MINBLOCKSIZE)
typeset -i i=0
while [[ $i -lt ${#args[*]} ]]; do
- log_must eval "dbufstat ${args[i]} > /dev/null"
+ log_must eval "sudo dbufstat ${args[i]} > /dev/null"
((i = i + 1))
done
# A simple test of dbufstat filter functionality
-log_must eval "dbufstat -F object=10,dbc=1,pool=$TESTPOOL > /dev/null"
+log_must eval "sudo dbufstat -F object=10,dbc=1,pool=$TESTPOOL > /dev/null"
log_pass "dbufstat generates output and doesn't return an error code"