8487 Commits

Author SHA1 Message Date
Kyle Evans
4a57569853 MFC r337534-r337535
r337534:
Refactor common code into execute_script().

r337535:
Use NULLs instead of casted zeroes, for consistency.
2019-04-21 04:18:57 +00:00
Kyle Evans
d99a238fe3 MFC r337321, r337435, r337707, r337740, r337834, r337836, r337968
r337321:
Make it possible for init to execute any executable, not just sh(1)
scripts. This means one should be able to eg rewrite their /etc/rc
in Python.

r337435:
Move description of init_shell, init_script, and init_chroot kenv
tunables from loader(8) to init(8), since it's init that actually
uses them.  Add .Xrs at their old place.

r337707:
Move around text in loader(8), in particular stuff related to ZFS,
to restore the usual section order.

r337740:
Add init_exec kenv(1) variable, to make init(8) execute a file
after opening the console, replacing init as PID 1.

From the user point of view, it makes it possible to run eg the
shell as PID 1, using 'set init_exec=/bin/sh' at the loader(8)
prompt.

r337834:
Add SECURITY section to loader(8).

r337836:
Improve formatting.

r337968:
Consistently use NULL to terminate the argv; no functional changes.

Relnotes:	yes	(init_exec kenv(1) variable)
2019-04-21 04:00:19 +00:00
Kyle Evans
ae3aa14353 MFC r333662: Clarify that boot_mute / boot -m mutes kernel console only
Perhaps RB_MUTE could mute user startup (rc) output as well, but right
now it mutes only kernel console output, so make the documentation match
reality.

PR:		228193
2019-04-21 03:15:11 +00:00
Kyle Evans
d1886e7aef MFC bectl(8)/libbe(3): r337663-337664,337667,337697-337699,337800,337805,
337915-337918,337921,337924,337947,337993-337995,338221-338222,338303,
338417,339047,339972,339994,340334,340507-340508,340592-340594,
340635-340636,340722-340723,340974,342466,342849,342903,342911,343335,
343543,343977,343993-343994,344034,344067,344084,345302,345769,
345845-345846,345848,346082

There are simply too many small changes to enumerate; in summary:

bectl(8)/libbe(3) has been introduced from current state in -CURRENT and
added to the stable/11 rescue build. bectl(8) is a tool for managing ZFS
boot environments, largely inspired by beadm. It includes features such as
being able to jail a boot environment or easily mount it for modification.

Relnotes:	probably
2019-04-20 04:16:51 +00:00
Konstantin Belousov
2eb564de0a MFC r346038:
Exercise some care before sending SIGHUP to mountd.
2019-04-15 13:12:54 +00:00
Andrey V. Elsukov
7968cd35d6 MFC r345264:
Add NAT64 CLAT implementation as defined in RFC6877.

  CLAT is customer-side translator that algorithmically translates 1:1
  private IPv4 addresses to global IPv6 addresses, and vice versa.
  It is implemented as part of ipfw_nat64 kernel module. When module
  is loaded or compiled into the kernel, it registers "nat64clat" external
  action. External action named instance can be created using `create`
  command and then used in ipfw rules. The create command accepts two
  IPv6 prefixes `plat_prefix` and `clat_prefix`. If plat_prefix is ommitted,
  IPv6 NAT64 Well-Known prefix 64:ff9b::/96 will be used.

    # ipfw nat64clat CLAT create clat_prefix SRC_PFX plat_prefix DST_PFX
    # ipfw add nat64clat CLAT ip4 from IPv4_PFX to any out
    # ipfw add nat64clat CLAT ip6 from DST_PFX to SRC_PFX in

  Obtained from:	Yandex LLC
  Submitted by:	Boris N. Lytochkin
  Relnotes:	yes
  Sponsored by:	Yandex LLC
