lkml.org 
[lkml]   [2012]   [May]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[ 37/94] swap: dont do discard if no discard option added
    3.3-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Shaohua Li <shli@kernel.org>

    commit 052b1987faca3606109d88d96bce124851f7c4c2 upstream.

    When swapon() was not passed the SWAP_FLAG_DISCARD option, sys_swapon()
    will still perform a discard operation. This can cause problems if
    discard is slow or buggy.

    Reverse the order of the check so that a discard operation is performed
    only if the sys_swapon() caller is attempting to enable discard.

    Signed-off-by: Shaohua Li <shli@fusionio.com>
    Reported-by: Holger Kiehl <Holger.Kiehl@dwd.de>
    Tested-by: Holger Kiehl <Holger.Kiehl@dwd.de>
    Cc: Hugh Dickins <hughd@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: William Dauchy <wdauchy@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    mm/swapfile.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/mm/swapfile.c
    +++ b/mm/swapfile.c
    @@ -2103,7 +2103,7 @@ SYSCALL_DEFINE2(swapon, const char __use
    p->flags |= SWP_SOLIDSTATE;
    p->cluster_next = 1 + (random32() % p->highest_bit);
    }
    - if (discard_swap(p) == 0 && (swap_flags & SWAP_FLAG_DISCARD))
    + if ((swap_flags & SWAP_FLAG_DISCARD) && discard_swap(p) == 0)
    p->flags |= SWP_DISCARDABLE;
    }




    \
     
     \ /
      Last update: 2012-05-27 04:42    [W:4.159 / U:0.668 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site