diff options
author | Bob Peterson <rpeterso@redhat.com> | 2019-05-22 17:21:21 +0300 |
---|---|---|
committer | Bob Peterson <rpeterso@redhat.com> | 2020-02-27 16:53:17 +0300 |
commit | 33dbd1e41a1dd549eb19a29477119d4e29766210 (patch) | |
tree | 16feec8a70ce9c7a0a24bb317c0cd8bb19564de4 /fs/gfs2/util.h | |
parent | 601ef0d52e9617588fcff3df26953592f2eb44ac (diff) | |
download | linux-33dbd1e41a1dd549eb19a29477119d4e29766210.tar.xz |
gfs2: fix infinite loop when checking ail item count before go_inval
Before this patch, the rgrp_go_inval and inode_go_inval functions each
checked if there were any items left on the ail count (by way of a
count), and if so, did a withdraw. But the withdraw code now uses
glocks when changing the file system to read-only status. So we can
not have glock functions withdrawing or a hang will likely result:
The glocks can't be serviced by the work_func if the work_func is
busy doing its own withdraw.
This patch removes the checks from the go_inval functions and adds
a centralized check in do_xmote to warn about the problem and not
withdraw, but flag the error so it's eventually caught when the logd
daemon eventually runs.
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Reviewed-by: Andreas Gruenbacher <agruenba@redhat.com>
Diffstat (limited to 'fs/gfs2/util.h')
0 files changed, 0 insertions, 0 deletions