2019-04-14 12:39:09 +00:00
Andrey V. Elsukov
c2f3f69e70 MFC r345263:
Add SPDX-License-Identifier and update year in copyright.
2019-04-14 12:35:58 +00:00
Andrey V. Elsukov
8aa42caec6 MFC r345262:
Modify struct nat64_config.

  Add second IPv6 prefix to generic config structure and rename another
  fields to conform to RFC6877. Now it contains two prefixes and length:
  PLAT is provider-side translator that translates N:1 global IPv6 addresses
  to global IPv4 addresses. CLAT is customer-side translator (XLAT) that
  algorithmically translates 1:1 IPv4 addresses to global IPv6 addresses.
  Use PLAT prefix in stateless (nat64stl) and stateful (nat64lsn)
  translators.

  Modify nat64_extract_ip4() and nat64_embed_ip4() functions to accept
  prefix length and use plat_plen to specify prefix length.

  Retire net.inet.ip.fw.nat64_allow_private sysctl variable.
  Add NAT64_ALLOW_PRIVATE flag and use "allow_private" config option to
  configure this ability separately for each NAT64 instance.

  Obtained from:	Yandex LLC
  Sponsored by:	Yandex LLC
2019-04-14 12:34:30 +00:00
Andrey V. Elsukov
3714a35a43 MFC r339542:
Retire IPFIREWALL_NAT64_DIRECT_OUTPUT kernel option. And add ability
  to switch the output method in run-time. Also document some sysctl
  variables that can by changed for NAT64 module.

  NAT64 had compile time option IPFIREWALL_NAT64_DIRECT_OUTPUT to use
  if_output directly from nat64 module. By default is used netisr based
  output method. Now both methods can be used, but they require different
  handling by rules.

  Obtained from:	Yandex LLC
  Sponsored by:	Yandex LLC
  Differential Revision:	https://reviews.freebsd.org/D16647
2019-04-14 12:28:41 +00:00
Andrey V. Elsukov
c35305493b MFC r344709 (by ygy):
Fix typos and caps for ipfw(8) man page.

  PR:		236030
  Submitted by:	olgeni
2019-04-14 12:14:25 +00:00
Andrey V. Elsukov
342fe5798e MFC r344665 (by trhodes):
Grammar tweaks in ipfw manual page.
2019-04-14 12:10:23 +00:00
Andrey V. Elsukov
0b8f18dbb1 MFC r341471:
Reimplement how net.inet.ip.fw.dyn_keep_states works.

  Turning on of this feature allows to keep dynamic states when parent
  rule is deleted. But it works only when the default rule is
  "allow from any to any".

  Now when rule with dynamic opcode is going to be deleted, and
  net.inet.ip.fw.dyn_keep_states is enabled, existing states will reference
  named objects corresponding to this rule, and also reference the rule.
  And when ipfw_dyn_lookup_state() will find state for deleted parent rule,
  it will return the pointer to the deleted rule, that is still valid.
  This implementation doesn't support O_LIMIT_PARENT rules.

  The refcnt field was added to struct ip_fw to keep reference, also
  next pointer added to be able iterate rules and not damage the content
  when deleted rules are chained.

  Named objects are referenced only when states are going to be deleted to
  be able reuse kidx of named objects when new parent rules will be
  installed.

  ipfw_dyn_get_count() function was modified and now it also looks into
  dynamic states and constructs maps of existing named objects. This is
  needed to correctly export orphaned states into userland.

  ipfw_free_rule() was changed to be global, since now dynamic state can
  free rule, when it is expired and references counters becomes 1.

  External actions subsystem also modified, since external actions can be
  deregisterd and instances can be destroyed. In these cases deleted rules,
  that are referenced by orphaned states, must be modified to prevent access
  to freed memory. ipfw_dyn_reset_eaction(), ipfw_reset_eaction_instance()
  functions added for these purposes.

  Obtained from:	Yandex LLC
  Sponsored by:	Yandex LLC
  Differential Revision:	https://reviews.freebsd.org/D17532

MFC r341472:
  Add ability to request listing and deleting only for dynamic states.

  This can be useful, when net.inet.ip.fw.dyn_keep_states is enabled, but
  after rules reloading some state must be deleted. Added new flag '-D'
  for such purpose.

  Retire '-e' flag, since there can not be expired states in the meaning
  that this flag historically had.

  Also add "verbose" mode for listing of dynamic states, it can be enabled
  with '-v' flag and adds additional information to states list. This can
  be useful for debugging.

  Obtained from:	Yandex LLC
  Sponsored by:	Yandex LLC

