Re: [PATCH 09/10] Btrfs: kill the btree_inode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <jbacik@xxxxxx>
> > 
> > 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 <jbacik@xxxxxx>
> > ---
> ...
> >  
> > -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, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]
  Powered by Linux