20 Jan, 2021

5 commits

  • commit dfd56c2c0c0dbb11be939b804ddc8d5395ab3432 upstream.

    When setting password salt in the superblock, we forget to recompute the
    superblock checksum so it will not match until the next superblock
    modification which recomputes the checksum. Fix it.

    CC: Michael Halcrow
    Reported-by: Andreas Dilger
    Fixes: 9bd8212f981e ("ext4 crypto: add encryption policy and password salt support")
    Signed-off-by: Jan Kara
    Link: https://lore.kernel.org/r/20201216101844.22917-8-jack@suse.cz
    Signed-off-by: Theodore Ts'o
    Signed-off-by: Greg Kroah-Hartman

    Jan Kara
     
  • [ Upstream commit 5a3b590d4b2db187faa6f06adc9a53d6199fb1f9 ]

    When the first file is opened, ext4 samples the mountpoint of the
    filesystem in 64 bytes of the super block. It does so using
    strlcpy(), this means that the remaining bytes in the super block
    string buffer are untouched. If the mount point before had a longer
    path than the current one, it can be reconstructed.

    Consider the case where the fs was mounted to "/media/johnjdeveloper"
    and later to "/". The super block buffer then contains
    "/\x00edia/johnjdeveloper".

    This case was seen in the wild and caused confusion how the name
    of a developer ands up on the super block of a filesystem used
    in production...

    Fix this by using strncpy() instead of strlcpy(). The superblock
    field is defined to be a fixed-size char array, and it is already
    marked using __nonstring in fs/ext4/ext4.h. The consumer of the field
    in e2fsprogs already assumes that in the case of a 64+ byte mount
    path, that s_last_mounted will not be NUL terminated.

    Link: https://lore.kernel.org/r/X9ujIOJG/HqMr88R@mit.edu
    Reported-by: Richard Weinberger
    Signed-off-by: Theodore Ts'o
    Cc: stable@kernel.org
    Signed-off-by: Sasha Levin

    Theodore Ts'o
     
  • commit 6b4b8e6b4ad8553660421d6360678b3811d5deb9 upstream.

    We got a "deleted inode referenced" warning cross our fsstress test. The
    bug can be reproduced easily with following steps:

    cd /dev/shm
    mkdir test/
    fallocate -l 128M img
    mkfs.ext4 -b 1024 img
    mount img test/
    dd if=/dev/zero of=test/foo bs=1M count=128
    mkdir test/dir/ && cd test/dir/
    for ((i=0;i
    Signed-off-by: Greg Kroah-Hartman

    yangerkun
     
  • commit 31e203e09f036f48e7c567c2d32df0196bbd303f upstream.

    After full/fast commit, entries in staging queue are promoted to main
    queue. In ext4_fs_cleanup function, it splice to staging queue to
    staging queue.

    Fixes: aa75f4d3daaeb ("ext4: main fast-commit commit path")
    Signed-off-by: Daejun Park
    Reviewed-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201230094851epcms2p6eeead8cc984379b37b2efd21af90fd1a@epcms2p6
    Signed-off-by: Theodore Ts'o
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Daejun Park
     
  • commit 23dd561ad9eae02b4d51bb502fe4e1a0666e9567 upstream.

    1: ext4_iget/ext4_find_extent never returns NULL, use IS_ERR
    instead of IS_ERR_OR_NULL to fix this.

    2: ext4_fc_replay_inode should set the inode to NULL when IS_ERR.
    and go to call iput properly.

    Fixes: 8016e29f4362 ("ext4: fast commit recovery path")
    Signed-off-by: Yi Li
    Reviewed-by: Jan Kara
    Link: https://lore.kernel.org/r/20201230033827.3996064-1-yili@winhong.com
    Signed-off-by: Theodore Ts'o
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Yi Li
     

06 Jan, 2021

2 commits

  • [ Upstream commit 82ef1370b0c1757ab4ce29f34c52b4e93839b0aa ]

    Commit cfd732377221 ("ext4: add prefetching for block allocation
    bitmaps") introduced block bitmap prefetch, and expects to read block
    bitmaps of flex_bg through an IO. However, it seems to ignore the
    value range of s_log_groups_per_flex. In the scenario where the value
    of s_log_groups_per_flex is greater than 27, s_mb_prefetch or
    s_mb_prefetch_limit will overflow, cause a divide zero exception.

    In addition, the logic of calculating nr is also flawed, because the
    size of flexbg is fixed during a single mount, but s_mb_prefetch can
    be modified, which causes nr to fail to meet the value condition of
    [1, flexbg_size].

    To solve this problem, we need to set the upper limit of
    s_mb_prefetch. Since we expect to load block bitmaps of a flex_bg
    through an IO, we can consider determining a reasonable upper limit
    among the IO limit parameters. After consideration, we chose
    BLK_MAX_SEGMENT_SIZE. This is a good choice to solve divide zero
    problem and avoiding performance degradation.

    [ Some minor code simplifications to make the changes easy to follow -- TYT ]

    Reported-by: Tosk Robot
    Signed-off-by: Chunguang Xu
    Reviewed-by: Samuel Liao
    Reviewed-by: Andreas Dilger
    Link: https://lore.kernel.org/r/1607051143-24508-1-git-send-email-brookxu@tencent.com
    Signed-off-by: Theodore Ts'o
    Signed-off-by: Sasha Levin

    Chunguang Xu
     
  • commit c9200760da8a728eb9767ca41a956764b28c1310 upstream.

    Check for valid block size directly by validating s_log_block_size; we
    were doing this in two places. First, by calculating blocksize via
    BLOCK_SIZE << s_log_block_size, and then checking that the blocksize
    was valid. And then secondly, by checking s_log_block_size directly.

    The first check is not reliable, and can trigger an UBSAN warning if
    s_log_block_size on a maliciously corrupted superblock is greater than
    22. This is harmless, since the second test will correctly reject the
    maliciously fuzzed file system, but to make syzbot shut up, and
    because the two checks are duplicative in any case, delete the
    blocksize check, and move the s_log_block_size earlier in
    ext4_fill_super().

    Signed-off-by: Theodore Ts'o
    Reported-by: syzbot+345b75652b1d24227443@syzkaller.appspotmail.com
    Signed-off-by: Greg Kroah-Hartman

    Theodore Ts'o
     

30 Dec, 2020

4 commits

  • commit b08070eca9e247f60ab39d79b2c25d274750441f upstream.

    ext4_handle_error() with errors=continue mount option can accidentally
    remount the filesystem read-only when the system is rebooting. Fix that.

    Fixes: 1dc1097ff60e ("ext4: avoid panic during forced reboot")
    Signed-off-by: Jan Kara
    Reviewed-by: Andreas Dilger
    Cc: stable@kernel.org
    Link: https://lore.kernel.org/r/20201127113405.26867-2-jack@suse.cz
    Signed-off-by: Theodore Ts'o
    Signed-off-by: Greg Kroah-Hartman

    Jan Kara
     
  • commit 46e294efc355c48d1dd4d58501aa56dac461792a upstream.

    Xattr code using inodes with large xattr data can end up dropping last
    inode reference (and thus deleting the inode) from places like
    ext4_xattr_set_entry(). That function is called with transaction started
    and so ext4_evict_inode() can deadlock against fs freezing like:

    CPU1 CPU2

    removexattr() freeze_super()
    vfs_removexattr()
    ext4_xattr_set()
    handle = ext4_journal_start()
    ...
    ext4_xattr_set_entry()
    iput(old_ea_inode)
    ext4_evict_inode(old_ea_inode)
    sb->s_writers.frozen = SB_FREEZE_FS;
    sb_wait_write(sb, SB_FREEZE_FS);
    ext4_freeze()
    jbd2_journal_lock_updates()
    -> blocks waiting for all
    handles to stop
    sb_start_intwrite()
    -> blocks as sb is already in SB_FREEZE_FS state

    Generally it is advisable to delete inodes from a separate transaction
    as it can consume quite some credits however in this case it would be
    quite clumsy and furthermore the credits for inode deletion are quite
    limited and already accounted for. So just tweak ext4_evict_inode() to
    avoid freeze protection if we have transaction already started and thus
    it is not really needed anyway.

    Cc: stable@vger.kernel.org
    Fixes: dec214d00e0d ("ext4: xattr inode deduplication")
    Signed-off-by: Jan Kara
    Reviewed-by: Andreas Dilger
    Link: https://lore.kernel.org/r/20201127110649.24730-1-jack@suse.cz
    Signed-off-by: Theodore Ts'o
    Signed-off-by: Greg Kroah-Hartman

    Jan Kara
     
  • commit cca415537244f6102cbb09b5b90db6ae2c953bdd upstream.

    When freeing metadata, we will create an ext4_free_data and
    insert it into the pending free list. After the current
    transaction is committed, the object will be freed.

    ext4_mb_free_metadata() will check whether the area to be freed
    overlaps with the pending free list. If true, return directly. At this
    time, ext4_free_data is leaked. Fortunately, the probability of this
    problem is small, since it only occurs if the file system is corrupted
    such that a block is claimed by more one inode and those inodes are
    deleted within a single jbd2 transaction.

    Signed-off-by: Chunguang Xu
    Link: https://lore.kernel.org/r/1604764698-4269-8-git-send-email-brookxu@tencent.com
    Signed-off-by: Theodore Ts'o
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Chunguang Xu
     
  • commit bc18546bf68e47996a359d2533168d5770a22024 upstream.

    The ext4_find_extent() function never returns NULL, it returns error
    pointers.

    Fixes: 44059e503b03 ("ext4: fast commit recovery path")
    Signed-off-by: Dan Carpenter
    Reviewed-by: Jan Kara
    Link: https://lore.kernel.org/r/20201023112232.GB282278@mwanda
    Signed-off-by: Theodore Ts'o
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     

26 Dec, 2020

1 commit

  • commit 75d18cd1868c2aee43553723872c35d7908f240f upstream.

    As described in "fscrypt: add fscrypt_is_nokey_name()", it's possible to
    create a duplicate filename in an encrypted directory by creating a file
    concurrently with adding the directory's encryption key.

    Fix this bug on ext4 by rejecting no-key dentries in ext4_add_entry().

    Note that the duplicate check in ext4_find_dest_de() sometimes prevented
    this bug. However in many cases it didn't, since ext4_find_dest_de()
    doesn't examine every dentry.

    Fixes: 4461471107b7 ("ext4 crypto: enable filename encryption")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20201118075609.120337-3-ebiggers@kernel.org
    Signed-off-by: Eric Biggers
    Signed-off-by: Greg Kroah-Hartman

    Eric Biggers
     

20 Nov, 2020

2 commits

  • The idea of the warning in ext4_update_dx_flag() is that we should warn
    when we are clearing EXT4_INODE_INDEX on a filesystem with metadata
    checksums enabled since after clearing the flag, checksums for internal
    htree nodes will become invalid. So there's no need to warn (or actually
    do anything) when EXT4_INODE_INDEX is not set.

    Link: https://lore.kernel.org/r/20201118153032.17281-1-jack@suse.cz
    Fixes: 48a34311953d ("ext4: fix checksum errors with indexed dirs")
    Reported-by: Eric Biggers
    Reviewed-by: Eric Biggers
    Signed-off-by: Jan Kara
    Signed-off-by: Theodore Ts'o
    Cc: stable@kernel.org

    Jan Kara
     
  • The options in /proc/mounts must be valid mount options --- and
    fast_commit is not a mount option. Otherwise, command sequences like
    this will fail:

    # mount /dev/vdc /vdc
    # mkdir -p /vdc/phoronix_test_suite /pts
    # mount --bind /vdc/phoronix_test_suite /pts
    # mount -o remount,nodioread_nolock /pts
    mount: /pts: mount point not mounted or bad option.

    And in the system logs, you'll find:

    EXT4-fs (vdc): Unrecognized mount option "fast_commit" or missing value

    Fixes: 995a3ed67fc8 ("ext4: add fast_commit feature and handling for extended mount options")
    Signed-off-by: Theodore Ts'o

    Theodore Ts'o
     

12 Nov, 2020

2 commits

  • This reverts commit acaa532687cdc3a03757defafece9c27aa667546 which can
    result in a ext4_superblock_csum_set() trying to sleep while a
    spinlock is being held.

    For more discussion of this issue, please see:

    https://lore.kernel.org/r/000000000000f50cb705b313ed70@google.com

    Reported-by: syzbot+7a4ba6a239b91a126c28@syzkaller.appspotmail.com
    Signed-off-by: Theodore Ts'o

    Theodore Ts'o
     
  • Mount options dax=inode and dax=never collided with fast_commit and
    journal checksum. Redefine the mount flags to remove the collision.

    Reported-by: Murphy Zhou
    Fixes: 9cb20f94afcd2 ("fs/ext4: Make DAX mount option a tri-state")
    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201111183209.447175-1-harshads@google.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     

07 Nov, 2020

20 commits

  • Add missing __acquire() and __releases() annotations, and make
    fc_ineligible_reasons[] static, as it is not used outside of
    fs/ext4/fast_commit.c.

    Signed-off-by: Theodore Ts'o

    Theodore Ts'o
     
  • Drop no_fc mount option that disable fast commit even if it was
    enabled at mkfs time. Move fc_debug_force mount option under ifdef
    EXT4_DEBUG to annotate that this is strictly for debugging and testing
    purposes and should not be used in production.

    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-23-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • Fast commit file system states are recorded in
    sbi->s_mount_flags. Fast commit expects these bit manipulations to be
    atomic. This patch adds helpers to make those modifications atomic.

    Suggested-by: Jan Kara
    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-21-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • If the journal dev is different from fsdev, issue a cache flush before
    committing fast commit blocks to disk.

    Suggested-by: Jan Kara
    Signed-off-by: Harshad Shirwadkar
    Reviewed-by: Jan Kara
    Link: https://lore.kernel.org/r/20201106035911.1942128-20-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • Fast commits don't work with data journalling. This patch disables the
    fast commit support when data journalling is turned on.

    Suggested-by: Jan Kara
    Signed-off-by: Harshad Shirwadkar
    Reviewed-by: Jan Kara
    Link: https://lore.kernel.org/r/20201106035911.1942128-19-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • In case of fast commits, determine if the inode is dirty by checking
    if the inode is on fast commit list. This also helps us get rid of
    ext4_inode_info.i_fc_committed_subtid field.

    Reported-by: Andrea Righi
    Tested-by: Andrea Righi
    Reviewed-by: Jan Kara
    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-18-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • Remove unnecessary calls to ext4_fc_start_update() and
    ext4_fc_stop_update() from ext4_file_mmap().

    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-17-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • Mark the fast commit buffer as dirty before submission.

    Suggested-by: Jan Kara
    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-16-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • Add a TODO to remember fixing REQ_FUA | REQ_PREFLUSH for fast commit
    buffers. Also, fix a typo in top level comment in fast_commit.c

    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-15-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • This patch removes the deduplicates the code that implements waiting
    on inode that's being committed. That code is moved into a new
    function.

    Suggested-by: Jan Kara
    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-14-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • In jbd2_fc_end_commit_fallback(), we know which tid to commit. There's
    no need for caller to pass it.

    Suggested-by: Jan Kara
    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-10-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • This patch removes jbd2_fc_init() API and its related functions to
    simplify enabling fast commits. With this change, the number of fast
    commit blocks to use is solely determined by the JBD2 layer. So, we
    move the default value for minimum number of fast commit blocks from
    ext4/fast_commit.h to include/linux/jbd2.h. However, whether or not to
    use fast commits is determined by the file system. The file system
    just sets the fast commit feature using
    jbd2_journal_set_features(). JBD2 layer then determines how many
    blocks to use for fast commits (based on the value found in the JBD2
    superblock).

    Note that the JBD2 feature flag of fast commits is just an indication
    that there are fast commit blocks present on disk. It doesn't tell
    JBD2 layer about the intent of the file system of whether to it wants
    to use fast commit or not. That's why, we blindly clear the fast
    commit flag in journal_reset() after the recovery is done.

    Suggested-by: Jan Kara
    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-7-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • The on-disk superblock field sb->s_maxlen represents the total size of
    the journal including the fast commit area and is no more the max
    number of blocks available for a transaction. The maximum number of
    blocks available to a transaction is reduced by the number of fast
    commit blocks. So, this patch renames j_maxlen to j_total_len to
    better represent its intent. Also, it adds a function to calculate max
    number of bufs available for a transaction.

    Suggested-by: Jan Kara
    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-6-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • Firstly, pass handle to all ext4_fc_track_* functions and use
    transaction id found in handle->h_transaction->h_tid for tracking fast
    commit updates. Secondly, don't pass inode to
    ext4_fc_track_link/create/unlink functions. inode can be found inside
    these functions as d_inode(dentry). However, rename path is an
    exeception. That's because in that case, we need inode that's not same
    as d_inode(dentry). To handle that, add a couple of low-level wrapper
    functions that take inode and dentry as arguments.

    Suggested-by: Jan Kara
    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-5-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • ext4_fc_track_range() should only be called when blocks are added or
    removed from an inode. So, the only places from where we need to call
    this function are ext4_map_blocks(), punch hole, collapse / zero
    range, truncate. Remove all the other redundant calls to ths function.

    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-4-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • If inode gets evicted due to memory pressure, we have to remove it
    from the fast commit list. However, that inode may have uncommitted
    changes that fast commits will lose. So, just fall back to full
    commits in this case. Also, rename the fast commit ineligiblity reason
    from "EXT4_FC_REASON_MEM" to "EXT4_FC_REASON_MEM_NOMEM" for better
    expression.

    Suggested-by: Jan Kara
    Signed-off-by: Harshad Shirwadkar
    Link: https://lore.kernel.org/r/20201106035911.1942128-3-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • Fast commit feature has flags in the file system as well in JBD2. The
    meaning of fast commit feature flags can get confusing. Update docs
    and code to add more documentation about it.

    Suggested-by: Jan Kara
    Signed-off-by: Harshad Shirwadkar
    Reviewed-by: Jan Kara
    Link: https://lore.kernel.org/r/20201106035911.1942128-2-harshadshirwadkar@gmail.com
    Signed-off-by: Theodore Ts'o

    Harshad Shirwadkar
     
  • It takes xattr_sem to check inline data again but without unlock it
    in case not have. So unlock it before return.

    Fixes: aef1c8513c1f ("ext4: let ext4_truncate handle inline data correctly")
    Reported-by: Dan Carpenter
    Cc: Tao Ma
    Signed-off-by: Joseph Qi
    Reviewed-by: Andreas Dilger
    Link: https://lore.kernel.org/r/1604370542-124630-1-git-send-email-joseph.qi@linux.alibaba.com
    Signed-off-by: Theodore Ts'o
    Cc: stable@kernel.org

    Joseph Qi
     
  • Smatch complains that "i" can be uninitialized if we don't enter the
    loop. I don't know if it's possible but we may as well silence this
    warning.

    [ Initialize i to sb->s_blocksize instead of 0. The only way the for
    loop could be skipped entirely is the in-memory data structures, in
    particular the bh->b_data for the on-disk superblock has gotten
    corrupted enough that calculated value of group is >= to
    ext4_get_groups_count(sb). In that case, we want to exit
    immediately without allocating a block. -- TYT ]

    Fixes: 8016e29f4362 ("ext4: fast commit recovery path")
    Signed-off-by: Dan Carpenter
    Link: https://lore.kernel.org/r/20201030114620.GB3251003@mwanda
    Signed-off-by: Theodore Ts'o
    Cc: stable@kernel.org

    Dan Carpenter
     
  • The macro MOPT_Q is used to indicates the mount option is related to
    quota stuff and is defined to be MOPT_NOSUPPORT when CONFIG_QUOTA is
    disabled. Normally the quota options are handled explicitly, so it
    didn't matter that the MOPT_STRING flag was missing, even though the
    usrjquota and grpjquota mount options take a string argument. It's
    important that's present in the !CONFIG_QUOTA case, since without
    MOPT_STRING, the mount option matcher will match usrjquota= followed
    by an integer, and will otherwise skip the table entry, and so "mount
    option not supported" error message is never reported.

    [ Fixed up the commit description to better explain why the fix
    works. --TYT ]

    Fixes: 26092bf52478 ("ext4: use a table-driven handler for mount options")
    Signed-off-by: Kaixu Xia
    Link: https://lore.kernel.org/r/1603986396-28917-1-git-send-email-kaixuxia@tencent.com
    Signed-off-by: Theodore Ts'o
    Cc: stable@kernel.org

    Kaixu Xia
     

30 Oct, 2020

1 commit

  • Pull ext4 fixes from Ted Ts'o:
    "Bug fixes for the new ext4 fast commit feature, plus a fix for the
    'data=journal' bug fix.

    Also use the generic casefolding support which has now landed in
    fs/libfs.c for 5.10"

    * tag 'ext4_for_linus_fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext4: indicate that fast_commit is available via /sys/fs/ext4/feature/...
    ext4: use generic casefolding support
    ext4: do not use extent after put_bh
    ext4: use IS_ERR() for error checking of path
    ext4: fix mmap write protection for data=journal mode
    jbd2: fix a kernel-doc markup
    ext4: use s_mount_flags instead of s_mount_state for fast commit state
    ext4: make num of fast commit blocks configurable
    ext4: properly check for dirty state in ext4_inode_datasync_dirty()
    ext4: fix double locking in ext4_fc_commit_dentry_updates()

    Linus Torvalds
     

29 Oct, 2020

3 commits