Message ID | 20190704152500.20865-1-fdmanana@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Btrfs: fixes for inode cache (-o inode_cache) | expand |
On 4.07.19 г. 18:25 ч., fdmanana@kernel.org wrote: > From: Filipe Manana <fdmanana@suse.com> > > If we need to start an inode caching thread, because none currently exists > on disk, we can wake up all waiters as soon as we mark the range starting > at root's highest objectid + 1 and ending at BTRFS_LAST_FREE_OBJECTID as > free, so that they don't need to wait for the caching thread to start and > do some progress. We follow the same approach within the caching thread, > since as soon as it finds a free range and marks it as free space in the > cache, it wakes up all waiters. So improve this by adding such a wakeup > call after marking that initial range as free space. > > Fixes: a47d6b70e28040 ("Btrfs: setup free ino caching in a more asynchronous way") > Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: Nikolay Borisov <nborisov@suse.com> > --- > fs/btrfs/inode-map.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c > index 4820e05ea6bd..cb107d168019 100644 > --- a/fs/btrfs/inode-map.c > +++ b/fs/btrfs/inode-map.c > @@ -175,6 +175,7 @@ static void start_caching(struct btrfs_root *root) > if (!ret && objectid <= BTRFS_LAST_FREE_OBJECTID) { > __btrfs_add_free_space(fs_info, ctl, objectid, > BTRFS_LAST_FREE_OBJECTID - objectid + 1); > + wake_up(&root->ino_cache_wait); > } > > tsk = kthread_run(caching_kthread, root, "btrfs-ino-cache-%llu", >
diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c index 4820e05ea6bd..cb107d168019 100644 --- a/fs/btrfs/inode-map.c +++ b/fs/btrfs/inode-map.c @@ -175,6 +175,7 @@ static void start_caching(struct btrfs_root *root) if (!ret && objectid <= BTRFS_LAST_FREE_OBJECTID) { __btrfs_add_free_space(fs_info, ctl, objectid, BTRFS_LAST_FREE_OBJECTID - objectid + 1); + wake_up(&root->ino_cache_wait); } tsk = kthread_run(caching_kthread, root, "btrfs-ino-cache-%llu",