On Thu, Nov 16, 2017 at 05:03:08PM -0800, Liu Bo wrote:
> On Tue, Nov 14, 2017 at 04:56:55PM -0500, Josef Bacik wrote:
> > From: Josef Bacik <jba...@fb.com>
> > 
> > In order to more efficiently support sub-page blocksizes we need to stop
> > allocating pages from pagecache for our metadata.  Instead switch to using 
> > the
> > account_metadata* counters for making sure we are keeping the system aware 
> > of
> > how much dirty metadata we have, and use the ->free_cached_objects super
> > operation in order to handle freeing up extent buffers.  This greatly 
> > simplifies
> > how we deal with extent buffers as now we no longer have to tie the page 
> > cache
> > reclaimation stuff to the extent buffer stuff.  This will also allow us to
> > simply kmalloc() our data for sub-page blocksizes.
> >
> 
> The patch is too big for one to review, but so far it looks good to
> me, a few comments.
>

Yeah unfortunately I already did all the prep work I could in previous series,
this stuff has to all be done whole hog otherwise things won't compile.
 
> > Signed-off-by: Josef Bacik <jba...@fb.com>
> > ---
> ...
> >  
> > -static int check_async_write(struct btrfs_inode *bi)
> > +static int check_async_write(void)
> >  {
> > -   if (atomic_read(&bi->sync_writers))
> > +   if (current->journal_info)
> 
> Please add a comment that explains we're called from commit
> transaction.
> 

Yup.

> >             return 0;
> >  #ifdef CONFIG_X86
> >     if (static_cpu_has(X86_FEATURE_XMM4_2))
> ...
> > @@ -4977,12 +5054,12 @@ struct extent_buffer *alloc_extent_buffer(struct 
> > btrfs_fs_info *fs_info,
> >     unsigned long len = fs_info->nodesize;
> >     unsigned long num_pages = num_extent_pages(start, len);
> >     unsigned long i;
> > -   unsigned long index = start >> PAGE_SHIFT;
> >     struct extent_buffer *eb;
> >     struct extent_buffer *exists = NULL;
> >     struct page *p;
> > -   struct address_space *mapping = fs_info->btree_inode->i_mapping;
> > -   int uptodate = 1;
> > +   struct btrfs_eb_info *eb_info = fs_info->eb_info;
> > +// struct zone *last_zone = NULL;
> > +// struct pg_data_t *last_pgdata = NULL;
> 
> hmm, a typo?
> 

Oops.  Thanks,

Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to