Skip to content
Permalink
Jan-Kara/ext4-…
Switch branches/tags

Commits on Apr 12, 2021

  1. ext4: Fix overflow in ext4_iomap_alloc()

    A code in iomap alloc may overblock block number when converting it to
    byte offset. Luckily this is mostly harmless as we will just use more
    expensive method of writing using unwritten extents even though we are
    writing beyond i_size.
    
    Fixes: 378f32b ("ext4: introduce direct I/O write using iomap infrastructure")
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed Apr 12, 2021
  2. ext4: Fix occasional generic/418 failure

    Eric has noticed that after pagecache read rework, generic/418 is
    occasionally failing for ext4 when blocksize < pagesize. In fact, the
    pagecache rework just made hard to hit race in ext4 more likely. The
    problem is that since ext4 conversion of direct IO writes to iomap
    framework (commit 378f32b), we update inode size after direct IO
    write only after invalidating page cache. Thus if buffered read sneaks
    at unfortunate moment like:
    
    CPU1 - write at offset 1k                       CPU2 - read from offset 0
    iomap_dio_rw(..., IOMAP_DIO_FORCE_WAIT);
                                                    ext4_readpage();
    ext4_handle_inode_extension()
    
    the read will zero out tail of the page as it still sees smaller inode
    size and thus page cache becomes inconsistent with on-disk contents with
    all the consequences.
    
    Fix the problem by moving inode size update into end_io handler which
    gets called before the page cache is invalidated.
    
    Reported-by: Eric Whitney <enwlinux@gmail.com>
    Fixes: 378f32b ("ext4: introduce direct I/O write using iomap infrastructure")
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed Apr 12, 2021
  3. iomap: Pass original DIO size to completion handler

    When extending a file with direct IO write, ext4 needs to know whether IO
    has succeeded for the whole range that was prepared for it (the common fast
    path). In that case we can piggy back the orphan list update with the
    inode size update. In case write was actually shorter than originally
    intended, we must leave inode on the orphan list until we cleanup blocks
    beyond i_size. So provide the original IO size to the direct IO ->end_io
    handler.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed Apr 12, 2021

