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



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux