On 1.04.19 г. 20:07 ч., David Sterba wrote: > On Wed, Mar 27, 2019 at 02:24:11PM +0200, Nikolay Borisov wrote: >> btrfs_device structs are freed from RCU context since device iteration >> is protected by RCU. Currently this is achieved by using call_rcu since >> no blocking functions are called within btrfs_free_device. Future >> refactoring of pending/pinned chunks will require calling sleeping >> functions. This patch is in preparation for these changes by simply >> switching from RCU callbacks to explicit calls of synchronize_rcu and >> calling btrfs_free_device directly. > > A paragraph why this transition is correct would be good. It looks > correct to me, so this is a matter of documentation. > Well call_rcu and synchronize_rcu() are functionally equivalent in that they run the code that follows them after a grace period has expired.
