lkml.org 
[lkml]   [2022]   [Aug]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.19 1135/1157] xen-blkfront: Apply feature_persistent parameter when connect
    Date
    From: SeongJae Park <sj@kernel.org>

    commit 402c43ea6b34a1b371ffeed9adf907402569eaf5 upstream.

    In some use cases[1], the backend is created while the frontend doesn't
    support the persistent grants feature, but later the frontend can be
    changed to support the feature and reconnect. In the past, 'blkback'
    enabled the persistent grants feature since it unconditionally checked
    if frontend supports the persistent grants feature for every connect
    ('connect_ring()') and decided whether it should use persistent grans or
    not.

    However, commit aac8a70db24b ("xen-blkback: add a parameter for
    disabling of persistent grants") has mistakenly changed the behavior.
    It made the frontend feature support check to not be repeated once it
    shown the 'feature_persistent' as 'false', or the frontend doesn't
    support persistent grants.

    Similar behavioral change has made on 'blkfront' by commit 74a852479c68
    ("xen-blkfront: add a parameter for disabling of persistent grants").
    This commit changes the behavior of the parameter to make effect for
    every connect, so that the previous behavior of 'blkfront' can be
    restored.

    [1] https://lore.kernel.org/xen-devel/CAJwUmVB6H3iTs-C+U=v-pwJB7-_ZRHPxHzKRJZ22xEPW7z8a=g@mail.gmail.com/

    Fixes: 74a852479c68 ("xen-blkfront: add a parameter for disabling of persistent grants")
    Cc: <stable@vger.kernel.org> # 5.10.x
    Signed-off-by: SeongJae Park <sj@kernel.org>
    Reviewed-by: Maximilian Heyne <mheyne@amazon.de>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Link: https://lore.kernel.org/r/20220715225108.193398-4-sj@kernel.org
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    Documentation/ABI/testing/sysfs-driver-xen-blkfront | 2 +-
    drivers/block/xen-blkfront.c | 4 +---
    2 files changed, 2 insertions(+), 4 deletions(-)

    --- a/Documentation/ABI/testing/sysfs-driver-xen-blkfront
    +++ b/Documentation/ABI/testing/sysfs-driver-xen-blkfront
    @@ -15,5 +15,5 @@ KernelVersion: 5.10
    Contact: Maximilian Heyne <mheyne@amazon.de>
    Description:
    Whether to enable the persistent grants feature or not. Note
    - that this option only takes effect on newly created frontends.
    + that this option only takes effect on newly connected frontends.
    The default is Y (enable).
    --- a/drivers/block/xen-blkfront.c
    +++ b/drivers/block/xen-blkfront.c
    @@ -1988,8 +1988,6 @@ static int blkfront_probe(struct xenbus_
    info->vdevice = vdevice;
    info->connected = BLKIF_STATE_DISCONNECTED;

    - info->feature_persistent = feature_persistent;
    -
    /* Front end dir is a number, which is used as the id. */
    info->handle = simple_strtoul(strrchr(dev->nodename, '/')+1, NULL, 0);
    dev_set_drvdata(&dev->dev, info);
    @@ -2283,7 +2281,7 @@ static void blkfront_gather_backend_feat
    if (xenbus_read_unsigned(info->xbdev->otherend, "feature-discard", 0))
    blkfront_setup_discard(info);

    - if (info->feature_persistent)
    + if (feature_persistent)
    info->feature_persistent =
    !!xenbus_read_unsigned(info->xbdev->otherend,
    "feature-persistent", 0);

    \
     
     \ /
      Last update: 2022-08-16 06:56    [W:4.116 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site