lkml.org 
[lkml]   [2020]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 105/330] ext4: make dioread_nolock the default
    Date
    From: Theodore Ts'o <tytso@mit.edu>

    [ Upstream commit 244adf6426ee31a83f397b700d964cff12a247d3 ]

    This fixes the direct I/O versus writeback race which can reveal stale
    data, and it improves the tail latency of commits on slow devices.

    Link: https://lore.kernel.org/r/20200125022254.1101588-1-tytso@mit.edu
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/ext4/super.c | 7 ++++---
    1 file changed, 4 insertions(+), 3 deletions(-)

    diff --git a/fs/ext4/super.c b/fs/ext4/super.c
    index 4aae7e3e89a12..c32b8161ad3e9 100644
    --- a/fs/ext4/super.c
    +++ b/fs/ext4/super.c
    @@ -1546,6 +1546,7 @@ static const match_table_t tokens = {
    {Opt_auto_da_alloc, "auto_da_alloc"},
    {Opt_noauto_da_alloc, "noauto_da_alloc"},
    {Opt_dioread_nolock, "dioread_nolock"},
    + {Opt_dioread_lock, "nodioread_nolock"},
    {Opt_dioread_lock, "dioread_lock"},
    {Opt_discard, "discard"},
    {Opt_nodiscard, "nodiscard"},
    @@ -3750,6 +3751,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
    set_opt(sb, NO_UID32);
    /* xattr user namespace & acls are now defaulted on */
    set_opt(sb, XATTR_USER);
    + set_opt(sb, DIOREAD_NOLOCK);
    #ifdef CONFIG_EXT4_FS_POSIX_ACL
    set_opt(sb, POSIX_ACL);
    #endif
    @@ -3927,9 +3929,8 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
    #endif

    if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) {
    - printk_once(KERN_WARNING "EXT4-fs: Warning: mounting "
    - "with data=journal disables delayed "
    - "allocation and O_DIRECT support!\n");
    + printk_once(KERN_WARNING "EXT4-fs: Warning: mounting with data=journal disables delayed allocation, dioread_nolock, and O_DIRECT support!\n");
    + clear_opt(sb, DIOREAD_NOLOCK);
    if (test_opt2(sb, EXPLICIT_DELALLOC)) {
    ext4_msg(sb, KERN_ERR, "can't mount with "
    "both data=journal and delalloc");
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-09-18 05:08    [W:5.519 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site