Message ID | 20181017065606.8707-1-wqu@suse.com (mailing list archive) |
---|---|
Headers | show |
Series | btrfs: Refactor find_free_extent() | expand |
On Wed, Oct 17, 2018 at 02:56:02PM +0800, Qu Wenruo wrote: > Can be fetched from github: > https://github.com/adam900710/linux/tree/refactor_find_free_extent > > Which is based on v4.19-rc1. > > extent-tree.c::find_free_extent() could be one of the most > ill-structured functions, it has at least 6 non-exit tags and jumps > between them. > > Refactor it into 4 parts: > > 1) find_free_extent() > The main entrance, does the main work of block group iteration and > block group selection. > Now this function doesn't care nor handles free extent search by > itself. > > 2) find_free_extent_clustered() > Do clustered free extent search. > May try to build/re-fill cluster. > > 3) find_free_extent_unclustered() > Do unclustered free extent search. > May try to fill free space cache. > > 4) find_free_extent_update_loop() > Do the loop based black magic. > May allocate new chunk. > > With this patch, at least we should make find_free_extent() a little > easier to read, and provides the basis for later work on this function. > > Current refactor is trying not to touch the original functionality, thus > the helper structure find_free_extent_ctl still contains a lot of > unrelated members. > But it should not change how find_free_extent() works at all. Thanks, patches added to for-next. It looks much better than before, more cleanups welcome.
On Wed, Oct 17, 2018 at 02:56:02PM +0800, Qu Wenruo wrote: > Can be fetched from github: > https://github.com/adam900710/linux/tree/refactor_find_free_extent Can you please rebase it again, on top of current misc-4.20? Ie. the 2nd pull request. There were some fixes to the space infos, a new variable added to find_free_extent (conflict in the 1st patch) that was easy to fix, but further patches move code around and it was not a simple copy as the variable would probably need to be added to the free space ctl. This is a change beyond the level I'm confident doing during reabses and don't want to introduce a bug to your code. This should be the last rebase of this series. Things that are ready will go from topic branches to misc-next after rc1 is out. Thanks for the help.
On 2018/11/2 上午2:54, David Sterba wrote: > On Wed, Oct 17, 2018 at 02:56:02PM +0800, Qu Wenruo wrote: >> Can be fetched from github: >> https://github.com/adam900710/linux/tree/refactor_find_free_extent > > Can you please rebase it again, on top of current misc-4.20? Ie. the 2nd > pull request. There were some fixes to the space infos, a new variable > added to find_free_extent (conflict in the 1st patch) that was easy to > fix, but further patches move code around and it was not a simple copy > as the variable would probably need to be added to the free space ctl. > > This is a change beyond the level I'm confident doing during reabses and > don't want to introduce a bug to your code. This should be the last > rebase of this series. Things that are ready will go from topic branches > to misc-next after rc1 is out. Thanks for the help. No problem at all. Will sent out soon. Thanks, Qu