lkml.org 
[lkml]   [2020]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 51/57] afs: Fix to actually set AFS_SERVER_FL_HAVE_EPOCH
    Date
    From: David Howells <dhowells@redhat.com>

    [ Upstream commit 69cf3978f3ada4e54beae4ad44868b5627864884 ]

    AFS keeps track of the epoch value from the rxrpc protocol to note (a) when
    a fileserver appears to have restarted and (b) when different endpoints of
    a fileserver do not appear to be associated with the same fileserver
    (ie. all probes back from a fileserver from all of its interfaces should
    carry the same epoch).

    However, the AFS_SERVER_FL_HAVE_EPOCH flag that indicates that we've
    received the server's epoch is never set, though it is used.

    Fix this to set the flag when we first receive an epoch value from a probe
    sent to the filesystem client from the fileserver.

    Fixes: 3bf0fb6f33dd ("afs: Probe multiple fileservers simultaneously")
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/afs/cmservice.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/fs/afs/cmservice.c b/fs/afs/cmservice.c
    index b378cd780ed54..fc5eb0f893049 100644
    --- a/fs/afs/cmservice.c
    +++ b/fs/afs/cmservice.c
    @@ -169,7 +169,7 @@ static int afs_record_cm_probe(struct afs_call *call, struct afs_server *server)

    spin_lock(&server->probe_lock);

    - if (!test_bit(AFS_SERVER_FL_HAVE_EPOCH, &server->flags)) {
    + if (!test_and_set_bit(AFS_SERVER_FL_HAVE_EPOCH, &server->flags)) {
    server->cm_epoch = call->epoch;
    server->probe.cm_epoch = call->epoch;
    goto out;
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-04-30 15:54    [W:4.030 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site