lkml.org 
[lkml]   [2018]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 274/496] kbuild: make scripts/adjust_autoksyms.sh robust against timestamp races
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Nicolas Pitre <nicolas.pitre@linaro.org>

    [ Upstream commit 825d487583089f9a33d31650c9c41f6474aab7fc ]

    Some filesystems have timestamps with coarse precision that may allow
    for a recently built object file to have the same timestamp as the
    updated time on one of its dependency files. When that happens, the
    object file doesn't get rebuilt as it should.

    This is especially the case on filesystems that don't have sub-second
    time precision, such as ext3 or Ext4 with 128B inodes.

    Let's prevent that by making sure updated dependency files have a newer
    timestamp than the first file we created (i.e. autoksyms.h.tmpnew).

    Reported-by: Thomas Lindroth <thomas.lindroth@gmail.com>
    Signed-off-by: Nicolas Pitre <nico@linaro.org>
    Tested-by: Thomas Lindroth <thomas.lindroth@gmail.com>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    scripts/adjust_autoksyms.sh | 7 +++++++
    1 file changed, 7 insertions(+)

    --- a/scripts/adjust_autoksyms.sh
    +++ b/scripts/adjust_autoksyms.sh
    @@ -84,6 +84,13 @@ while read sympath; do
    depfile="include/config/ksym/${sympath}.h"
    mkdir -p "$(dirname "$depfile")"
    touch "$depfile"
    + # Filesystems with coarse time precision may create timestamps
    + # equal to the one from a file that was very recently built and that
    + # needs to be rebuild. Let's guard against that by making sure our
    + # dep files are always newer than the first file we created here.
    + while [ ! "$depfile" -nt "$new_ksyms_file" ]; do
    + touch "$depfile"
    + done
    echo $((count += 1))
    done | tail -1 )
    changed=${changed:-0}

    \
     
     \ /
      Last update: 2018-05-28 12:54    [W:4.024 / U:0.244 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site