diff options
author | David Howells <dhowells@redhat.com> | 2020-04-16 20:17:13 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-05-02 09:48:43 +0300 |
commit | c2bdc86ec8ac483e76c4bd59fcafad3a3cf91539 (patch) | |
tree | 766aa5209f5d81b1411565ef2f776ad4c15fa73c /fs/afs/server.c | |
parent | 9dcb1844f884e8294e46ff317b0532068784eb5f (diff) | |
download | linux-c2bdc86ec8ac483e76c4bd59fcafad3a3cf91539.tar.xz |
afs: Make record checking use TASK_UNINTERRUPTIBLE when appropriate
commit c4bfda16d1b40d1c5941c61b5aa336bdd2d9904a upstream.
When an operation is meant to be done uninterruptibly (such as
FS.StoreData), we should not be allowing volume and server record checking
to be interrupted.
Fixes: d2ddc776a458 ("afs: Overhaul volume and server record caching and fileserver rotation")
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/afs/server.c')
-rw-r--r-- | fs/afs/server.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/fs/afs/server.c b/fs/afs/server.c index ca8115ba1724..d3a9288f7556 100644 --- a/fs/afs/server.c +++ b/fs/afs/server.c @@ -595,12 +595,9 @@ retry: } ret = wait_on_bit(&server->flags, AFS_SERVER_FL_UPDATING, - TASK_INTERRUPTIBLE); + (fc->flags & AFS_FS_CURSOR_INTR) ? + TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE); if (ret == -ERESTARTSYS) { - if (!(fc->flags & AFS_FS_CURSOR_INTR) && server->addresses) { - _leave(" = t [intr]"); - return true; - } fc->error = ret; _leave(" = f [intr]"); return false; |