24 Aug, 2020

1 commit


22 Aug, 2020

1 commit

  • Pull ext4 updates from Ted Ts'o:
    "Improvements to ext4's block allocator performance for very large file
    systems, especially when the file system or files which are highly
    fragmented. There is a new mount option, prefetch_block_bitmaps which
    will pull in the block bitmaps and set up the in-memory buddy bitmaps
    when the file system is initially mounted.

    Beyond that, a lot of bug fixes and cleanups. In particular, a number
    of changes to make ext4 more robust in the face of write errors or
    file system corruptions"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (46 commits)
    ext4: limit the length of per-inode prealloc list
    ext4: reorganize if statement of ext4_mb_release_context()
    ext4: add mb_debug logging when there are lost chunks
    ext4: Fix comment typo "the the".
    jbd2: clean up checksum verification in do_one_pass()
    ext4: change to use fallthrough macro
    ext4: remove unused parameter of ext4_generic_delete_entry function
    mballoc: replace seq_printf with seq_puts
    ext4: optimize the implementation of ext4_mb_good_group()
    ext4: delete invalid comments near ext4_mb_check_limits()
    ext4: fix typos in ext4_mb_regular_allocator() comment
    ext4: fix checking of directory entry validity for inline directories
    fs: prevent BUG_ON in submit_bh_wbc()
    ext4: correctly restore system zone info when remount fails
    ext4: handle add_system_zone() failure in ext4_setup_system_zone()
    ext4: fold ext4_data_block_valid_rcu() into the caller
    ext4: check journal inode extents more carefully
    ext4: don't allow overlapping system zones
    ext4: handle error of ext4_setup_system_zone() on remount
    ext4: delete the invalid BUGON in ext4_mb_load_buddy_gfp()
    ...

    Linus Torvalds
     

19 Aug, 2020

1 commit


09 Jul, 2020

1 commit

  • Wire up ext4 to support inline encryption via the helper functions which
    fs/crypto/ now provides. This includes:

    - Adding a mount option 'inlinecrypt' which enables inline encryption
    on encrypted files where it can be used.

    - Setting the bio_crypt_ctx on bios that will be submitted to an
    inline-encrypted file.

    Note: submit_bh_wbc() in fs/buffer.c also needed to be patched for
    this part, since ext4 sometimes uses ll_rw_block() on file data.

    - Not adding logically discontiguous data to bios that will be submitted
    to an inline-encrypted file.

    - Not doing filesystem-layer crypto on inline-encrypted files.

    Co-developed-by: Satya Tangirala
    Signed-off-by: Satya Tangirala
    Reviewed-by: Theodore Ts'o
    Link: https://lore.kernel.org/r/20200702015607.1215430-5-satyat@google.com
    Signed-off-by: Eric Biggers

    Eric Biggers
     

18 Jun, 2020

