lkml.org 
[lkml]   [2020]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.6 091/606] ubifs: remove broken lazytime support
    Date
    From: Christoph Hellwig <hch@lst.de>

    [ Upstream commit ecf84096a526f2632ee85c32a3d05de3fa60ce80 ]

    When "ubifs: introduce UBIFS_ATIME_SUPPORT to ubifs" introduced atime
    support to ubifs, it also added lazytime support. As far as I can tell
    the lazytime support is terminally broken, as it causes
    mark_inode_dirty_sync to be called from __writeback_single_inode, which
    will then trigger the locking assert in ubifs_dirty_inode. Just remove
    the broken lazytime support for now, it can be added back later,
    especially as some infrastructure changes should make that easier soon.

    Fixes: 8c1c5f263833 ("ubifs: introduce UBIFS_ATIME_SUPPORT to ubifs")
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/ubifs/file.c | 6 +-----
    1 file changed, 1 insertion(+), 5 deletions(-)

    diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
    index 743928efffc1..49fe062ce45e 100644
    --- a/fs/ubifs/file.c
    +++ b/fs/ubifs/file.c
    @@ -1375,7 +1375,6 @@ int ubifs_update_time(struct inode *inode, struct timespec64 *time,
    struct ubifs_info *c = inode->i_sb->s_fs_info;
    struct ubifs_budget_req req = { .dirtied_ino = 1,
    .dirtied_ino_d = ALIGN(ui->data_len, 8) };
    - int iflags = I_DIRTY_TIME;
    int err, release;

    if (!IS_ENABLED(CONFIG_UBIFS_ATIME_SUPPORT))
    @@ -1393,11 +1392,8 @@ int ubifs_update_time(struct inode *inode, struct timespec64 *time,
    if (flags & S_MTIME)
    inode->i_mtime = *time;

    - if (!(inode->i_sb->s_flags & SB_LAZYTIME))
    - iflags |= I_DIRTY_SYNC;
    -
    release = ui->dirty;
    - __mark_inode_dirty(inode, iflags);
    + __mark_inode_dirty(inode, I_DIRTY_SYNC);
    mutex_unlock(&ui->ui_mutex);
    if (release)
    ubifs_release_budget(c, &req);
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-06-09 02:24    [W:4.052 / U:0.208 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site