MFC r344018:
  Remove `set' field from state structure and use set from parent rule.

  Initially it was introduced because parent rule pointer could be freed,
  and rule's information could become inaccessible. In r341471 this was
  changed. And now we don't need this information, and also it can become
  stale. E.g. rule can be moved from one set to another. This can lead
  to parent's set and state's set will not match. In this case it is
  possible that static rule will be freed, but dynamic state will not.
  This can happen when `ipfw delete set N` command is used to delete
  rules, that were moved to another set.
  To fix the problem we will use the set number from parent rule.

  Obtained from:	Yandex LLC
  Sponsored by:	Yandex LLC

MFC r344870:
  Fix the problem with O_LIMIT states introduced in r344018.

  dyn_install_state() uses `rule` pointer when it creates state.
  For O_LIMIT states this pointer actually is not struct ip_fw,
  it is pointer to O_LIMIT_PARENT state, that keeps actual pointer
  to ip_fw parent rule. Thus we need to cache rule id and number
  before calling dyn_get_parent_state(), so we can use them later
  when the `rule` pointer is overrided.

  PR:		236292
2019-04-14 12:05:08 +00:00
Andrey V. Elsukov
2846fc2f85 MFC r340792 (by ygy):
Fix a minor typo in ipfw(8) manual page.

  PR:		230747
  Submitted by:	f.toscan@hotmail.it
2019-04-14 11:52:00 +00:00
Andrey V. Elsukov
32f81b88fb MFC r340717 (by ygy):
Fix incorrect DSCP value range from 0..64 to 0..63.

  PR:		232786
  Submitted by:	Sergey Akhmatov <sergey@akhmatov.ru>
2019-04-14 11:50:07 +00:00
Xin LI
24e93a0c26 MFC r345647:
Distinguish between lseek errors and read errores.
2019-04-12 02:27:03 +00:00
Alan Somers
9d422eccc9 MFC r343530, r344559
r343530:
ifconfig: fix endianness bug displaying pfsync interfaces

Reviewed by:	kp
Differential Revision:	https://reviews.freebsd.org/D19005

r344559:
ifconfig: eliminate trailing whitespace

Eliminate trailing whitespace on inet, inet6, and groups lines. I think the
"list txpower" command will still show some, but I'm not able to test that.

PR: 153731
Reported-by: Nikolay Denev <ndenev@gmail.com>
Differential Revision:	https://reviews.freebsd.org/D19004
2019-03-21 22:40:05 +00:00
Alan Somers
b6c816a57c MFC r340455, r340525, r341598
r340455:
fcntl.2: document an additional error condition

r340525:
mount_fusefs.8: expand HISTORY section

Note that fuse was available from ports long before joining the base system.
Also, update the upstream URL.

r341598:
stat(2): clarify which syscalls modify file timestamps

The list of syscalls that modify st_atim, st_mtim, and st_ctim was quite out
of date and probably not accurate to begin with.  Update it, and make it
clear that the list is open-ended.

Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D18410
2019-03-21 21:56:03 +00:00
Andriy Voskoboinyk
ca066b6f00 MFC r344748:
Allow to build ifconfig(8) without wireless support

The change removes SIOC[GS]IEEE80211 handling from ifconfig(8)
if WITHOUT_WIRELESS_SUPPORT=yes is set in src.conf(5).

Reviewed by:	bz
Differential Revision:	https://reviews.freebsd.org/D19289
2019-03-15 08:18:02 +00:00
Vladimir Kondratyev
9991baca94 MFC r344494,r344495:
evdev: export event device properties through sysctl interface

A big security advantage of Wayland is not allowing applications to read
input devices all the time. Having /dev/input/* accessible to the user
account subverts this advantage.

libudev-devd was opening the evdev devices to detect their types (mouse,
keyboard, touchpad, etc). This don't work if /dev/input/* is inaccessible.
With the kernel exposing this information as sysctls (kern.evdev.input.*),
we can work w/o /dev/input/* access, preserving the Wayland security model.

Submitted by:	Greg V <greg@unrelenting.technology>
Reviewed by:	wulf, imp
Differential Revision:	https://reviews.freebsd.org/D18694
2019-03-10 20:58:24 +00:00
Konstantin Belousov
0507539381 MFC r339941 (by mckusick):
In preparation for adding inode check-hashes, change the fsck_ffs
inodirty() function to have a pointer to the inode being dirtied.
No functional change (as for now the parameter is ununsed).

Also for stable/11 UFS_NDADDR was renamed to NDADDR.
2019-03-07 13:53:59 +00:00
Kirk McKusick
2be24a23a3 MFC of 344731
Roundup tunefs -S logsize to filesystem block size

Sponsored by: Netflix
2019-03-07 00:04:13 +00:00
Kirk McKusick
c348fd91e6 MFC of 344552 and 344732
Have fsck_ffs adjust size for files with hole at end

Tighten last lbn calculation

Sponsored by: Netflix
2019-03-06 23:59:56 +00:00
Bryan Drewery
c9465a678e MFC r343877,r343880:
r343877:
    ipfw table list: Fix showing header outside of 'all'.
  r343880:
    Fix build of r343877

Relnotes:	yes
2019-02-28 20:57:41 +00:00
Kyle Evans
d731ee53a0 MFC r344218: mdmfs(8): use -o reserve with malloc-backed md(4)
Mentioned in mdconfig(8), malloc-backed md(4) can be unstable unless
required memory is allocated up front with -o reserve. Furthermore, panics
have been observed with md used in fstab on 12.0-RELEASE. Choose the stable
route and pass -o reserve.
2019-02-27 17:00:27 +00:00
Rodney W. Grimes
71dabdc9bd MFC r339707: Allow fdisk(8) to deal with sectors larger than 2048
especially for 4Kn drives with PMBR's

Approved by:	bde (mentor, implicit)
2019-02-24 01:56:35 +00:00
Kyle Evans
c6edb746c3 MFC r316312, r332361, r333438-r333439, r339804: GELI dry-run
r316312:
sys/geom/eli: Switch bzero() to explicit_bzero() for sensitive data

In GELI, anywhere we are zeroing out possibly sensitive data, like
the metadata struct, the metadata sector (both contain the encrypted
master key), the user key, or the master key, use explicit_bzero.

Didn't touch the bzero() used to initialize structs.

r332361:
Introduce dry run option for attaching the device.
This will allow us to verify if passphrase and key is valid without
decrypting whole device.

r333438:
Change option dry-run from 'n' to 'C' in geli attach command.

'n' is used in other commands to define the key index.
We should be consistent with that.
'C' option is used by patch(1) to perform dryrun so lets use that.

r333439:
Introduce the 'n' flag for the geli attach command.

If the 'n' flag is provided the provided key number will be used to
decrypt device. This can be used combined with dryrun to verify if the key
is set correctly. This can be also used to determine which key slot we want to
change on already attached device.

r339804:
Restore backward compatibility for "attach" verb.

In r332361 and r333439, two new parameters were added to geli attach
verb using gctl_get_paraml, which requires the value to be present.
This would prevent old geli(8) binary from attaching geli(4) device
as they have no knowledge about the new parameters.

Restore backward compatibility by treating the absense of these two
values as seeing the default value supplied by userland.
2019-02-20 23:42:03 +00:00
Brooks Davis
20c00f400c MFC r344023:
mdmfs: Fix many bugs in automatic md(4) creation.

This code allocated a correctly sized buffer, read past the end of
the source buffer, writing off the end of the target buffer, and then
writing a '\0' terminator past the end of the target buffer (in the
wrong place). It then leaked the buffer.

Switch to a statically sized buffer on the stack and update the source
pointer and length before use so the correct things are copied.

Fix a logic error in the checks that the format of the line is as
expected and move on out of an assert.

Remove an unneeded close(). fclose() closes the descriptor.

Found with:	CheriABI
Obtained from:	CheriBSD
Reviewed by:	kib, jhb, markj
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D19122
2019-02-18 18:57:52 +00:00
Andriy Voskoboinyk
970364ba73 MFC r343980:
ifconfig(8): display 802.11n rates correctly for 'roam:rate' parameter
2019-02-16 01:05:22 +00:00
Andriy Voskoboinyk
5a4d772177 MFC r343871:
recoverdisk(1): fclose() file supplied via '-r readlist' parameter when
it's no longer needed

PR:		204952
Reported by:	David Binderman <dcb314@hotmail.com>
2019-02-13 09:28:48 +00:00
Dmitry Morozovsky
d5eff6c0d5 MFC 343548:
Allow dashes as a valid character in UFS labels.
2019-02-12 14:03:39 +00:00
Enji Cooper
9d38c1e013 MFC r342904:
route(8): clarify -prefixlen description

Try to reword -prefixlen section to more clearly and accurately describe how
the -prefixlen modifier works.

While here, fix a word that igor considered a typo: aggregatable addresses is a
valid technical term per RFC-2374, however, it was superseded by the term
"aggregator" in RFC-3587.

Approved by:	jtl (mentor)
Differential Revision: https://reviews.freebsd.org/D19156
2019-02-12 03:13:10 +00:00
Kristof Provost
041b0cba11 MFC r343520:
pfctl: Point users to net.pf.request_maxcount if large requests are rejected

The kernel will reject very large tables to avoid resource exhaustion
attacks. Some users run into this limit with legitimate table
configurations.

The error message in this case was not very clear:

  pf.conf:1: cannot define table nets: Invalid argument
  pfctl: Syntax error in config file: pf rules not loaded

If a table definition fails we now check the request_maxcount sysctl,
and if we've tried to create more than that point the user at
net.pf.request_maxcount:

  pf.conf:1: cannot define table nets: too many elements.
  Consider increasing net.pf.request_maxcount.
  pfctl: Syntax error in config file: pf rules not loaded

PR:		235076
2019-02-11 19:08:03 +00:00
Andriy Voskoboinyk
8263daacfe MFC r343698, r343700:
ifconfig(8): display management / multicast wlan(4) rates properly

For 11n / 11ac we are still using non-11n rates for management and
multicast traffic by default; check 'MCS rate' bit to determine how
to print them correctly.

PR:		161035
2019-02-10 20:42:06 +00:00
Kirk McKusick
cb21828b75 MFC of 343449 and 343483
Update tunefs to allow '_' in label names.

Update tunefs and newfs error messages to note that '_' is allowed
in label names.

Sponsored by: Netflix
2019-01-28 21:48:04 +00:00
Andriy Voskoboinyk
8833d84ded MFC r343341:
ifconfig: drop unused macros from ifieee80211.c
2019-01-28 00:51:26 +00:00
Kristof Provost
46657c3818 MFC r342989
pfctl: Fix 'set skip' handling for groups

When we skip on a group the kernel will automatically skip on the member
interfaces. We still need to update our own cache though, or we risk
overruling the kernel afterwards.

This manifested as 'set skip' working initially, then not working when
the rules were reloaded.

PR:		229241
2019-01-20 22:01:41 +00:00
Kyle Evans
92c99f232a MFC r305074-r305075, r327275, r327570: newfs_msdos updates
r305074:
Remove CHS alignment. It's not needed and causes problems for the BBB
boot partition. NetBSD removed it in 1.10 in their repo some time ago.

r305075:
The code only converts from bpbHugeSectors to bpbSectors if the sum of
the hidden and huge sectors is less than or equal MAXU16. When
formatting in Windows bpbSectors is still used for 63488 sectors and
2048 hidden (sum > MAXU16). The hidden sectors count is the number of
sectors before the FAT16 Boot Record so it shouldn't affect the sector
count. Attached patch (huge_sec_conversion.patch) to only check for
bpb.bpbHugeSectors <= MAXU16 when converting to bpbSectors.

r327275:
Close fd and fd1 before returning now that we're done with them.

r327570:
Only call close if fd and fd1 are not -1.

PR: 183234
2019-01-15 15:47:01 +00:00
Kyle Evans
bbbaf03688 Revert r342807, mistakenly including libbe(3)/bectl(8) MFC 2019-01-06 02:15:09 +00:00
Kyle Evans
557183abd1 MFC r342362-r342363: config(8) duplicate option handling
r342362:
config(8): Allow duplicate options to be specified

config(8)'s option handling has been written to allow duplicate options; if
the value changes, then the latest value is used and an informative message
is printed to stderr like so:

/usr/src/sys/amd64/conf/TEST: option "VERBOSE_SYSINIT" redefined from 0 to 1

Currently, this is only a possibility for cpu types, MAXUSERS, and
MACHINE_ARCH. Anything else duplicated in a config file will use the first
value set and error about duplicated options on subsequent appearances,
which is arguably unfriendly since one could specify:

include GENERIC
nooptions VERBOSE_SYSINIT
options VERBOSE_SYSINIT

to redefine the value later anyways.

Reported by:	mmacy

r342363:
config(8): Remove all instances of an option when opting out

Quick follow-up to r342362: options can appear multiple times now, so
clean up all of them as needed. For non-OPTIONS options, this has no effect
since they're already de-duplicated.
2019-01-06 02:13:16 +00:00
Eugene Grosbein
2bfe01d4bf MFC r342367: ifconfig.8, lagg.4: fix documentation bug: -use_flowid
needs to be used to force local hash computation and disable usage
of RSS hash provided by driver.

PR:		234242
2018-12-29 00:42:11 +00:00
Andrey V. Elsukov
4d43fcb871 MFC r342298:
Allow use underscores and dots in service names without escaping.

  PR:		234237
2018-12-28 10:10:16 +00:00
Andrey V. Elsukov
8bc9303fd8 MFC r341798:
Use correct size for IPv4 address in gethostbyaddr().
  When u_long is 8 bytes, it returns EINVAL and 'ipfw -N show' doesn't work.

  Reported by:	Claudio Eichenberger <cei at yourshop.com>

MFC r341799:
  Rework how protocol number is tracked in rule. Save it when O_PROTO
  opcode will be printed. This should solve the problem, when protocol
  name is not printed in `ipfw -N show`.

  Reported by:	Claudio Eichenberger <cei at yourshop.com>
2018-12-17 10:43:23 +00:00
Eugene Grosbein
efb8bacd6e MFC r341768,r341795: ping(8): remove needless comparision with LONG_MAX
after unsigned long ultmp changed to long ltmp in r340245.
2018-12-16 01:19:10 +00:00
Eugene Grosbein
b6e9cec542 MFC r340394: ipfw.8: Fix part of the SYNOPSIS documenting
LIST OF RULES AND PREPROCESSING that is still referred
as last section of the SYNOPSIS later but was erroneously situated
in the section IN-KERNEL NAT.
2018-12-13 10:55:48 +00:00
Eugene Grosbein
7d423c664e MFC r340245: ping(8): improve diagnostics in case of wrong arguments.
For example, in case of super-user:
  $ sudo ping -s -64 127.0.0.1
  PING 127.0.0.1 (127.0.0.1): -64 data bytes
  ping: sendto: Invalid argument

  For unprivileged user:
  $ ping -s -64 127.0.0.1
  ping: packet size too large: 18446744073709551552 > 56: Operation not permitted

  Fix this by switching from strtoul() to strtol() for integer arguments
  and adding explicit checks for negative values.
2018-12-08 00:33:20 +00:00
Eugene Grosbein
0b4ff0661d MFC r340110: ipfw(8): clarify layer2 processing abilities
Make it clear that ipfw action set for layer2 frames is a bit limited.

PR:			59835
Reviewed by:		yuripv
Differential Revision:	https://reviews.freebsd.org/D17719
2018-12-04 07:34:47 +00:00
Eugene Grosbein
4022ea0a91 MFC r340978-340979: ipfw.8: new section to EXAMPLES: SELECTIVE MIRRORING 2018-11-29 01:28:13 +00:00
Andrey V. Elsukov
2d00950cea MFC r340689:
Make multiline APPLY_MASK() macro to be function-like.

  Reported by:	cem
2018-11-27 14:03:40 +00:00
Eugene Grosbein
530d509906 MFC r339818: rcorder(8):
Add support for /etc/rc.resume, so it calls
  "rcorder -k resume" and runs scripts containing "KEYWORD: resume"
  with single "resume" argument.

  Working example is the port sysutils/cpupdate that defines
  extra_commands="resume" to reload CPU microcode cleared
  by suspend/resume sequence.

  This change does nothing for a system having no scripts with
  KEYWORD: resume.

PR:			227866
Differential Revision:	https://reviews.freebsd.org/D15247
2018-11-26 13:30:00 +00:00
Eugene Grosbein
4a18c56d33 MFC r339816: mount_msdosfs
mount_msdosfs: do not fail mounts requiring locale name conversion table
  that is already present in a kernel statically.

  For example, the command "mount_msdosfs -L ru_RU.KOI8-R" fails with error
  "mount_msdosfs: msdosfs_iconv: File exists" for a kernel having
  options LIBICONV and MSDOSFS_ICONV. After this change, it mounts
  successfully.

MFC after:		1 month
Differential Revision:	https://reviews.freebsd.org/D16951
2018-11-26 11:22:04 +00:00