Fix spl_hostid module parameter

Currently, spl_hostid module parameter doesn't do anything, because it will
always be overwritten when calling into hostid_read().
Instead, we should only call into hostid_read() when spl_hostid is not zero,
just as the comment describes.

Signed-off-by: Chunwei Chen <tuxoko@gmail.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #427
This commit is contained in:
Chunwei Chen 2015-01-23 15:01:03 +08:00 committed by Brian Behlendorf
parent c7db36a3c4
commit 086476f920
1 changed files with 3 additions and 1 deletions

View File

@ -467,13 +467,15 @@ zone_get_hostid(void *zone)
if (first) { if (first) {
first = 0; first = 0;
spl_hostid &= HW_HOSTID_MASK;
/* /*
* Get the hostid if it was not passed as a module parameter. * Get the hostid if it was not passed as a module parameter.
* Try reading the /etc/hostid file directly. * Try reading the /etc/hostid file directly.
*/ */
if (hostid_read()) if (spl_hostid == 0 && hostid_read())
spl_hostid = 0; spl_hostid = 0;
printk(KERN_NOTICE "SPL: using hostid 0x%08x\n", printk(KERN_NOTICE "SPL: using hostid 0x%08x\n",
(unsigned int) spl_hostid); (unsigned int) spl_hostid);
} }