Make spa_history_zone platform-dependent in kernel
This function should only return "linux" on Linux. Move the kernel part of the function out of common code. Fix the tests for FreeBSD. Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ryan Moeller <ryan@iXsystems.com> Closes #10079
This commit is contained in:
parent
1289fbb557
commit
9bb907bc3f
@ -447,6 +447,7 @@ extern void spa_event_post(sysevent_t *ev);
|
||||
extern int param_set_deadman_failmode_common(const char *val);
|
||||
extern void spa_set_deadman_synctime(hrtime_t ns);
|
||||
extern void spa_set_deadman_ziotime(hrtime_t ns);
|
||||
extern const char *spa_history_zone(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -102,3 +102,9 @@ param_set_slop_shift(const char *buf, zfs_kernel_param_t *kp)
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
const char *
|
||||
spa_history_zone(void)
|
||||
{
|
||||
return ("linux");
|
||||
}
|
||||
|
@ -180,16 +180,6 @@ spa_history_write(spa_t *spa, void *buf, uint64_t len, spa_history_phys_t *shpp,
|
||||
return (0);
|
||||
}
|
||||
|
||||
static char *
|
||||
spa_history_zone(void)
|
||||
{
|
||||
#ifdef _KERNEL
|
||||
return ("linux");
|
||||
#else
|
||||
return (NULL);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Post a history sysevent.
|
||||
*
|
||||
@ -622,6 +612,14 @@ spa_history_log_version(spa_t *spa, const char *operation, dmu_tx_t *tx)
|
||||
u->nodename, u->release, u->version, u->machine);
|
||||
}
|
||||
|
||||
#ifndef _KERNEL
|
||||
const char *
|
||||
spa_history_zone(void)
|
||||
{
|
||||
return (NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(_KERNEL)
|
||||
EXPORT_SYMBOL(spa_history_create_obj);
|
||||
EXPORT_SYMBOL(spa_history_get);
|
||||
|
@ -51,11 +51,11 @@ function run_and_verify
|
||||
fullcmd="$1"
|
||||
flags="$2"
|
||||
|
||||
if is_linux; then
|
||||
if is_illumos; then
|
||||
histcmd=$(echo $fullcmd | sed 's/\/usr\/sbin\///g')
|
||||
else
|
||||
histcmd=$(echo $fullcmd | sed 's/^.*\/\(zpool .*\).*$/\1/')
|
||||
histcmd=$(echo $histcmd | sed 's/^.*\/\(zfs .*\).*$/\1/')
|
||||
else
|
||||
histcmd=$(echo $fullcmd | sed 's/\/usr\/sbin\///g')
|
||||
fi
|
||||
|
||||
cmd=$(echo $histcmd | awk '{print $1}')
|
||||
@ -112,10 +112,11 @@ function verify_long
|
||||
typeset suffix=""
|
||||
if is_linux; then
|
||||
suffix=":linux"
|
||||
elif is_freebsd; then
|
||||
suffix=":freebsd"
|
||||
fi
|
||||
|
||||
grep "$cmd \[user $uid ($user) on $hname$suffix\]" \
|
||||
$NEW_HISTORY >/dev/null 2>&1
|
||||
grep -q "$cmd \[user $uid ($user) on $hname$suffix\]" $NEW_HISTORY
|
||||
if [[ $? != 0 ]]; then
|
||||
log_note "Couldn't find long information for \"$cmd\""
|
||||
return 1
|
||||
|
Loading…
Reference in New Issue
Block a user