02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

27 Apr, 2017

1 commit


13 Oct, 2012

1 commit


15 Mar, 2011

1 commit

  • For name_to_handle_at(2) we'll want both ...at()-style syscall that
    would be usable for non-directory descriptors (with empty relative
    pathname). Introduce new flag (AT_EMPTY_PATH) to deal with that and
    corresponding LOOKUP_EMPTY; teach user_path_at() and path_init() to
    deal with the latter.

    Signed-off-by: Al Viro

    Al Viro
     

16 Jan, 2011

1 commit

  • Add an AT_NO_AUTOMOUNT flag to suppress terminal automounting of automount
    point directories. This can be used by fstatat() users to permit the
    gathering of attributes on an automount point and also prevent
    mass-automounting of a directory of automount points by ls.

    Signed-off-by: David Howells
    Acked-by: Ian Kent
    Signed-off-by: Al Viro

    David Howells
     

22 May, 2010

1 commit


17 Oct, 2007

1 commit

  • One more small change to extend the availability of creation of file
    descriptors with FD_CLOEXEC set. Adding a new command to fcntl() requires
    no new system call and the overall impact on code size if minimal.

    If this patch gets accepted we will also add this change to the next
    revision of the POSIX spec.

    To test the patch, use the following little program. Adjust the value of
    F_DUPFD_CLOEXEC appropriately.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #include
    #include
    #include
    #include
    #include

    #ifndef F_DUPFD_CLOEXEC
    # define F_DUPFD_CLOEXEC 12
    #endif

    int
    main (int argc, char *argv[])
    {
    if (argc > 1)
    {
    if (fcntl (3, F_GETFD) == 0)
    {
    puts ("descriptor not closed");
    exit (1);
    }
    if (errno != EBADF)
    {
    puts ("error not EBADF");
    exit (1);
    }

    exit (0);
    }
    int fd = fcntl (STDOUT_FILENO, F_DUPFD_CLOEXEC, 0);
    if (fd == -1 && errno == EINVAL)
    {
    puts ("F_DUPFD_CLOEXEC not supported");
    return 0;
    }
    if (fd != 3)
    {
    puts ("program called with descriptors other than 0,1,2");
    return 1;
    }

    execl ("/proc/self/exe", "/proc/self/exe", "1", NULL);
    puts ("execl failed");
    return 1;
    }
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Signed-off-by: Ulrich Drepper
    Cc: Al Viro
    Cc: Christoph Hellwig
    Cc:
    Cc: Kyle McMartin
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ulrich Drepper
     

07 May, 2007

1 commit

  • Lock managers need to be able to cancel pending lock requests. In the case
    where the exported filesystem manages its own locks, it's not sufficient just
    to call posix_unblock_lock(); we need to let the filesystem know what's
    happening too.

    We do this by adding a new fcntl lock command: FL_CANCELLK. Some day this
    might also be made available to userspace applications that could benefit from
    an asynchronous locking api.

    Signed-off-by: Marc Eshel
    Signed-off-by: "J. Bruce Fields"

    Marc Eshel
     

26 Jun, 2006

1 commit

  • When the linkat() syscall was added the flag parameter was added in the
    last minute but it wasn't used so far. The following patch should change
    that. My tests show that this is all that's needed.

    If OLDNAME is a symlink setting the flag causes linkat to follow the
    symlink and create a hardlink with the target. This is actually the
    behavior POSIX demands for link() as well but Linux wisely does not do
    this. With this flag (which will most likely be in the next POSIX
    revision) the programmer can choose the behavior, defaulting to the safe
    variant. As a side effect it is now possible to implement a
    POSIX-compliant link(2) function for those who are interested.

    touch file
    ln -s file symlink

    linkat(fd, "symlink", fd, "newlink", 0)
    -> newlink is hardlink of symlink

    linkat(fd, "symlink", fd, "newlink", AT_SYMLINK_FOLLOW)
    -> newlink is hardlink of file

    The value of AT_SYMLINK_FOLLOW is determined by the definition we already
    use in glibc.

    Signed-off-by: Ulrich Drepper
    Acked-by: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ulrich Drepper
     

19 Jan, 2006

1 commit

  • Here is a series of patches which introduce in total 13 new system calls
    which take a file descriptor/filename pair instead of a single file
    name. These functions, openat etc, have been discussed on numerous
    occasions. They are needed to implement race-free filesystem traversal,
    they are necessary to implement a virtual per-thread current working
    directory (think multi-threaded backup software), etc.

    We have in glibc today implementations of the interfaces which use the
    /proc/self/fd magic. But this code is rather expensive. Here are some
    results (similar to what Jim Meyering posted before).

    The test creates a deep directory hierarchy on a tmpfs filesystem. Then
    rm -fr is used to remove all directories. Without syscall support I get
    this:

    real 0m31.921s
    user 0m0.688s
    sys 0m31.234s

    With syscall support the results are much better:

    real 0m20.699s
    user 0m0.536s
    sys 0m20.149s

    The interfaces are for obvious reasons currently not much used. But they'll
    be used. coreutils (and Jeff's posixutils) are already using them.
    Furthermore, code like ftw/fts in libc (maybe even glob) will also start using
    them. I expect a patch to make follow soon. Every program which is walking
    the filesystem tree will benefit.

    Signed-off-by: Ulrich Drepper
    Signed-off-by: Alexey Dobriyan
    Cc: Christoph Hellwig
    Cc: Al Viro
    Acked-by: Ingo Molnar
    Cc: Michael Kerrisk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ulrich Drepper
     

24 Jun, 2005

1 commit

  • In ia64 kernel, the O_LARGEFILE flag is forced when opening a file. This
    is problematic for execution of 32 bit processes, which are not largefile
    aware, either by SW emulation or by HW execution.

    For such processes, the problem is two-fold:

    1) When trying to open a file that is larger than 4G
    the operation should fail, but it's not
    2) Writing to offset larger than 4G should fail, but
    it's not

    The proposed patch takes advantage of the way 32 bit processes are
    identified in ia64 systems. Such processes have PER_LINUX32 for their
    personality. With the patch, the ia64 kernel will not enforce the
    O_LARGEFILE flag if the current process has PER_LINUX32 set. The behavior
    for all other architectures remains unchanged.

    Signed-off-by: Yoav Zach
    Acked-by: Tony Luck
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yoav Zach
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds