* We use write() instead of printf() so that this function
* is safe to call from a signal handler.
*/
- ret = write(STDOUT_FILENO, "\n", 1);
- zfs_dbgmsg_print("zdb");
+ ret = write(STDERR_FILENO, "\n", 1);
+ zfs_dbgmsg_print(STDERR_FILENO, "zdb");
}
static void sig_handler(int signo)
* We use write() instead of printf() so that this function
* is safe to call from a signal handler.
*/
- ret = write(STDOUT_FILENO, "\n", 1);
- zfs_dbgmsg_print("ztest");
+ ret = write(STDERR_FILENO, "\n", 1);
+ zfs_dbgmsg_print(STDERR_FILENO, "ztest");
}
static void sig_handler(int signo)
#ifndef _KERNEL
extern int dprintf_find_string(const char *string);
-extern void zfs_dbgmsg_print(const char *tag);
+extern void zfs_dbgmsg_print(int fd, const char *tag);
#endif
#ifdef __cplusplus
#else
void
-zfs_dbgmsg_print(const char *tag)
+zfs_dbgmsg_print(int fd, const char *tag)
{
ssize_t ret __attribute__((unused));
- mutex_enter(&zfs_dbgmsgs_lock);
-
/*
* We use write() in this function instead of printf()
* so it is safe to call from a signal handler.
*/
- ret = write(STDOUT_FILENO, "ZFS_DBGMSG(", 11);
- ret = write(STDOUT_FILENO, tag, strlen(tag));
- ret = write(STDOUT_FILENO, ") START:\n", 9);
+ ret = write(fd, "ZFS_DBGMSG(", 11);
+ ret = write(fd, tag, strlen(tag));
+ ret = write(fd, ") START:\n", 9);
+
+ mutex_enter(&zfs_dbgmsgs_lock);
- for (zfs_dbgmsg_t zdm = list_head(&zfs_dbgmsgs); zdm != NULL;
+ for (zfs_dbgmsg_t *zdm = list_head(&zfs_dbgmsgs); zdm != NULL;
zdm = list_next(&zfs_dbgmsgs, zdm))
- ret = write(STDOUT_FILENO, zdm->zdm_msg,
- strlen(zdm->zdm_msg));
- ret = write(STDOUT_FILENO, "\n", 1);
+ ret = write(fd, zdm->zdm_msg, strlen(zdm->zdm_msg));
+ ret = write(fd, "\n", 1);
}
- ret = write(STDOUT_FILENO, "ZFS_DBGMSG(", 11);
- ret = write(STDOUT_FILENO, tag, strlen(tag));
- ret = write(STDOUT_FILENO, ") END\n", 6);
+ ret = write(fd, "ZFS_DBGMSG(", 11);
+ ret = write(fd, tag, strlen(tag));
+ ret = write(fd, ") END\n", 6);
mutex_exit(&zfs_dbgmsgs_lock);
}
#else
void
-zfs_dbgmsg_print(const char *tag)
+zfs_dbgmsg_print(int fd, const char *tag)
{
ssize_t ret __attribute__((unused));
* We use write() in this function instead of printf()
* so it is safe to call from a signal handler.
*/
- ret = write(STDOUT_FILENO, "ZFS_DBGMSG(", 11);
- ret = write(STDOUT_FILENO, tag, strlen(tag));
- ret = write(STDOUT_FILENO, ") START:\n", 9);
+ ret = write(fd, "ZFS_DBGMSG(", 11);
+ ret = write(fd, tag, strlen(tag));
+ ret = write(fd, ") START:\n", 9);
for (zfs_dbgmsg_t *zdm = list_head(&zfs_dbgmsgs.pl_list); zdm != NULL;
zdm = list_next(&zfs_dbgmsgs.pl_list, zdm)) {
- ret = write(STDOUT_FILENO, zdm->zdm_msg,
- strlen(zdm->zdm_msg));
- ret = write(STDOUT_FILENO, "\n", 1);
+ ret = write(fd, zdm->zdm_msg, strlen(zdm->zdm_msg));
+ ret = write(fd, "\n", 1);
}
- ret = write(STDOUT_FILENO, "ZFS_DBGMSG(", 11);
- ret = write(STDOUT_FILENO, tag, strlen(tag));
- ret = write(STDOUT_FILENO, ") END\n", 6);
+ ret = write(fd, "ZFS_DBGMSG(", 11);
+ ret = write(fd, tag, strlen(tag));
+ ret = write(fd, ") END\n", 6);
mutex_exit(&zfs_dbgmsgs.pl_lock);
}