lkml.org 
[lkml]   [2016]   [Jan]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.2 16/70] scripts: recordmcount: break hardlinks
    3.2.76-rc1 review patch.  If anyone has any objections, please let me know.

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

    From: Russell King <rmk+kernel@arm.linux.org.uk>

    commit dd39a26538e37f6c6131e829a4a510787e43c783 upstream.

    recordmcount edits the file in-place, which can cause problems when
    using ccache in hardlink mode. Arrange for recordmcount to break a
    hardlinked object.

    Link: http://lkml.kernel.org/r/E1a7MVT-0000et-62@rmk-PC.arm.linux.org.uk

    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    scripts/recordmcount.c | 14 ++++++++++++++
    1 file changed, 14 insertions(+)

    --- a/scripts/recordmcount.c
    +++ b/scripts/recordmcount.c
    @@ -182,6 +182,20 @@ static void *mmap_file(char const *fname
    addr = umalloc(sb.st_size);
    uread(fd_map, addr, sb.st_size);
    }
    + if (sb.st_nlink != 1) {
    + /* file is hard-linked, break the hard link */
    + close(fd_map);
    + if (unlink(fname) < 0) {
    + perror(fname);
    + fail_file();
    + }
    + fd_map = open(fname, O_RDWR | O_CREAT, sb.st_mode);
    + if (fd_map < 0) {
    + perror(fname);
    + fail_file();
    + }
    + uwrite(fd_map, addr, sb.st_size);
    + }
    return addr;
    }


    \
     
     \ /
      Last update: 2016-01-18 05:01    [W:2.810 / U:0.172 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site