16 Jun, 2020

1 commit

  • There is a regular need in the kernel to provide a way to declare having a
    dynamically sized set of trailing elements in a structure. Kernel code should
    always use “flexible array members”[1] for these cases. The older style of
    one-element or zero-length arrays should no longer be used[2].

    [1] https://en.wikipedia.org/wiki/Flexible_array_member
    [2] https://github.com/KSPP/linux/issues/21

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     

24 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 or at your option any
    later version this program is distributed in the hope that it will
    be useful but without any warranty without even the implied warranty
    of merchantability or fitness for a particular purpose see the gnu
    general public license for more details you should have received a
    copy of the gnu general public license along with this program if
    not write to the free software foundation 51 franklin street fifth
    floor boston ma 02110 1301 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 23 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190520170857.458548087@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

30 Jul, 2018

1 commit

  • Anatoly Trosinenko reports that a corrupted squashfs image can cause a
    kernel oops. It turns out that squashfs can end up being confused about
    negative fragment lengths.

    The regular squashfs_read_data() does check for negative lengths, but
    squashfs_read_metadata() did not, and the fragment size code just
    blindly trusted the on-disk value. Fix both the fragment parsing and
    the metadata reading code.

    Reported-by: Anatoly Trosinenko
    Cc: Al Viro
    Cc: Phillip Lougher
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

09 Sep, 2017

1 commit

  • Add zstd compression and decompression support to SquashFS. zstd is a
    great fit for SquashFS because it can compress at ratios approaching xz,
    while decompressing twice as fast as zlib. For SquashFS in particular,
    it can decompress as fast as lzo and lz4. It also has the flexibility
    to turn down the compression ratio for faster compression times.

    The compression benchmark is run on the file tree from the SquashFS archive
    found in ubuntu-16.10-desktop-amd64.iso [1]. It uses `mksquashfs` with the
    default block size (128 KB) and and various compression algorithms/levels.
    xz and zstd are also benchmarked with 256 KB blocks. The decompression
    benchmark times how long it takes to `tar` the file tree into `/dev/null`.
    See the benchmark file in the upstream zstd source repository located under
    `contrib/linux-kernel/squashfs-benchmark.sh` [2] for details.

    I ran the benchmarks on a Ubuntu 14.04 VM with 2 cores and 4 GiB of RAM.
    The VM is running on a MacBook Pro with a 3.1 GHz Intel Core i7 processor,
    16 GB of RAM, and a SSD.

    | Method | Ratio | Compression MB/s | Decompression MB/s |
    |----------------|-------|------------------|--------------------|
    | gzip | 2.92 | 15 | 128 |
    | lzo | 2.64 | 9.5 | 217 |
    | lz4 | 2.12 | 94 | 218 |
    | xz | 3.43 | 5.5 | 35 |
    | xz 256 KB | 3.53 | 5.4 | 40 |
    | zstd 1 | 2.71 | 96 | 210 |
    | zstd 5 | 2.93 | 69 | 198 |
    | zstd 10 | 3.01 | 41 | 225 |
    | zstd 15 | 3.13 | 11.4 | 224 |
    | zstd 16 256 KB | 3.24 | 8.1 | 210 |

    This patch was written by Sean Purcell , but I will be
    taking over the submission process.

    [1] http://releases.ubuntu.com/16.10/
    [2] https://github.com/facebook/zstd/blob/dev/contrib/linux-kernel/squashfs-benchmark.sh

    zstd source repository: https://github.com/facebook/zstd

    Signed-off-by: Sean Purcell
    Signed-off-by: Nick Terrell
    Signed-off-by: Chris Mason
    Acked-by: Phillip Lougher

    Sean Purcell
     

27 Nov, 2014

1 commit


06 Sep, 2013

1 commit


10 Mar, 2012

2 commits


03 Nov, 2011

1 commit

  • This commit adds an option to set the device block size used to 4K.

    By default Squashfs sets the device block size (sb_min_blocksize) to 1K
    or the smallest block size supported by the block device (if larger).
    This, because blocks are packed together and unaligned in Squashfs,
    should reduce latency.

    This, however, gives poor performance on MTD NAND devices where
    the optimal I/O size is 4K (even though the devices can support
    smaller block sizes).

    Using a 4K device block size may also improve overall I/O
    performance for some file access patterns (e.g. sequential
    accesses of files in filesystem order) on all media.

    Signed-off-by: Phillip Lougher

    Phillip Lougher
     

26 May, 2011

1 commit


01 Mar, 2011

1 commit

  • Extend decompressor framework to handle compression options stored in
    the filesystem. These options can be used by the relevant decompressor
    at initialisation time to over-ride defaults.

    The presence of compression options in the filesystem is indicated by
    the COMP_OPT filesystem flag. If present the data is read from the
    filesystem and passed to the decompressor init function. The decompressor
    init function signature has been extended to take this data.

    Also update the init function signature in the glib, lzo and xz
    decompressor wrappers.

    Signed-off-by: Phillip Lougher

    Phillip Lougher
     

14 Jan, 2011

1 commit


09 Aug, 2010

1 commit


18 May, 2010

3 commits


05 Mar, 2010

1 commit


21 Jan, 2010

1 commit


16 Jan, 2009

1 commit


05 Jan, 2009

1 commit