[PATCH V3 RFC] xfsprogs: remove stubbed-out kernel functions out from xfs_shared.h

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

 



Remove these kernel stubs by #ifdeffing code instead.

Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
---

Dave preferred #ifdefs over stubs, and this is what I came up with.

Honestly, I think this is worse, and will lead to more libxfs-sync pain
unless we're willing to scatter #ifdefs around the kernel code as well,
but I figured I'd put this out there for discussion.

diff --git a/libxfs/xfs_ag.c b/libxfs/xfs_ag.c
index 9eda6eba..c01986f7 100644
--- a/libxfs/xfs_ag.c
+++ b/libxfs/xfs_ag.c
@@ -170,7 +170,9 @@ __xfs_free_perag(
 {
 	struct xfs_perag *pag = container_of(head, struct xfs_perag, rcu_head);
+#ifdef __KERNEL__
 	ASSERT(!delayed_work_pending(&pag->pag_blockgc_work));
+#endif	/* __KERNEL__ */
 	ASSERT(atomic_read(&pag->pag_ref) == 0);
 	kmem_free(pag);
 }
@@ -192,9 +194,11 @@ xfs_free_perag(
 		ASSERT(pag);
 		ASSERT(atomic_read(&pag->pag_ref) == 0);
+#ifdef __KERNEL__
 		cancel_delayed_work_sync(&pag->pag_blockgc_work);
 		xfs_iunlink_destroy(pag);
 		xfs_buf_hash_destroy(pag);
+#endif	/* __KERNEL__ */
call_rcu(&pag->rcu_head, __xfs_free_perag);
 	}
@@ -246,6 +250,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);
@@ -267,6 +272,7 @@ xfs_initialize_perag(
 		/* first new pag is fully initialized */
 		if (first_initialised == NULLAGNUMBER)
 			first_initialised = index;
+#endif	/* __KERNEL__ */
 	}
index = xfs_set_inode_alloc(mp, agcount);
@@ -277,10 +283,12 @@ xfs_initialize_perag(
 	mp->m_ag_prealloc_blocks = xfs_prealloc_blocks(mp);
 	return 0;
+#ifdef __KERNEL__
 out_hash_destroy:
 	xfs_buf_hash_destroy(pag);
 out_remove_pag:
 	radix_tree_delete(&mp->m_perag_tree, index);
+#endif	/* __KERNEL__ */
 out_free_pag:
 	kmem_free(pag);
 out_unwind_new_pags:
diff --git a/libxfs/xfs_ag.h b/libxfs/xfs_ag.h
index 4c6f9045..dda1303e 100644
--- a/libxfs/xfs_ag.h
+++ b/libxfs/xfs_ag.h
@@ -64,6 +64,9 @@ 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;
+
 	/* -- kernel only structures below this line -- */
/*
@@ -75,6 +78,7 @@ struct xfs_perag {
 	spinlock_t	pag_state_lock;
spinlock_t pagb_lock; /* lock for pagb_tree */
+#ifdef __KERNEL__
 	struct rb_root	pagb_tree;	/* ordered tree of busy extents */
 	unsigned int	pagb_gen;	/* generation count for pagb_tree */
 	wait_queue_head_t pagb_wait;	/* woken when pagb_gen changes */
@@ -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/libxfs/xfs_shared.h b/libxfs/xfs_shared.h
index bafee48c..25c4cab5 100644
--- a/libxfs/xfs_shared.h
+++ b/libxfs/xfs_shared.h
@@ -180,24 +180,4 @@ struct xfs_ino_geometry {
}; -/* Faked up kernel bits */
-struct rb_root {
-};
-
-#define RB_ROOT 		(struct rb_root) { }
-
-typedef struct wait_queue_head {
-} wait_queue_head_t;
-
-#define init_waitqueue_head(wqh)	do { } while(0)
-
-struct rhashtable {
-};
-
-struct delayed_work {
-};
-
-#define INIT_DELAYED_WORK(work, func)	do { } while(0)
-#define cancel_delayed_work_sync(work)	do { } while(0)
-
 #endif /* __XFS_SHARED_H__ */




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux