Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 May 2017 09:53:17 -0500
From:      Pedro Giffuni <pfg@FreeBSD.org>
To:        Konstantin Belousov <kib@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r318736 - in head: cddl/lib/libzfs contrib/compiler-rt/lib/sanitizer_common contrib/openbsm/libbsm include lib/libarchive lib/libc/gen lib/libc/include lib/libc/sys lib/libkvm lib/libmi...
Message-ID:  <c3040c70-6fc4-ac91-a887-f63bf4656a8e@FreeBSD.org>
In-Reply-To: <201705230929.v4N9T5g1028124@repo.freebsd.org>

index | next in thread | previous in thread | raw e-mail

First of all, HUGE thanks to everyone involved in this project!


On 05/23/17 04:29, Konstantin Belousov wrote:
> Author: kib
> Date: Tue May 23 09:29:05 2017
> New Revision: 318736
> URL: https://svnweb.freebsd.org/changeset/base/318736
>
> Log:
>    Commit the 64-bit inode project.
>    
>    Extend the ino_t, dev_t, nlink_t types to 64-bit ints.  Modify
>    struct dirent layout to add d_off, increase the size of d_fileno
>    to 64-bits, increase the size of d_namlen to 16-bits, and change
>    the required alignment.  Increase struct statfs f_mntfromname[] and
>    f_mntonname[] array length MNAMELEN to 1024.
>    
>    ABI breakage is mitigated by providing compatibility using versioned
>    symbols, ingenious use of the existing padding in structures, and
>    by employing other tricks.  Unfortunately, not everything can be
>    fixed, especially outside the base system.  For instance, third-party
>    APIs which pass struct stat around are broken in backward and
>    forward incompatible ways.
>    
>    Kinfo sysctl MIBs ABI is changed in backward-compatible way, but
>    there is no general mechanism to handle other sysctl MIBS which
>    return structures where the layout has changed. It was considered
>    that the breakage is either in the management interfaces, where we
>    usually allow ABI slip, or is not important.
>    
>    Struct xvnode changed layout, no compat shims are provided.
>    
>    For struct xtty, dev_t tty device member was reduced to uint32_t.
>    It was decided that keeping ABI compat in this case is more useful
>    than reporting 64-bit dev_t, for the sake of pstat.
>    
>    Update note: strictly follow the instructions in UPDATING.  Build
>    and install the new kernel with COMPAT_FREEBSD11 option enabled,
>    then reboot, and only then install new world.
>    
>    Credits: The 64-bit inode project, also known as ino64, started life
>    many years ago as a project by Gleb Kurtsou (gleb).  Kirk McKusick
>    (mckusick) then picked up and updated the patch, and acted as a
>    flag-waver.  Feedback, suggestions, and discussions were carried
>    by Ed Maste (emaste), John Baldwin (jhb), Jilles Tjoelker (jilles),
>    and Rick Macklem (rmacklem).  Kris Moore (kris) performed an initial
>    ports investigation followed by an exp-run by Antoine Brodin (antoine).
>    Essential and all-embracing testing was done by Peter Holm (pho).
>    The heavy lifting of coordinating all these efforts and bringing the
>    project to completion were done by Konstantin Belousov (kib).
>    
>    Sponsored by:	The FreeBSD Foundation (emaste, kib)
>    Differential revision:	https://reviews.freebsd.org/D10439
>

There is now a bunch of coverity issues (OVERFLOW_BEFORE_WIDEN mostly)
tied to ino64_t. At least the following CIDs are related:

977071, 977072, 977073,  977094, 977095, 977096,
1375572, 1375573, 1375574, 1375575 1375576, 1375577,
1375578, 1375579, 1375580, 1375581, 1375582, 1375584.

It may take some time to shake up the issues but the change was
very necessary. Thanks again!

Pedro.




home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c3040c70-6fc4-ac91-a887-f63bf4656a8e>