lkml.org 
[lkml]   [2020]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 05/21] gfs2: check for live vs. read-only file system in gfs2_fitrim
    Date
    From: Bob Peterson <rpeterso@redhat.com>

    [ Upstream commit c5c68724696e7d2f8db58a5fce3673208d35c485 ]

    Before this patch, gfs2_fitrim was not properly checking for a "live" file
    system. If the file system had something to trim and the file system
    was read-only (or spectator) it would start the trim, but when it starts
    the transaction, gfs2_trans_begin returns -EROFS (read-only file system)
    and it errors out. However, if the file system was already trimmed so
    there's no work to do, it never called gfs2_trans_begin. That code is
    bypassed so it never returns the error. Instead, it returns a good
    return code with 0 work. All this makes for inconsistent behavior:
    The same fstrim command can return -EROFS in one case and 0 in another.
    This tripped up xfstests generic/537 which reports the error as:

    +fstrim with unrecovered metadata just ate your filesystem

    This patch adds a check for a "live" (iow, active journal, iow, RW)
    file system, and if not, returns the error properly.

    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/gfs2/rgrp.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
    index 1686a40099f21..de9b561b1c385 100644
    --- a/fs/gfs2/rgrp.c
    +++ b/fs/gfs2/rgrp.c
    @@ -1387,6 +1387,9 @@ int gfs2_fitrim(struct file *filp, void __user *argp)
    if (!capable(CAP_SYS_ADMIN))
    return -EPERM;

    + if (!test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags))
    + return -EROFS;
    +
    if (!blk_queue_discard(q))
    return -EOPNOTSUPP;

    --
    2.27.0
    \
     
     \ /
      Last update: 2020-11-10 04:56    [W:4.089 / U:0.160 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site