Commits on Apr 10, 2021

  1. ext4: fix debug format string warning

    Using no_printk() for jbd_debug() revealed two warnings:
    
    fs/jbd2/recovery.c: In function 'fc_do_one_pass':
    fs/jbd2/recovery.c:256:30: error: format '%d' expects a matching 'int' argument [-Werror=format=]
      256 |                 jbd_debug(3, "Processing fast commit blk with seq %d");
          |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    fs/ext4/fast_commit.c: In function 'ext4_fc_replay_add_range':
    fs/ext4/fast_commit.c:1732:30: error: format '%d' expects argument of type 'int', but argument 2 has type 'long unsigned int' [-Werror=format=]
     1732 |                 jbd_debug(1, "Converting from %d to %d %lld",
    
    The first one was added incorrectly, and was also missing a few newlines
    in debug output, and the second one happened when the type of an
    argument changed.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Fixes: d556435 ("jbd2: avoid -Wempty-body warnings")
    Fixes: 6db0746 ("ext4: use BIT() macro for BH_** state bits")
    Fixes: 5b849b5 ("jbd2: fast commit recovery path")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/r/20210409201211.1866633-1-arnd@kernel.org
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    arndb authored and tytso committed Apr 10, 2021
  2. ext4: fix trailing whitespace

    Made suggested modifications from checkpatch in reference to ERROR:
     trailing whitespace
    
    Signed-off-by: Jack Qiu <jack.qiu@huawei.com>
    Reviewed-by: Ritesh Harjani <riteshh@linux.ibm.com>
    Link: https://lore.kernel.org/r/20210409042035.15516-1-jack.qiu@huawei.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Jack Qiu authored and tytso committed Apr 10, 2021
  3. ext4: fix various seppling typos

    Signed-off-by: Bhaskar Chowdhury <unixbhaskar@gmail.com>
    Link: https://lore.kernel.org/r/cover.1616840203.git.unixbhaskar@gmail.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    unixbhaskar authored and tytso committed Apr 10, 2021
  4. ext4: fix error return code in ext4_fc_perform_commit()

    In case of if not ext4_fc_add_tlv branch, an error return code is missing.
    
    Cc: stable@kernel.org
    Fixes: aa75f4d ("ext4: main fast-commit commit path")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Xu Yihang <xuyihang@huawei.com>
    Reviewed-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
    Link: https://lore.kernel.org/r/20210408070033.123047-1-xuyihang@huawei.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Xu Yihang authored and tytso committed Apr 10, 2021
  5. ext4: annotate data race in jbd2_journal_dirty_metadata()

    Assertion checks in jbd2_journal_dirty_metadata() are known to be racy
    but we don't want to be grabbing locks just for them.  We thus recheck
    them under b_state_lock only if it looks like they would fail. Annotate
    the checks with data_race().
    
    Cc: stable@kernel.org
    Reported-by: Hao Sun <sunhao.th@gmail.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20210406161804.20150-2-jack@suse.cz
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    jankara authored and tytso committed Apr 10, 2021
  6. ext4: annotate data race in start_this_handle()

    Access to journal->j_running_transaction is not protected by appropriate
    lock and thus is racy. We are well aware of that and the code handles
    the race properly. Just add a comment and data_race() annotation.
    
    Cc: stable@kernel.org
    Reported-by: syzbot+30774a6acf6a2cf6d535@syzkaller.appspotmail.com
    Signed-off-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20210406161804.20150-1-jack@suse.cz
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    jankara authored and tytso committed Apr 10, 2021
  7. ext4: fix ext4_error_err save negative errno into superblock

    Fix As write_mmp_block() so that it returns -EIO instead of 1, so that
    the correct error gets saved into the superblock.
    
    Cc: stable@kernel.org
    Fixes: 54d3adb ("ext4: save all error info in save_error_info() and drop ext4_set_errno()")
    Reported-by: Liu Zhi Qiang <liuzhiqiang26@huawei.com>
    Signed-off-by: Ye Bin <yebin10@huawei.com>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Link: https://lore.kernel.org/r/20210406025331.148343-1-yebin10@huawei.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Ye Bin authored and tytso committed Apr 10, 2021
  8. ext4: fix error code in ext4_commit_super

    We should set the error code when ext4_commit_super check argument failed.
    Found in code review.
    Fixes: c4be0c1 ("filesystem freeze: add error handling of write_super_lockfs/unlockfs").
    
    Cc: stable@kernel.org
    Signed-off-by: Fengnan Chang <changfengnan@vivo.com>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Link: https://lore.kernel.org/r/20210402101631.561-1-changfengnan@vivo.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Fengnan Chang authored and tytso committed Apr 10, 2021
  9. ext4: always panic when errors=panic is specified

    Before commit 014c9ca ("ext4: make ext4_abort() use
    __ext4_error()"), the following series of commands would trigger a
    panic:
    
    1. mount /dev/sda -o ro,errors=panic test
    2. mount /dev/sda -o remount,abort test
    
    After commit 014c9ca, remounting a file system using the test
    mount option "abort" will no longer trigger a panic.  This commit will
    restore the behaviour immediately before commit 014c9ca.
    (However, note that the Linux kernel's behavior has not been
    consistent; some previous kernel versions, including 5.4 and 4.19
    similarly did not panic after using the mount option "abort".)
    
    This also makes a change to long-standing behaviour; namely, the
    following series commands will now cause a panic, when previously it
    did not:
    
    1. mount /dev/sda -o ro,errors=panic test
    2. echo test > /sys/fs/ext4/sda/trigger_fs_error
    
    However, this makes ext4's behaviour much more consistent, so this is
    a good thing.
    
    Cc: stable@kernel.org
    Fixes: 014c9ca ("ext4: make ext4_abort() use __ext4_error()")
    Signed-off-by: Ye Bin <yebin10@huawei.com>
    Link: https://lore.kernel.org/r/20210401081903.3421208-1-yebin10@huawei.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Ye Bin authored and tytso committed Apr 10, 2021

Commits on Apr 9, 2021

  1. ext4: delete redundant uptodate check for buffer

    The buffer uptodate state has been checked in function set_buffer_uptodate,
    there is no need use buffer_uptodate before calling set_buffer_uptodate and
    delete it.
    
    Cc: "Theodore Ts'o" <tytso@mit.edu>
    Cc: Andreas Dilger <adilger.kernel@dilger.ca>
    Signed-off-by: Yang Guo <guoyang2@huawei.com>
    Signed-off-by: Shaokun Zhang <zhangshaokun@hisilicon.com>
    Reviewed-by: Ritesh Harjani <ritesh.list@gmail.com>
    Link: https://lore.kernel.org/r/1617260610-29770-1-git-send-email-zhangshaokun@hisilicon.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Yang Guo authored and tytso committed Apr 9, 2021
  2. ext4: do not set SB_ACTIVE in ext4_orphan_cleanup()

    When CONFIG_QUOTA is enabled, if we failed to mount the filesystem due
    to some error happens behind ext4_orphan_cleanup(), it will end up
    triggering a after free issue of super_block. The problem is that
    ext4_orphan_cleanup() will set SB_ACTIVE flag if CONFIG_QUOTA is
    enabled, after we cleanup the truncated inodes, the last iput() will put
    them into the lru list, and these inodes' pages may probably dirty and
    will be write back by the writeback thread, so it could be raced by
    freeing super_block in the error path of mount_bdev().
    
    After check the setting of SB_ACTIVE flag in ext4_orphan_cleanup(), it
    was used to ensure updating the quota file properly, but evict inode and
    trash data immediately in the last iput does not affect the quotafile,
    so setting the SB_ACTIVE flag seems not required[1]. Fix this issue by
    just remove the SB_ACTIVE setting.
    
    [1] https://lore.kernel.org/linux-ext4/99cce8ca-e4a0-7301-840f-2ace67c551f3@huawei.com/T/#m04990cfbc4f44592421736b504afcc346b2a7c00
    
    Cc: stable@kernel.org
    Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
    Tested-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20210331033138.918975-1-yi.zhang@huawei.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    zhangyi089 authored and tytso committed Apr 9, 2021
  3. ext4: make prefetch_block_bitmaps default

    Block bitmap prefetching is needed for these allocator optimization
    data structures to get populated and provide better group scanning
    order. So, turn it on bu default. prefetch_block_bitmaps mount option
    is now marked as removed and a new option no_prefetch_block_bitmaps is
    added to disable block bitmap prefetching.
    
    Signed-off-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
    Link: https://lore.kernel.org/r/20210401172129.189766-8-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    harshadjs authored and tytso committed Apr 9, 2021
  4. ext4: add proc files to monitor new structures

    This patch adds a new file "mb_structs_summary" which allows us to see
    the summary of the new allocator structures added in this
    series. Here's the sample output of file:
    
    optimize_scan: 1
    max_free_order_lists:
            list_order_0_groups: 0
            list_order_1_groups: 0
            list_order_2_groups: 0
            list_order_3_groups: 0
            list_order_4_groups: 0
            list_order_5_groups: 0
            list_order_6_groups: 0
            list_order_7_groups: 0
            list_order_8_groups: 0
            list_order_9_groups: 0
            list_order_10_groups: 0
            list_order_11_groups: 0
            list_order_12_groups: 0
            list_order_13_groups: 40
    fragment_size_tree:
            tree_min: 16384
            tree_max: 32768
            tree_nodes: 40
    
    Signed-off-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Reviewed-by: Ritesh Harjani <ritesh.list@gmail.com>
    Link: https://lore.kernel.org/r/20210401172129.189766-7-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    harshadjs authored and tytso committed Apr 9, 2021
  5. ext4: improve cr 0 / cr 1 group scanning

    Instead of traversing through groups linearly, scan groups in specific
    orders at cr 0 and cr 1. At cr 0, we want to find groups that have the
    largest free order >= the order of the request. So, with this patch,
    we maintain lists for each possible order and insert each group into a
    list based on the largest free order in its buddy bitmap. During cr 0
    allocation, we traverse these lists in the increasing order of largest
    free orders. This allows us to find a group with the best available cr
    0 match in constant time. If nothing can be found, we fallback to cr 1
    immediately.
    
    At CR1, the story is slightly different. We want to traverse in the
    order of increasing average fragment size. For CR1, we maintain a rb
    tree of groupinfos which is sorted by average fragment size. Instead
    of traversing linearly, at CR1, we traverse in the order of increasing
    average fragment size, starting at the most optimal group. This brings
    down cr 1 search complexity to log(num groups).
    
    For cr >= 2, we just perform the linear search as before. Also, in
    case of lock contention, we intermittently fallback to linear search
    even in CR 0 and CR 1 cases. This allows us to proceed during the
    allocation path even in case of high contention.
    
    There is an opportunity to do optimization at CR2 too. That's because
    at CR2 we only consider groups where bb_free counter (number of free
    blocks) is greater than the request extent size. That's left as future
    work.
    
    All the changes introduced in this patch are protected under a new
    mount option "mb_optimize_scan".
    
    With this patchset, following experiment was performed:
    
    Created a highly fragmented disk of size 65TB. The disk had no
    contiguous 2M regions. Following command was run consecutively for 3
    times:
    
    time dd if=/dev/urandom of=file bs=2M count=10
    
    Here are the results with and without cr 0/1 optimizations introduced
    in this patch:
    
    |---------+------------------------------+---------------------------|
    |         | Without CR 0/1 Optimizations | With CR 0/1 Optimizations |
    |---------+------------------------------+---------------------------|
    | 1st run | 5m1.871s                     | 2m47.642s                 |
    | 2nd run | 2m28.390s                    | 0m0.611s                  |
    | 3rd run | 2m26.530s                    | 0m1.255s                  |
    |---------+------------------------------+---------------------------|
    
    Signed-off-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Link: https://lore.kernel.org/r/20210401172129.189766-6-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    harshadjs authored and tytso committed Apr 9, 2021
  6. ext4: add MB_NUM_ORDERS macro

    A few arrays in mballoc.c use the total number of valid orders as
    their size. Currently, this value is set as "sb->s_blocksize_bits +
    2". This makes code harder to read. So, instead add a new macro
    MB_NUM_ORDERS(sb) to make the code more readable.
    
    Signed-off-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Reviewed-by: Ritesh Harjani <ritesh.list@gmail.com>
    Link: https://lore.kernel.org/r/20210401172129.189766-5-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    harshadjs authored and tytso committed Apr 9, 2021
  7. ext4: add mballoc stats proc file

    Add new stats for measuring the performance of mballoc. This patch is
    forked from Artem Blagodarenko's work that can be found here:
    
    https://github.com/lustre/lustre-release/blob/master/ldiskfs/kernel_patches/patches/rhel8/ext4-simple-blockalloc.patch
    
    This patch reorganizes the stats by cr level. This is how the output
    looks like:
    
    mballoc:
    	reqs: 0
    	success: 0
    	groups_scanned: 0
    	cr0_stats:
    		hits: 0
    		groups_considered: 0
    		useless_loops: 0
    		bad_suggestions: 0
    	cr1_stats:
    		hits: 0
    		groups_considered: 0
    		useless_loops: 0
    		bad_suggestions: 0
    	cr2_stats:
    		hits: 0
    		groups_considered: 0
    		useless_loops: 0
    	cr3_stats:
    		hits: 0
    		groups_considered: 0
    		useless_loops: 0
    	extents_scanned: 0
    		goal_hits: 0
    		2^n_hits: 0
    		breaks: 0
    		lost: 0
    	buddies_generated: 0/40
    	buddies_time_used: 0
    	preallocated: 0
    	discarded: 0
    
    Signed-off-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Reviewed-by: Ritesh Harjani <ritesh.list@gmail.com>
    Link: https://lore.kernel.org/r/20210401172129.189766-4-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    harshadjs authored and tytso committed Apr 9, 2021
  8. ext4: add ability to return parsed options from parse_options

    Before this patch, the function parse_options() was returning
    journal_devnum and journal_ioprio variables to the caller. This patch
    generalizes that interface to allow parse_options to return any parsed
    options to return back to the caller. In this patch series, it gets
    used to capture the value of "mb_optimize_scan=%u" mount option.
    
    Signed-off-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
    Reviewed-by: Ritesh Harjani <ritesh.list@gmail.com>
    Link: https://lore.kernel.org/r/20210401172129.189766-3-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    harshadjs authored and tytso committed Apr 9, 2021
  9. ext4: drop s_mb_bal_lock and convert protected fields to atomic

    s_mb_buddies_generated gets used later in this patch series to
    determine if the cr 0 and cr 1 optimziations should be performed or
    not. Currently, s_mb_buddies_generated is protected under a
    spin_lock. In the allocation path, it is better if we don't depend on
    the lock and instead read the value atomically. In order to do that,
    we drop s_bal_lock altogether and we convert the only two protected
    fields by it s_mb_buddies_generated and s_mb_generation_time to atomic
    type.
    
    Signed-off-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Reviewed-by: Ritesh Harjani <ritesh.list@gmail.com>
    Link: https://lore.kernel.org/r/20210401172129.189766-2-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    harshadjs authored and tytso committed Apr 9, 2021
  10. ext4: fix check to prevent false positive report of incorrect used in…

    …odes
    
    Commit <50122847007> ("ext4: fix check to prevent initializing reserved
    inodes") check the block group zero and prevent initializing reserved
    inodes. But in some special cases, the reserved inode may not all belong
    to the group zero, it may exist into the second group if we format
    filesystem below.
    
      mkfs.ext4 -b 4096 -g 8192 -N 1024 -I 4096 /dev/sda
    
    So, it will end up triggering a false positive report of a corrupted
    file system. This patch fix it by avoid check reserved inodes if no free
    inode blocks will be zeroed.
    
    Cc: stable@kernel.org
    Fixes: 5012284 ("ext4: fix check to prevent initializing reserved inodes")
    Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
    Suggested-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20210331121516.2243099-1-yi.zhang@huawei.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    zhangyi089 authored and tytso committed Apr 9, 2021

Commits on Apr 6, 2021

  1. jbd2: avoid -Wempty-body warnings

    Building with 'make W=1' shows a harmless -Wempty-body warning:
    
    fs/jbd2/recovery.c: In function 'fc_do_one_pass':
    fs/jbd2/recovery.c:267:75: error: suggest braces around empty body in an 'if' statement [-Werror=empty-body]
      267 |                 jbd_debug(3, "Fast commit replay failed, err = %d\n", err);
          |                                                                           ^
    
    Change the empty dprintk() macros to no_printk(), which avoids this
    warning and adds format string checking.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20210322102152.95684-1-arnd@kernel.org
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    arndb authored and tytso committed Apr 6, 2021
  2. ext4: optimize match for casefolded encrypted dirs

    Matching names with casefolded encrypting directories requires
    decrypting entries to confirm case since we are case preserving. We can
    avoid needing to decrypt if our hash values don't match.
    
    Signed-off-by: Daniel Rosenberg <drosen@google.com>
    Link: https://lore.kernel.org/r/20210319073414.1381041-3-drosen@google.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Daniel Rosenberg authored and tytso committed Apr 6, 2021
  3. ext4: handle casefolding with encryption

    This adds support for encryption with casefolding.
    
    Since the name on disk is case preserving, and also encrypted, we can no
    longer just recompute the hash on the fly. Additionally, to avoid
    leaking extra information from the hash of the unencrypted name, we use
    siphash via an fscrypt v2 policy.
    
    The hash is stored at the end of the directory entry for all entries
    inside of an encrypted and casefolded directory apart from those that
    deal with '.' and '..'. This way, the change is backwards compatible
    with existing ext4 filesystems.
    
    [ Changed to advertise this feature via the file:
      /sys/fs/ext4/features/encrypted_casefold -- TYT ]
    
    Signed-off-by: Daniel Rosenberg <drosen@google.com>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Link: https://lore.kernel.org/r/20210319073414.1381041-2-drosen@google.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Daniel Rosenberg authored and tytso committed Apr 6, 2021

Commits on Apr 2, 2021

  1. ext4: remove unnecessary braces in fs/ext4/dir.c

    Removes braces to follow the coding style.
    
    Signed-off-by: Milan Djurovic <mdjurovic@zohomail.com>
    Link: https://lore.kernel.org/r/20210316052953.67616-1-mdjurovic@zohomail.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    icedjuro authored and tytso committed Apr 2, 2021
  2. ext4: delete some unused tracepoint definitions

    A number of tracepoint instances have been removed from ext4 by past
    patches but the definitions of those tracepoints have not.
    
    All instances of ext4_ext_in_cache and ext4_ext_put_in_cache were
    removed by commit 69eb33d ("ext4: remove single extent cache").
    ext4_get_reserved_cluster_alloc was removed by commit b6bf917
    ("ext4: reduce reserved cluster count by number of allocated
    clusters").  ext4_find_delalloc_range was removed by commit
    7d1b1fb ("ext4: reimplement ext4_find_delay_alloc_range on extent
    status tree").
    
    All instances of ext4_direct_IO_enter and ext4_direct_IO_exit were
    removed by commit 378f32b ("ext4: introduce direct I/O write
    using iomap infrastructure").
    
    Signed-off-by: Eric Whitney <enwlinux@gmail.com>
    Link: https://lore.kernel.org/r/20210216191634.20957-1-enwlinux@gmail.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Eric Whitney authored and tytso committed Apr 2, 2021
  3. Updated locking documentation for transaction_t

    Some members of transaction_t are allowed to be read without any lock
    being held if accessed from the correct context.  We used LockDoc's
    findings to determine those members.  Each member of them is marked
    with a short comment: "no lock needed for jbd2 thread".
    
    Signed-off-by: Alexander Lochmann <alexander.lochmann@tu-dortmund.de>
    Signed-off-by: Horst Schirmeier <horst.schirmeier@tu-dortmund.de>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20210211171410.17984-1-alexander.lochmann@tu-dortmund.de
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    flipreverse authored and tytso committed Apr 2, 2021
  4. ext4: updated locking documentation for journal_t

    Some members of transaction_t are allowed to be read without any lock
    being held if consistency doesn't matter.  Based on LockDoc's
    findings, we extended the locking documentation of those members.
    Each one of them is marked with a short comment: "no lock for quick
    racy checks".
    
    Signed-off-by: Alexander Lochmann <alexander.lochmann@tu-dortmund.de>
    Signed-off-by: Horst Schirmeier <horst.schirmeier@tu-dortmund.de>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/ad82c7a9-a624-4ed5-5ada-a6410c44c0b3@tu-dortmund.de
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    flipreverse authored and tytso committed Apr 2, 2021

Commits on Mar 25, 2021

  1. ext4: use memcpy_to_page() in pagecache_write()

    Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
    Link: https://lore.kernel.org/r/20210207190425.38107-7-chaitanya.kulkarni@wdc.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    ChaitanayaKulkarni authored and tytso committed Mar 25, 2021
  2. ext4: use memcpy_from_page() in pagecache_read()

    Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
    Link: https://lore.kernel.org/r/20210207190425.38107-6-chaitanya.kulkarni@wdc.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    ChaitanayaKulkarni authored and tytso committed Mar 25, 2021

Commits on Mar 21, 2021

  1. Linux 5.12-rc4

    torvalds committed Mar 21, 2021
  2. Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/tytso/ext4
    
    Pull ext4 fixes from Ted Ts'o:
     "Miscellaneous ext4 bug fixes for v5.12"
    
    * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
      ext4: initialize ret to suppress smatch warning
      ext4: stop inode update before return
      ext4: fix rename whiteout with fast commit
      ext4: fix timer use-after-free on failed mount
      ext4: fix potential error in ext4_do_update_inode
      ext4: do not try to set xattr into ea_inode if value is empty
      ext4: do not iput inode under running transaction in ext4_rename()
      ext4: find old entry again if failed to rename whiteout
      ext4: fix error handling in ext4_end_enable_verity()
      ext4: fix bh ref count on error paths
      fs/ext4: fix integer overflow in s_log_groups_per_flex
      ext4: add reclaim checks to xattr code
      ext4: shrink race window in ext4_should_retry_alloc()
    torvalds committed Mar 21, 2021
  3. Merge tag 'io_uring-5.12-2021-03-21' of git://git.kernel.dk/linux-block

    Pull io_uring followup fixes from Jens Axboe:
    
     - The SIGSTOP change from Eric, so we properly ignore that for
       PF_IO_WORKER threads.
    
     - Disallow sending signals to PF_IO_WORKER threads in general, we're
       not interested in having them funnel back to the io_uring owning
       task.
    
     - Stable fix from Stefan, ensuring we properly break links for short
       send/sendmsg recv/recvmsg if MSG_WAITALL is set.
    
     - Catch and loop when needing to run task_work before a PF_IO_WORKER
       threads goes to sleep.
    
    * tag 'io_uring-5.12-2021-03-21' of git://git.kernel.dk/linux-block:
      io_uring: call req_set_fail_links() on short send[msg]()/recv[msg]() with MSG_WAITALL
      io-wq: ensure task is running before processing task_work
      signal: don't allow STOP on PF_IO_WORKER threads
      signal: don't allow sending any signals to PF_IO_WORKER threads
    torvalds committed Mar 21, 2021
  4. Merge tag 'staging-5.12-rc4' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/gregkh/staging
    
    Pull staging and IIO driver fixes from Greg KH:
     "Some small staging and IIO driver fixes:
    
       - MAINTAINERS changes for the move of the staging mailing list
    
       - comedi driver fixes to get request_irq() to work correctly
    
       - counter driver fixes for reported issues with iio devices
    
       - tiny iio driver fixes for reported issues.
    
      All of these have been in linux-next with no reported problems"
    
    * tag 'staging-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
      staging: vt665x: fix alignment constraints
      staging: comedi: cb_pcidas64: fix request_irq() warn
      staging: comedi: cb_pcidas: fix request_irq() warn
      MAINTAINERS: move the staging subsystem to lists.linux.dev
      MAINTAINERS: move some real subsystems off of the staging mailing list
      iio: gyro: mpu3050: Fix error handling in mpu3050_trigger_handler
      iio: hid-sensor-temperature: Fix issues of timestamp channel
      iio: hid-sensor-humidity: Fix alignment issue of timestamp channel
      counter: stm32-timer-cnt: fix ceiling miss-alignment with reload register
      counter: stm32-timer-cnt: fix ceiling write max value
      counter: stm32-timer-cnt: Report count function when SLAVE_MODE_DISABLED
      iio: adc: ab8500-gpadc: Fix off by 10 to 3
      iio:adc:stm32-adc: Add HAS_IOMEM dependency
      iio: adis16400: Fix an error code in adis16400_initial_setup()
      iio: adc: adi-axi-adc: add proper Kconfig dependencies
      iio: adc: ad7949: fix wrong ADC result due to incorrect bit mask
      iio: hid-sensor-prox: Fix scale not correct issue
      iio:adc:qcom-spmi-vadc: add default scale to LR_MUX2_BAT_ID channel
    torvalds committed Mar 21, 2021
Older