1 commit

  • The block layer patches for inline encryption are now in upstream, so
    update Android to the upstream version of inline encryption. The
    fscrypt/f2fs/ext4 patches are also updated to the latest version sent
    upstream (since they can't be updated separately from the block layer
    patches).

    Changes v6 => v7:
    - Keyslot management is now done on a per-request basis rather than a
    per-bio basis.
    - Storage drivers can now specify the maximum number of bytes they
    can accept for the data unit number (DUN) for each crypto algorithm,
    and upper layers can specify the minimum number of bytes of DUN they
    want with the blk_crypto_key they send with the bio - a driver is
    only considered to support a blk_crypto_key if the driver supports at
    least as many DUN bytes as the upper layer wants. This is necessary
    because storage drivers may not support as many bytes as the
    algorithm specification dictates (for e.g. UFS only supports 8 byte
    DUNs for AES-256-XTS, even though the algorithm specification
    says DUNs are 16 bytes long).
    - Introduce SB_INLINECRYPT to keep track of whether inline encryption
    is enabled for a filesystem (instead of using an fscrypt_operation).
    - Expose keyslot manager declaration and embed it within ufs_hba to
    clean up code.
    - Make blk-crypto preclude blk-integrity.
    - Some bug fixes
    - Introduce UFSHCD_QUIRK_BROKEN_CRYPTO for UFS drivers that don't
    support inline encryption (yet)

    Changes v7 => v8:
    - Pass a struct blk_ksm_keyslot * around instead of slot numbers which
    simplifies some functions and passes around arguments with better types
    - Make bios with no encryption context avoid making calls into blk-crypto
    by checking for the presence of bi_crypt_context before making the call
    - Make blk-integrity preclude inline encryption support at probe time
    - Many many cleanups

    Changes v8 => v9:
    - Don't open code bio_has_crypt_ctx into callers of blk-crypto functions.
    - Lots of cleanups

    Changes v9 => v10:
    - Incorporate Eric's fix for allowing en/decryption to happen as usual via
    fscrypt in the case that hardware doesn't support the desired crypto
    configuration, but blk-crypto-fallback is disabled. (Introduce
    struct blk_crypto_config and blk_crypto_config_supported for fscrypt
    to call, to check that either blk-crypto-fallback is enabled or the
    device supports the crypto configuration).
    - Update docs
    - Lots of cleanups

    Changes v10 => v11:
    - We now allocate a new bio_crypt_ctx for each request instead of
    pulling and reusing the one in the bio inserted into the request. The
    bio_crypt_ctx of a bio is freed after the bio is ended.
    - Make each blk_ksm_keyslot store a pointer to the blk_crypto_key
    instead of a copy of the blk_crypto_key, so that each blk_crypto_key
    will have its own keyslot. We also won't need to compute the siphash
    for a blk_crypto_key anymore.
    - Minor cleanups

    Changes v11 => v12:
    - Inlined some fscrypt functions
    - Minor cleanups and improved comments

    Changes v12 => v13:
    - Updated docs
    - Minor cleanups
    - rebased onto linux-block/for-next

    Changes v13 => fscrypt/f2fs/ext4 upstream patch series
    - rename struct fscrypt_info::ci_key to ci_enc_key
    - set dun bytes more precisely in fscrypt
    - cleanups

    Bug: 137270441
    Test: Test cuttlefish boots both with and without inlinecrypt mount
    option specified in fstab, while using both F2FS and EXT4 for
    userdata.img. Also verified ciphertext via
    "atest -v vts_kernel_encryption_test"
    Also tested by running gce-xfstests on both the
    auto and encrypt test groups on EXT4 and F2FS both with and
    without the inlinecrypt mount option. The UFS changes were
    tested on a Pixel 4 device.
    Link: https://lore.kernel.org/linux-block/20200514003727.69001-1-satyat@google.com/
    Link: https://lore.kernel.org/linux-fscrypt/20200617075732.213198-1-satyat@google.com/
    Link: https://lore.kernel.org/linux-scsi/20200617081841.218985-1-satyat@google.com/
    Change-Id: I57c10d370bf006c9dfcf173f21a720413017761e
    Signed-off-by: Satya Tangirala
    Signed-off-by: Eric Biggers

    Satya Tangirala
     

12 Jun, 2020

1 commit


03 Jun, 2020

2 commits

  • This function now only uses the mapping argument to look up the inode, and
    both callers already have the inode, so just pass the inode instead of the
    mapping.

    Signed-off-by: Matthew Wilcox (Oracle)
    Signed-off-by: Andrew Morton
    Reviewed-by: William Kucharski
    Reviewed-by: Eric Biggers
    Cc: Chao Yu
    Cc: Christoph Hellwig
    Cc: Cong Wang
    Cc: Darrick J. Wong
    Cc: Dave Chinner
    Cc: Gao Xiang
    Cc: Jaegeuk Kim
    Cc: John Hubbard
    Cc: Joseph Qi
    Cc: Junxiao Bi
    Cc: Michal Hocko
    Cc: Zi Yan
    Cc: Johannes Thumshirn
    Cc: Miklos Szeredi
    Link: http://lkml.kernel.org/r/20200414150233.24495-22-willy@infradead.org
    Signed-off-by: Linus Torvalds

    Matthew Wilcox (Oracle)
     
  • Use the new readahead operation in ext4

    Signed-off-by: Matthew Wilcox (Oracle)
    Signed-off-by: Andrew Morton
    Reviewed-by: William Kucharski
    Reviewed-by: Eric Biggers
    Cc: Chao Yu
    Cc: Christoph Hellwig
    Cc: Cong Wang
    Cc: Darrick J. Wong
    Cc: Dave Chinner
    Cc: Gao Xiang
    Cc: Jaegeuk Kim
    Cc: John Hubbard
    Cc: Joseph Qi
    Cc: Junxiao Bi
    Cc: Michal Hocko
    Cc: Zi Yan
    Cc: Johannes Thumshirn
    Cc: Miklos Szeredi
    Link: http://lkml.kernel.org/r/20200414150233.24495-21-willy@infradead.org
    Signed-off-by: Linus Torvalds

    Matthew Wilcox (Oracle)
     

07 Feb, 2020

1 commit


18 Jan, 2020

2 commits

  • Since allocating an object from a mempool never fails when
    __GFP_DIRECT_RECLAIM (which is included in GFP_NOFS) is set, the check
    for failure to allocate a bio_post_read_ctx is unnecessary. Remove it.

    Also remove the redundant assignment to ->bi_private.

    Signed-off-by: Eric Biggers
    Link: https://lore.kernel.org/r/20191231181256.47770-1-ebiggers@kernel.org
    Signed-off-by: Theodore Ts'o

    Eric Biggers
     
  • Without any form of coordination, any case where multiple allocations
    from the same mempool are needed at a time to make forward progress can
    deadlock under memory pressure.

    This is the case for struct bio_post_read_ctx, as one can be allocated
    to decrypt a Merkle tree page during fsverity_verify_bio(), which itself
    is running from a post-read callback for a data bio which has its own
    struct bio_post_read_ctx.

    Fix this by freeing the first bio_post_read_ctx before calling
    fsverity_verify_bio(). This works because verity (if enabled) is always
    the last post-read step.

    This deadlock can be reproduced by trying to read from an encrypted
    verity file after reducing NUM_PREALLOC_POST_READ_CTXS to 1 and patching
    mempool_alloc() to pretend that pool->alloc() always fails.

    Note that since NUM_PREALLOC_POST_READ_CTXS is actually 128, to actually
    hit this bug in practice would require reading from lots of encrypted
    verity files at the same time. But it's theoretically possible, as N
    available objects isn't enough to guarantee forward progress when > N/2
    threads each need 2 objects at a time.

    Fixes: 22cfe4b48ccb ("ext4: add fs-verity read support")
    Signed-off-by: Eric Biggers
    Link: https://lore.kernel.org/r/20191231181222.47684-1-ebiggers@kernel.org
    Signed-off-by: Theodore Ts'o

    Eric Biggers
     

13 Jan, 2020

1 commit

  • Changes v5 => v6:
    - Blk-crypto's kernel crypto API fallback is no longer restricted to
    8-byte DUNs. It's also now separately configurable from blk-crypto, and
    can be disabled entirely, while still allowing the kernel to use inline
    encryption hardware. Further, struct bio_crypt_ctx takes up less space,
    and no longer contains the information needed by the crypto API
    fallback - the fallback allocates the required memory when necessary.
    - Blk-crypto now supports all file content encryption modes supported by
    fscrypt.
    - Fixed bio merging logic in blk-merge.c
    - Fscrypt now supports inline encryption with the direct key policy, since
    blk-crypto now has support for larger DUNs.
    - Keyslot manager now uses a hashtable to lookup which keyslot contains
    any particular key (thanks Eric!)
    - Fscrypt support for inline encryption now handles filesystems with
    multiple underlying block devices (thanks Eric!)
    - Numerous cleanups

    Bug: 137270441
    Test: refer to I26376479ee38259b8c35732cb3a1d7e15f9b05a3
    Change-Id: I13e2e327e0b4784b394cb1e7cf32a04856d95f01
    Link: https://lore.kernel.org/linux-block/20191218145136.172774-1-satyat@google.com/
    Signed-off-by: Satya Tangirala

    Satya Tangirala
     

09 Dec, 2019

1 commit


15 Nov, 2019

1 commit

  • Similar to [1] [2], bio_alloc with __GFP_DIRECT_RECLAIM flags
    guarantees bio allocation under some given restrictions, as
    stated in block/bio.c and fs/direct-io.c So here it's ok to
    not check for NULL value from bio_alloc().

    [1] https://lore.kernel.org/r/20191030035518.65477-1-gaoxiang25@huawei.com
    [2] https://lore.kernel.org/r/20190830162812.GA10694@infradead.org
    Cc: Theodore Ts'o
    Cc: Andreas Dilger
    Cc: Ritesh Harjani
    Reviewed-by: Chao Yu
    Signed-off-by: Gao Xiang
    Link: https://lore.kernel.org/r/20191031092315.139267-1-gaoxiang25@huawei.com
    Signed-off-by: Theodore Ts'o

    Gao Xiang
     

31 Oct, 2019

1 commit

  • Wire up ext4 to support inline encryption via the helper functions which
    fs/crypto/ now provides. This includes:

    - Adding a mount option 'inlinecrypt' which enables inline encryption
    on encrypted files where it can be used.

    - Setting the bio_crypt_ctx on bios that will be submitted to an
    inline-encrypted file.

    Note: submit_bh_wbc() in fs/buffer.c also needed to be patched for
    this part, since ext4 sometimes uses ll_rw_block() on file data.

    - Not adding logically discontiguous data to bios that will be submitted
    to an inline-encrypted file.

    - Not doing filesystem-layer crypto on inline-encrypted files.

    Bug: 137270441
    Test: tested as series; see Ie1b77f7615d6a7a60fdc9105c7ab2200d17636a8
    Change-Id: I73dac46ff1eba56a13975c387b20554416ddbad8
    Signed-off-by: Eric Biggers
    Signed-off-by: Satya Tangirala
    Link: https://patchwork.kernel.org/patch/11214781/

    Eric Biggers
     

21 Sep, 2019

1 commit

  • This merges Linus's tree as of commit b41dae061bbd ("Merge tag
    'xfs-5.4-merge-7' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux")
    into android-mainline.

    This "early" merge makes it easier to test and handle merge conflicts
    instead of having to wait until the "end" of the merge window and handle
    all 10000+ commits at once.

    Signed-off-by: Greg Kroah-Hartman
    Change-Id: I6bebf55e5e2353f814e3c87f5033607b1ae5d812

    Greg Kroah-Hartman
     

13 Aug, 2019

1 commit

  • Make ext4_mpage_readpages() verify data as it is read from fs-verity
    files, using the helper functions from fs/verity/.

    To support both encryption and verity simultaneously, this required
    refactoring the decryption workflow into a generic "post-read
    processing" workflow which can do decryption, verification, or both.

    The case where the ext4 block size is not equal to the PAGE_SIZE is not
    supported yet, since in that case ext4_mpage_readpages() sometimes falls
    back to block_read_full_page(), which does not support fs-verity yet.

    Co-developed-by: Theodore Ts'o
    Signed-off-by: Theodore Ts'o
    Signed-off-by: Eric Biggers

    Eric Biggers
     

21 May, 2019

1 commit


08 May, 2019

2 commits

  • Pull fscrypt updates from Ted Ts'o:
    "Clean up fscrypt's dcache revalidation support, and other
    miscellaneous cleanups"

    * tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
    fscrypt: cache decrypted symlink target in ->i_link
    vfs: use READ_ONCE() to access ->i_link
    fscrypt: fix race where ->lookup() marks plaintext dentry as ciphertext
    fscrypt: only set dentry_operations on ciphertext dentries
    fs, fscrypt: clear DCACHE_ENCRYPTED_NAME when unaliasing directory
    fscrypt: fix race allowing rename() and link() of ciphertext dentries
    fscrypt: clean up and improve dentry revalidation
    fscrypt: use READ_ONCE() to access ->i_crypt_info
    fscrypt: remove WARN_ON_ONCE() when decryption fails
    fscrypt: drop inode argument from fscrypt_get_ctx()

    Linus Torvalds
     
  • Pull ext4 updates from Ted Ts'o:
    "Add as a feature case-insensitive directories (the casefold feature)
    using Unicode 12.1.

    Also, the usual largish number of cleanups and bug fixes"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (25 commits)
    ext4: export /sys/fs/ext4/feature/casefold if Unicode support is present
    ext4: fix ext4_show_options for file systems w/o journal
    unicode: refactor the rule for regenerating utf8data.h
    docs: ext4.rst: document case-insensitive directories
    ext4: Support case-insensitive file name lookups
    ext4: include charset encoding information in the superblock
    MAINTAINERS: add Unicode subsystem entry
    unicode: update unicode database unicode version 12.1.0
    unicode: introduce test module for normalized utf8 implementation
    unicode: implement higher level API for string handling
    unicode: reduce the size of utf8data[]
    unicode: introduce code for UTF-8 normalization
    unicode: introduce UTF-8 character database
    ext4: actually request zeroing of inode table after grow
    ext4: cond_resched in work-heavy group loops
    ext4: fix use-after-free race with debug_want_extra_isize
    ext4: avoid drop reference to iloc.bh twice
    ext4: ignore e_value_offs for xattrs with value-in-ea-inode
    ext4: protect journal inode's blocks using block_validity
    ext4: use BUG() instead of BUG_ON(1)
    ...

    Linus Torvalds
     

04 May, 2019

2 commits

  • Change-Id: I4380c68c3474026a42ffa9f95c525f9a563ba7a3

    Todd Kjos
     
  • Adds tracepoints in ext4/f2fs/mpage to track readpages/buffered
    write()s. This allows us to track files that are being read/written
    to PIDs.

    Bug: 120445624
    Change-Id: I44476230324e9397e292328463f846af4befbd6d
    [joelaf: Needed for storaged fsync accounting ("storaged --uid" and
    "storaged --task".)]
    Signed-off-by: Mohan Srinivasan
    [AmitP: Folded following android-4.9 commit changes into this patch
    a5c4dbb05ab7 ("ANDROID: Replace spaces by '_' for some
    android filesystem tracepoints.")]
    Signed-off-by: Amit Pundir
    [astrachan: Folded 63066f4acf92 ("ANDROID: fs: Refactor FS
    readpage/write tracepoints.") into this patch
    Signed-off-by: Alistair Strachan

    Mohan Srinivasan
     

30 Apr, 2019

1 commit


17 Apr, 2019

1 commit

  • The only reason the inode is being passed to fscrypt_get_ctx() is to
    verify that the encryption key is available. However, all callers
    already ensure this because if we get as far as trying to do I/O to an
    encrypted file without the key, there's already a bug.

    Therefore, remove this unnecessary argument.

    Signed-off-by: Eric Biggers
    Signed-off-by: Theodore Ts'o

    Eric Biggers
     

07 Apr, 2019

1 commit

  • In ext4_mpage_readpages(), if the parameter pages is not NULL, another
    parameter page is NULL. At the first time prefetchw(&page->flags)
    works on NULL. From second time, prefetchw(&page->flags) always works on
    the last consumed page. This might do little improvment for handling
    current page. So prefetchw() should be called while the page pointer
    has just been updated.

    Signed-off-by: Liu Xiang
    Signed-off-by: Theodore Ts'o

    Liu Xiang
     

10 Mar, 2019

1 commit

  • Pull fscrypt updates from Eric Biggers:
    "First: Ted, Jaegeuk, and I have decided to add me as a co-maintainer
    for fscrypt, and we're now using a shared git tree. So we've updated
    MAINTAINERS accordingly, and I'm doing the pull request this time.

    The actual changes for v5.1 are:

    - Remove the fs-specific kconfig options like CONFIG_EXT4_ENCRYPTION
    and make fscrypt support for all fscrypt-capable filesystems be
    controlled by CONFIG_FS_ENCRYPTION, similar to how CONFIG_QUOTA
    works.

    - Improve error code for rename() and link() into encrypted
    directories.

    - Various cleanups"

    * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
    MAINTAINERS: add Eric Biggers as an fscrypt maintainer
    fscrypt: return -EXDEV for incompatible rename or link into encrypted dir
    fscrypt: remove filesystem specific build config option
    f2fs: use IS_ENCRYPTED() to check encryption status
    ext4: use IS_ENCRYPTED() to check encryption status
    fscrypt: remove CRYPTO_CTR dependency

    Linus Torvalds
     

15 Feb, 2019

1 commit

  • This patch introduces one extra iterator variable to bio_for_each_segment_all(),
    then we can allow bio_for_each_segment_all() to iterate over multi-page bvec.

    Given it is just one mechannical & simple change on all bio_for_each_segment_all()
    users, this patch does tree-wide change in one single patch, so that we can
    avoid to use a temporary helper for this conversion.

    Reviewed-by: Omar Sandoval
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     

24 Jan, 2019

2 commits

  • In order to have a common code base for fscrypt "post read" processing
    for all filesystems which support encryption, this commit removes
    filesystem specific build config option (e.g. CONFIG_EXT4_FS_ENCRYPTION)
    and replaces it with a build option (i.e. CONFIG_FS_ENCRYPTION) whose
    value affects all the filesystems making use of fscrypt.

    Reviewed-by: Eric Biggers
    Signed-off-by: Chandan Rajendra
    Signed-off-by: Eric Biggers

    Chandan Rajendra
     
  • This commit removes the ext4 specific ext4_encrypted_inode() and makes
    use of the generic IS_ENCRYPTED() macro to check for the encryption
    status of an inode.

    Reviewed-by: Eric Biggers
    Signed-off-by: Chandan Rajendra
    Signed-off-by: Eric Biggers

    Chandan Rajendra
     

05 Jan, 2019

1 commit

  • Multiple filesystems open code lru_to_page(). Rectify this by moving
    the macro from mm_inline (which is specific to lru stuff) to the more
    generic mm.h header and start using the macro where appropriate.

    No functional changes.

    Link: http://lkml.kernel.org/r/20181129104810.23361-1-nborisov@suse.com
    Link: https://lkml.kernel.org/r/20181129075301.29087-1-nborisov@suse.com
    Signed-off-by: Nikolay Borisov
    Acked-by: Michal Hocko
    Reviewed-by: David Hildenbrand
    Reviewed-by: Mike Rapoport
    Acked-by: Pankaj gupta
    Acked-by: "Yan, Zheng" [ceph]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nikolay Borisov
     

18 Aug, 2018

1 commit

  • a_ops->readpages() is only ever used for read-ahead. Ensure that we
    pass this information down to the block layer.

    Link: http://lkml.kernel.org/r/20180621010725.17813-5-axboe@kernel.dk
    Signed-off-by: Jens Axboe
    Reviewed-by: Andrew Morton
    Cc: Al Viro
    Cc: Chris Mason
    Cc: Christoph Hellwig
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jens Axboe
     

03 May, 2018

1 commit

  • Currently, fscrypt provides fscrypt_decrypt_bio_pages() which decrypts a
    bio's pages asynchronously, then unlocks them afterwards. But, this
    assumes that decryption is the last "postprocessing step" for the bio,
    so it's incompatible with additional postprocessing steps such as
    authenticity verification after decryption.

    Therefore, rename the existing fscrypt_decrypt_bio_pages() to
    fscrypt_enqueue_decrypt_bio(). Then, add fscrypt_decrypt_bio() which
    decrypts the pages in the bio synchronously without unlocking the pages,
    nor setting them Uptodate; and add fscrypt_enqueue_decrypt_work(), which
    enqueues work on the fscrypt_read_workqueue. The new functions will be
    used by filesystems that support both fscrypt and fs-verity.

    Signed-off-by: Eric Biggers
    Signed-off-by: Jaegeuk Kim

    Eric Biggers
     

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
     

24 Aug, 2017

1 commit

  • This way we don't need a block_device structure to submit I/O. The
    block_device has different life time rules from the gendisk and
    request_queue and is usually only available when the block device node
    is open. Other callers need to explicitly create one (e.g. the lightnvm
    passthrough code, or the new nvme multipathing code).

    For the actual I/O path all that we need is the gendisk, which exists
    once per block device. But given that the block layer also does
    partition remapping we additionally need a partition index, which is
    used for said remapping in generic_make_request.

    Note that all the block drivers generally want request_queue or
    sometimes the gendisk, so this removes a layer of indirection all
    over the stack.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

09 Jun, 2017

1 commit

  • Replace bi_error with a new bi_status to allow for a clear conversion.
    Note that device mapper overloaded bi_error with a private value, which
    we'll have to keep arround at least for now and thus propagate to a
    proper blk_status_t value.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

27 Jul, 2016

3 commits

  • Merge updates from Andrew Morton:

    - a few misc bits

    - ocfs2

    - most(?) of MM

    * emailed patches from Andrew Morton : (125 commits)
    thp: fix comments of __pmd_trans_huge_lock()
    cgroup: remove unnecessary 0 check from css_from_id()
    cgroup: fix idr leak for the first cgroup root
    mm: memcontrol: fix documentation for compound parameter
    mm: memcontrol: remove BUG_ON in uncharge_list
    mm: fix build warnings in
    mm, thp: convert from optimistic swapin collapsing to conservative
    mm, thp: fix comment inconsistency for swapin readahead functions
    thp: update Documentation/{vm/transhuge,filesystems/proc}.txt
    shmem: split huge pages beyond i_size under memory pressure
    thp: introduce CONFIG_TRANSPARENT_HUGE_PAGECACHE
    khugepaged: add support of collapse for tmpfs/shmem pages
    shmem: make shmem_inode_info::lock irq-safe
    khugepaged: move up_read(mmap_sem) out of khugepaged_alloc_page()
    thp: extract khugepaged from mm/huge_memory.c
    shmem, thp: respect MADV_{NO,}HUGEPAGE for file mappings
    shmem: add huge pages support
    shmem: get_unmapped_area align huge page
    shmem: prepare huge= mount option and sysfs knob
    mm, rmap: account shmem thp pages
    ...

    Linus Torvalds
     
  • Pull ext4 updates from Ted Ts'o:
    "The major change this cycle is deleting ext4's copy of the file system
    encryption code and switching things over to using the copies in
    fs/crypto. I've updated the MAINTAINERS file to add an entry for
    fs/crypto listing Jaeguk Kim and myself as the maintainers.

    There are also a number of bug fixes, most notably for some problems
    found by American Fuzzy Lop (AFL) courtesy of Vegard Nossum. Also
    fixed is a writeback deadlock detected by generic/130, and some
    potential races in the metadata checksum code"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (21 commits)
    ext4: verify extent header depth
    ext4: short-cut orphan cleanup on error
    ext4: fix reference counting bug on block allocation error
    MAINTAINRES: fs-crypto maintainers update
    ext4 crypto: migrate into vfs's crypto engine
    ext2: fix filesystem deadlock while reading corrupted xattr block
    ext4: fix project quota accounting without quota limits enabled
    ext4: validate s_reserved_gdt_blocks on mount
    ext4: remove unused page_idx
    ext4: don't call ext4_should_journal_data() on the journal inode
    ext4: Fix WARN_ON_ONCE in ext4_commit_super()
    ext4: fix deadlock during page writeback
    ext4: correct error value of function verifying dx checksum
    ext4: avoid modifying checksum fields directly during checksum verification
    ext4: check for extents that wrap around
    jbd2: make journal y2038 safe
    jbd2: track more dependencies on transaction commit
    jbd2: move lockdep tracking to journal_s
    jbd2: move lockdep instrumentation for jbd2 handles
    ext4: respect the nobarrier mount option in nojournal mode
    ...

    Linus Torvalds
     
  • Vladimir has noticed that we might declare memcg oom even during
    readahead because read_pages only uses GFP_KERNEL (with mapping_gfp
    restriction) while __do_page_cache_readahead uses
    page_cache_alloc_readahead which adds __GFP_NORETRY to prevent from
    OOMs. This gfp mask discrepancy is really unfortunate and easily
    fixable. Drop page_cache_alloc_readahead() which only has one user and
    outsource the gfp_mask logic into readahead_gfp_mask and propagate this
    mask from __do_page_cache_readahead down to read_pages.

    This alone would have only very limited impact as most filesystems are
    implementing ->readpages and the common implementation mpage_readpages
    does GFP_KERNEL (with mapping_gfp restriction) again. We can tell it to
    use readahead_gfp_mask instead as this function is called only during
    readahead as well. The same applies to read_cache_pages.

    ext4 has its own ext4_mpage_readpages but the path which has pages !=
    NULL can use the same gfp mask. Btrfs, cifs, f2fs and orangefs are
    doing a very similar pattern to mpage_readpages so the same can be
    applied to them as well.

    [akpm@linux-foundation.org: coding-style fixes]
    [mhocko@suse.com: restrict gfp mask in mpage_alloc]
    Link: http://lkml.kernel.org/r/20160610074223.GC32285@dhcp22.suse.cz
    Link: http://lkml.kernel.org/r/1465301556-26431-1-git-send-email-mhocko@kernel.org
    Signed-off-by: Michal Hocko
    Cc: Vladimir Davydov
    Cc: Chris Mason
    Cc: Steve French
    Cc: Theodore Ts'o
    Cc: Jan Kara
    Cc: Mike Marshall
    Cc: Jaegeuk Kim
    Cc: Changman Lee
    Cc: Chao Yu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     

11 Jul, 2016

1 commit


06 Jul, 2016

1 commit