Re: [PATCH v4 1/3] btrfs: add might_sleep() to some places in update_qgroup_limit_item()
From: Qu Wenruo
Date: Wed Nov 16 2022 - 03:44:24 EST
On 2022/11/16 16:09, ChenXiaoSong wrote:
在 2022/11/16 6:48, Qu Wenruo 写道:
Looks good.
We may want to add more in other locations, but this is really a good
start.
Reviewed-by: Qu Wenruo <wqu@xxxxxxxx>
Thanks,
Qu
If I just add might_sleep() in btrfs_alloc_path() and
btrfs_search_slot(), is it reasonable?
Adding it to btrfs_search_slot() is definitely correct.
But why for btrfs_alloc_path()? Wouldn't kmem_cache_zalloc() itself
already do the might_sleep_if() somewhere?
I just looked the call chain, and indeed it is doing the check already:
btrfs_alloc_path()
|- kmem_cache_zalloc()
|- kmem_cache_alloc()
|- __kmem_cache_alloc_lru()
|- slab_alloc()
|- slab_alloc_node()
|- slab_pre_alloc_hook()
|- might_alloc()
|- might_sleep_if()
Thanks,
Qu
Or just add might_sleep() to one place in update_qgroup_limit_item() ?