mirror of
https://github.com/versity/scoutfs.git
synced 2026-08-16 04:06:39 +00:00
scoutfs_readahead() will acquire the cluster read lock if the task doesn't already hold it. But it doesn't set the corresponding per-task variable, so the scoutfs_get_block() call won't find it and mistakenly warns that we aren't holding the lock. We need to set the per-task variable in scoutfs_readahead(). And since we can get into this path from scoutfs_fadvise(), and that function acquires the extent_sem, we also need to first acquire the cluster read lock and set the per-task variable there too. This fixes a lock ordering issue that we had not yet seen. Signed-off-by: Chris Kirby <ckirby@versity.com>