diff options
| author | Linus Torvalds <[email protected]> | 2021-11-14 12:18:22 -0800 | 
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2021-11-14 12:18:22 -0800 | 
| commit | ce49bfc8d0372212ccd7d1c1b45c60b077f77684 (patch) | |
| tree | b18a00ebf4d5c03329f2f8181407bf2bca345f0f | |
| parent | c3b68c27f58a07130382f3fa6320c3652ad76f15 (diff) | |
| parent | 4a6b35b3b3f28df81fea931dc77c4c229cbdb5b2 (diff) | |
Merge tag 'xfs-5.16-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux
Pull xfs cleanups from Darrick Wong:
 "The most 'exciting' aspect of this branch is that the xfsprogs
  maintainer and I have worked through the last of the code
  discrepancies between kernel and userspace libxfs such that there are
  no code differences between the two except for #includes.
  IOWs, diff suffices to demonstrate that the userspace tools behave the
  same as the kernel, and kernel-only bits are clearly marked in the
  /kernel/ source code instead of just the userspace source.
  Summary:
   - Clean up open-coded swap() calls.
   - A little bit of #ifdef golf to complete the reunification of the
     kernel and userspace libxfs source code"
* tag 'xfs-5.16-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
  xfs: sync xfs_btree_split macros with userspace libxfs
  xfs: #ifdef out perag code for userspace
  xfs: use swap() to make dabtree code cleaner
| -rw-r--r-- | fs/xfs/libxfs/xfs_ag.c | 2 | ||||
| -rw-r--r-- | fs/xfs/libxfs/xfs_ag.h | 8 | ||||
| -rw-r--r-- | fs/xfs/libxfs/xfs_btree.c | 4 | ||||
| -rw-r--r-- | fs/xfs/libxfs/xfs_da_btree.c | 5 | 
4 files changed, 12 insertions, 7 deletions
| diff --git a/fs/xfs/libxfs/xfs_ag.c b/fs/xfs/libxfs/xfs_ag.c index d7d875cef07a..1e4ee042d52f 100644 --- a/fs/xfs/libxfs/xfs_ag.c +++ b/fs/xfs/libxfs/xfs_ag.c @@ -248,6 +248,7 @@ xfs_initialize_perag(  		spin_unlock(&mp->m_perag_lock);  		radix_tree_preload_end(); +#ifdef __KERNEL__  		/* Place kernel structure only init below this point. */  		spin_lock_init(&pag->pag_ici_lock);  		spin_lock_init(&pag->pagb_lock); @@ -257,6 +258,7 @@ xfs_initialize_perag(  		init_waitqueue_head(&pag->pagb_wait);  		pag->pagb_count = 0;  		pag->pagb_tree = RB_ROOT; +#endif /* __KERNEL__ */  		error = xfs_buf_hash_init(pag);  		if (error) diff --git a/fs/xfs/libxfs/xfs_ag.h b/fs/xfs/libxfs/xfs_ag.h index 3f597cad2c33..e411d51c2589 100644 --- a/fs/xfs/libxfs/xfs_ag.h +++ b/fs/xfs/libxfs/xfs_ag.h @@ -64,6 +64,10 @@ struct xfs_perag {  	/* Blocks reserved for the reverse mapping btree. */  	struct xfs_ag_resv	pag_rmapbt_resv; +	/* for rcu-safe freeing */ +	struct rcu_head	rcu_head; + +#ifdef __KERNEL__  	/* -- kernel only structures below this line -- */  	/* @@ -90,9 +94,6 @@ struct xfs_perag {  	spinlock_t	pag_buf_lock;	/* lock for pag_buf_hash */  	struct rhashtable pag_buf_hash; -	/* for rcu-safe freeing */ -	struct rcu_head	rcu_head; -  	/* background prealloc block trimming */  	struct delayed_work	pag_blockgc_work; @@ -102,6 +103,7 @@ struct xfs_perag {  	 * or have some other means to control concurrency.  	 */  	struct rhashtable	pagi_unlinked_hash; +#endif /* __KERNEL__ */  };  int xfs_initialize_perag(struct xfs_mount *mp, xfs_agnumber_t agcount, diff --git a/fs/xfs/libxfs/xfs_btree.c b/fs/xfs/libxfs/xfs_btree.c index b4e19aacb9de..f18a875f51c6 100644 --- a/fs/xfs/libxfs/xfs_btree.c +++ b/fs/xfs/libxfs/xfs_btree.c @@ -2785,6 +2785,7 @@ error0:  	return error;  } +#ifdef __KERNEL__  struct xfs_btree_split_args {  	struct xfs_btree_cur	*cur;  	int			level; @@ -2870,6 +2871,9 @@ xfs_btree_split(  	destroy_work_on_stack(&args.work);  	return args.result;  } +#else +#define xfs_btree_split	__xfs_btree_split +#endif /* __KERNEL__ */  /* diff --git a/fs/xfs/libxfs/xfs_da_btree.c b/fs/xfs/libxfs/xfs_da_btree.c index dd7a2dbce1d1..9dc1ecb9713d 100644 --- a/fs/xfs/libxfs/xfs_da_btree.c +++ b/fs/xfs/libxfs/xfs_da_btree.c @@ -864,7 +864,6 @@ xfs_da3_node_rebalance(  {  	struct xfs_da_intnode	*node1;  	struct xfs_da_intnode	*node2; -	struct xfs_da_intnode	*tmpnode;  	struct xfs_da_node_entry *btree1;  	struct xfs_da_node_entry *btree2;  	struct xfs_da_node_entry *btree_s; @@ -894,9 +893,7 @@ xfs_da3_node_rebalance(  	    ((be32_to_cpu(btree2[0].hashval) < be32_to_cpu(btree1[0].hashval)) ||  	     (be32_to_cpu(btree2[nodehdr2.count - 1].hashval) <  			be32_to_cpu(btree1[nodehdr1.count - 1].hashval)))) { -		tmpnode = node1; -		node1 = node2; -		node2 = tmpnode; +		swap(node1, node2);  		xfs_da3_node_hdr_from_disk(dp->i_mount, &nodehdr1, node1);  		xfs_da3_node_hdr_from_disk(dp->i_mount, &nodehdr2, node2);  		btree1 = nodehdr1.btree; |