Commit ce49bfc8 authored by Linus Torvalds's avatar Linus Torvalds

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
parents c3b68c27 4a6b35b3
...@@ -248,6 +248,7 @@ xfs_initialize_perag( ...@@ -248,6 +248,7 @@ xfs_initialize_perag(
spin_unlock(&mp->m_perag_lock); spin_unlock(&mp->m_perag_lock);
radix_tree_preload_end(); radix_tree_preload_end();
#ifdef __KERNEL__
/* Place kernel structure only init below this point. */ /* Place kernel structure only init below this point. */
spin_lock_init(&pag->pag_ici_lock); spin_lock_init(&pag->pag_ici_lock);
spin_lock_init(&pag->pagb_lock); spin_lock_init(&pag->pagb_lock);
...@@ -257,6 +258,7 @@ xfs_initialize_perag( ...@@ -257,6 +258,7 @@ xfs_initialize_perag(
init_waitqueue_head(&pag->pagb_wait); init_waitqueue_head(&pag->pagb_wait);
pag->pagb_count = 0; pag->pagb_count = 0;
pag->pagb_tree = RB_ROOT; pag->pagb_tree = RB_ROOT;
#endif /* __KERNEL__ */
error = xfs_buf_hash_init(pag); error = xfs_buf_hash_init(pag);
if (error) if (error)
......
...@@ -64,6 +64,10 @@ struct xfs_perag { ...@@ -64,6 +64,10 @@ struct xfs_perag {
/* Blocks reserved for the reverse mapping btree. */ /* Blocks reserved for the reverse mapping btree. */
struct xfs_ag_resv pag_rmapbt_resv; struct xfs_ag_resv pag_rmapbt_resv;
/* for rcu-safe freeing */
struct rcu_head rcu_head;
#ifdef __KERNEL__
/* -- kernel only structures below this line -- */ /* -- kernel only structures below this line -- */
/* /*
...@@ -90,9 +94,6 @@ struct xfs_perag { ...@@ -90,9 +94,6 @@ struct xfs_perag {
spinlock_t pag_buf_lock; /* lock for pag_buf_hash */ spinlock_t pag_buf_lock; /* lock for pag_buf_hash */
struct rhashtable pag_buf_hash; struct rhashtable pag_buf_hash;
/* for rcu-safe freeing */
struct rcu_head rcu_head;
/* background prealloc block trimming */ /* background prealloc block trimming */
struct delayed_work pag_blockgc_work; struct delayed_work pag_blockgc_work;
...@@ -102,6 +103,7 @@ struct xfs_perag { ...@@ -102,6 +103,7 @@ struct xfs_perag {
* or have some other means to control concurrency. * or have some other means to control concurrency.
*/ */
struct rhashtable pagi_unlinked_hash; struct rhashtable pagi_unlinked_hash;
#endif /* __KERNEL__ */
}; };
int xfs_initialize_perag(struct xfs_mount *mp, xfs_agnumber_t agcount, int xfs_initialize_perag(struct xfs_mount *mp, xfs_agnumber_t agcount,
......
...@@ -2785,6 +2785,7 @@ __xfs_btree_split( ...@@ -2785,6 +2785,7 @@ __xfs_btree_split(
return error; return error;
} }
#ifdef __KERNEL__
struct xfs_btree_split_args { struct xfs_btree_split_args {
struct xfs_btree_cur *cur; struct xfs_btree_cur *cur;
int level; int level;
...@@ -2870,6 +2871,9 @@ xfs_btree_split( ...@@ -2870,6 +2871,9 @@ xfs_btree_split(
destroy_work_on_stack(&args.work); destroy_work_on_stack(&args.work);
return args.result; return args.result;
} }
#else
#define xfs_btree_split __xfs_btree_split
#endif /* __KERNEL__ */
/* /*
......
...@@ -864,7 +864,6 @@ xfs_da3_node_rebalance( ...@@ -864,7 +864,6 @@ xfs_da3_node_rebalance(
{ {
struct xfs_da_intnode *node1; struct xfs_da_intnode *node1;
struct xfs_da_intnode *node2; struct xfs_da_intnode *node2;
struct xfs_da_intnode *tmpnode;
struct xfs_da_node_entry *btree1; struct xfs_da_node_entry *btree1;
struct xfs_da_node_entry *btree2; struct xfs_da_node_entry *btree2;
struct xfs_da_node_entry *btree_s; struct xfs_da_node_entry *btree_s;
...@@ -894,9 +893,7 @@ xfs_da3_node_rebalance( ...@@ -894,9 +893,7 @@ xfs_da3_node_rebalance(
((be32_to_cpu(btree2[0].hashval) < be32_to_cpu(btree1[0].hashval)) || ((be32_to_cpu(btree2[0].hashval) < be32_to_cpu(btree1[0].hashval)) ||
(be32_to_cpu(btree2[nodehdr2.count - 1].hashval) < (be32_to_cpu(btree2[nodehdr2.count - 1].hashval) <
be32_to_cpu(btree1[nodehdr1.count - 1].hashval)))) { be32_to_cpu(btree1[nodehdr1.count - 1].hashval)))) {
tmpnode = node1; swap(node1, node2);
node1 = node2;
node2 = tmpnode;
xfs_da3_node_hdr_from_disk(dp->i_mount, &nodehdr1, node1); xfs_da3_node_hdr_from_disk(dp->i_mount, &nodehdr1, node1);
xfs_da3_node_hdr_from_disk(dp->i_mount, &nodehdr2, node2); xfs_da3_node_hdr_from_disk(dp->i_mount, &nodehdr2, node2);
btree1 = nodehdr1.btree; btree1 = nodehdr1.btree;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment