mirror of
https://github.com/versity/scoutfs.git
synced 2026-05-01 18:35:43 +00:00
Let _recov_next_pending iterate over rids
Currently the server's recovery timeout work synchronously reclaims resources for each client whose recovery timed out. scoutfs_recov_next_pending() can always return the head of the pending list because its caller will always remove it from the list as it iterates. As we move to real fencing the server will be creating fence requests for all the timed out clients concurrently. It will need to iterate over all the rids for clients in recovery. So we sort recovery's pending list by rid and change _recov_next_pending to return the next pending rid after a rid argument. This lets the server iterate over all the pending rids at once. Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
@@ -486,7 +486,7 @@ static int process_waiting_requests(struct super_block *sb,
|
||||
|
||||
/* processing waits for all invalidation responses or recovery */
|
||||
if (!list_empty(&snode->invalidated) ||
|
||||
scoutfs_recov_next_pending(sb, SCOUTFS_RECOV_LOCKS) != 0) {
|
||||
scoutfs_recov_next_pending(sb, 0, SCOUTFS_RECOV_LOCKS) != 0) {
|
||||
ret = 0;
|
||||
goto out;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user