Whamcloud - gitweb
LU-6245 libcfs: cleanup list handling 00/15200/3
authorJames Simmons <uja.ornl@yahoo.com>
Wed, 17 Aug 2016 17:48:09 +0000 (13:48 -0400)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 2 Sep 2016 02:21:43 +0000 (02:21 +0000)
For the kernel space side we should use list.h directly
expect in the case of kernel API changes that impact us
then we use linux-list.h that handles those API changes.
A few of the user land utilities use a list implementation
so we provide a separate list implementation for the
libcfs library.

Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Change-Id: I1280d74a629dbaa9c11a3c506fd635fab99ce182
Reviewed-on: http://review.whamcloud.com/15200
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
29 files changed:
libcfs/include/libcfs/Makefile.am
libcfs/include/libcfs/libcfs.h
libcfs/include/libcfs/linux/Makefile.am
libcfs/include/libcfs/linux/linux-list.h [new file with mode: 0644]
libcfs/include/libcfs/util/Makefile.am
libcfs/include/libcfs/util/list.h [moved from libcfs/include/libcfs/list.h with 91% similarity]
libcfs/include/libcfs/util/string.h
libcfs/libcfs/hash.c
lnet/utils/cyaml/cyaml.c
lnet/utils/lst.c
lustre/include/lu_ref.h
lustre/include/lustre_disk.h
lustre/ldlm/ldlm_flock.c
lustre/ldlm/ldlm_lockd.c
lustre/lfsck/lfsck_lib.c
lustre/obdclass/cl_io.c
lustre/obdclass/cl_lock.c
lustre/obdclass/cl_object.c
lustre/obdclass/cl_page.c
lustre/obdclass/class_obd.c
lustre/obdclass/dt_object.c
lustre/obdclass/lu_object.c
lustre/ptlrpc/gss/gss_keyring.c
lustre/ptlrpc/gss/gss_pipefs.c
lustre/ptlrpc/llog_client.c
lustre/ptlrpc/recover.c
lustre/tests/it_test.c
lustre/utils/mount_utils.h
lustre/utils/obd.c

index 80deada..6c5a811 100644 (file)
@@ -24,5 +24,4 @@ EXTRA_DIST = \
        libcfs_string.h \
        libcfs_time.h \
        libcfs_workitem.h \
        libcfs_string.h \
        libcfs_time.h \
        libcfs_workitem.h \
-       list.h \
        types.h
        types.h
index fa6b84f..e8bee85 100644 (file)
@@ -37,8 +37,6 @@
 #ifndef __LIBCFS_LIBCFS_H__
 #define __LIBCFS_LIBCFS_H__
 
 #ifndef __LIBCFS_LIBCFS_H__
 #define __LIBCFS_LIBCFS_H__
 
-#include <libcfs/list.h>
-
 #ifdef __KERNEL__
 # include <libcfs/linux/libcfs.h>
 # include <libcfs/types.h>
 #ifdef __KERNEL__
 # include <libcfs/linux/libcfs.h>
 # include <libcfs/types.h>
index f19c8c5..67a647c 100644 (file)
@@ -1,2 +1,2 @@
 EXTRA_DIST = libcfs.h linux-misc.h linux-fs.h linux-mem.h linux-time.h linux-cpu.h \
 EXTRA_DIST = libcfs.h linux-misc.h linux-fs.h linux-mem.h linux-time.h linux-cpu.h \
-            linux-crypto.h
+            linux-list.h linux-crypto.h
diff --git a/libcfs/include/libcfs/linux/linux-list.h b/libcfs/include/libcfs/linux/linux-list.h
new file mode 100644 (file)
index 0000000..e4a8e8d
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * GPL HEADER START
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 only,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License version 2 for more details.  A copy is
+ * included in the COPYING file that accompanied this code.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * GPL HEADER END
+ */
+
+#ifndef __LIBCFS_LINUX_LIST_H__
+#define __LIBCFS_LINUX_LIST_H__
+
+#include <linux/list.h>
+
+#ifdef HAVE_HLIST_FOR_EACH_3ARG
+#define cfs_hlist_for_each_entry(tpos, pos, head, member) \
+       hlist_for_each_entry(tpos, head, member)
+#define cfs_hlist_for_each_entry_safe(tpos, pos, n, head, member) \
+       hlist_for_each_entry_safe(tpos, n, head, member)
+#define cfs_hlist_for_each_entry_continue(tpos, pos, member) \
+       hlist_for_each_entry_continue(tpos, member)
+#define cfs_hlist_for_each_entry_from(tpos, pos, member) \
+       hlist_for_each_entry_from(tpos, member)
+#else
+#define cfs_hlist_for_each_entry(tpos, pos, head, member) \
+       hlist_for_each_entry(tpos, pos, head, member)
+#define cfs_hlist_for_each_entry_safe(tpos, pos, n, head, member) \
+       hlist_for_each_entry_safe(tpos, pos, n, head, member)
+#define cfs_hlist_for_each_entry_continue(tpos, pos, member) \
+       hlist_for_each_entry_continue(tpos, pos, member)
+#define cfs_hlist_for_each_entry_from(tpos, pos, member) \
+       hlist_for_each_entry_from(tpos, pos, member)
+#endif
+
+#ifdef HAVE_HLIST_ADD_AFTER
+#define hlist_add_behind(hnode, tail)  hlist_add_after(tail, hnode)
+#endif /* HAVE_HLIST_ADD_AFTER */
+
+#endif /* __LIBCFS_LINUX_LIST_H__ */
index 8dc52ce..7d332a8 100644 (file)
@@ -1 +1 @@
-EXTRA_DIST = ioctl.h parser.h param.h string.h
+EXTRA_DIST = ioctl.h parser.h param.h list.h string.h
similarity index 91%
rename from libcfs/include/libcfs/list.h
rename to libcfs/include/libcfs/util/list.h
index 353b656..2372f5b 100644 (file)
  * GPL HEADER END
  */
 
  * GPL HEADER END
  */
 
-#ifndef __LIBCFS_LIST_H__
-#define __LIBCFS_LIST_H__
-
-#ifdef __KERNEL__
-# include <linux/list.h>
-#else /* __KERNEL__ */
+#ifndef __LIBCFS_UTIL_LIST_H__
+#define __LIBCFS_UTIL_LIST_H__
 
 /*
  * Simple doubly linked list implementation.
 
 /*
  * Simple doubly linked list implementation.
@@ -487,30 +483,4 @@ static inline void hlist_add_after(struct hlist_node *n,
             &pos->member != (head);                                         \
             pos = n, n = list_entry(n->member.next, typeof(*n), member))
 
             &pos->member != (head);                                         \
             pos = n, n = list_entry(n->member.next, typeof(*n), member))
 
-#endif /* __KERNEL__ */
-
-#ifdef HAVE_HLIST_FOR_EACH_3ARG
-#define cfs_hlist_for_each_entry(tpos, pos, head, member) \
-       hlist_for_each_entry(tpos, head, member)
-#define cfs_hlist_for_each_entry_safe(tpos, pos, n, head, member) \
-       hlist_for_each_entry_safe(tpos, n, head, member)
-#define cfs_hlist_for_each_entry_continue(tpos, pos, member) \
-       hlist_for_each_entry_continue(tpos, member)
-#define cfs_hlist_for_each_entry_from(tpos, pos, member) \
-       hlist_for_each_entry_from(tpos, member)
-#else
-#define cfs_hlist_for_each_entry(tpos, pos, head, member) \
-       hlist_for_each_entry(tpos, pos, head, member)
-#define cfs_hlist_for_each_entry_safe(tpos, pos, n, head, member) \
-       hlist_for_each_entry_safe(tpos, pos, n, head, member)
-#define cfs_hlist_for_each_entry_continue(tpos, pos, member) \
-       hlist_for_each_entry_continue(tpos, pos, member)
-#define cfs_hlist_for_each_entry_from(tpos, pos, member) \
-       hlist_for_each_entry_from(tpos, pos, member)
-#endif
-
-#ifdef HAVE_HLIST_ADD_AFTER
-#define hlist_add_behind(hnode, tail)  hlist_add_after(tail, hnode)
-#endif /* HAVE_HLIST_ADD_AFTER */
-
-#endif /* __LIBCFS_LUSTRE_LIST_H__ */
+#endif /* __LIBCFS_UTIL_LIST_H__ */
index 450c48c..fd34f84 100644 (file)
@@ -46,7 +46,7 @@
 #include <stddef.h>
 
 #include <linux/types.h>
 #include <stddef.h>
 
 #include <linux/types.h>
-#include <libcfs/list.h>
+#include <libcfs/util/list.h>
 
 #ifndef HAVE_STRLCPY /* not in glibc for RHEL 5.x, remove when obsolete */
 size_t strlcpy(char *tgt, const char *src, size_t tgt_len);
 
 #ifndef HAVE_STRLCPY /* not in glibc for RHEL 5.x, remove when obsolete */
 size_t strlcpy(char *tgt, const char *src, size_t tgt_len);
index 5027359..27e42f7 100644 (file)
  */
 #include <linux/seq_file.h>
 
  */
 #include <linux/seq_file.h>
 
+#include <libcfs/linux/linux-list.h>
 #include <libcfs/libcfs.h>
 
 #if CFS_HASH_DEBUG_LEVEL >= CFS_HASH_DEBUG_1
 #include <libcfs/libcfs.h>
 
 #if CFS_HASH_DEBUG_LEVEL >= CFS_HASH_DEBUG_1
index 19436db..2a6f58f 100644 (file)
@@ -44,7 +44,7 @@
 #include <float.h>
 #include <limits.h>
 #include <ctype.h>
 #include <float.h>
 #include <limits.h>
 #include <ctype.h>
-#include "libcfs/list.h"
+#include "libcfs/util/list.h"
 #include "cyaml.h"
 
 #define INDENT         4
 #include "cyaml.h"
 
 #define INDENT         4
index 35b1948..c84a208 100644 (file)
@@ -49,7 +49,7 @@
 #include <sys/ioctl.h>
 #include <time.h>
 
 #include <sys/ioctl.h>
 #include <time.h>
 
-#include <libcfs/list.h>
+#include <libcfs/util/list.h>
 #include <libcfs/util/ioctl.h>
 #include <libcfs/util/parser.h>
 #include <lnet/lnetctl.h>
 #include <libcfs/util/ioctl.h>
 #include <libcfs/util/parser.h>
 #include <lnet/lnetctl.h>
index 81ada8c..c7366c0 100644 (file)
@@ -26,7 +26,7 @@
 #ifndef __LUSTRE_LU_REF_H
 #define __LUSTRE_LU_REF_H
 
 #ifndef __LUSTRE_LU_REF_H
 #define __LUSTRE_LU_REF_H
 
-#include <libcfs/list.h>
+#include <linux/list.h>
 
 /** \defgroup lu_ref lu_ref
  *
 
 /** \defgroup lu_ref lu_ref
  *
index b56385e..aea63f5 100644 (file)
 
 #include <linux/types.h>
 #include <libcfs/libcfs.h>
 
 #include <linux/types.h>
 #include <libcfs/libcfs.h>
+#ifdef __KERNEL__
+#include <linux/list.h>
+#else
+#include <libcfs/util/list.h>
+#endif
 #include <lnet/types.h>
 
 /****************** on-disk files *********************/
 #include <lnet/types.h>
 
 /****************** on-disk files *********************/
index e900f00..f13bc5a 100644 (file)
 
 #define DEBUG_SUBSYSTEM S_LDLM
 
 
 #define DEBUG_SUBSYSTEM S_LDLM
 
+#include <linux/list.h>
 #include <lustre_dlm.h>
 #include <obd_support.h>
 #include <obd_class.h>
 #include <lustre_lib.h>
 #include <lustre_dlm.h>
 #include <obd_support.h>
 #include <obd_class.h>
 #include <lustre_lib.h>
-#include <libcfs/list.h>
 
 #include "ldlm_internal.h"
 
 
 #include "ldlm_internal.h"
 
index 3f2b669..566b9d6 100644 (file)
 #define DEBUG_SUBSYSTEM S_LDLM
 
 #include <linux/kthread.h>
 #define DEBUG_SUBSYSTEM S_LDLM
 
 #include <linux/kthread.h>
+#include <linux/list.h>
 #include <libcfs/libcfs.h>
 #include <lustre_dlm.h>
 #include <obd_class.h>
 #include <libcfs/libcfs.h>
 #include <lustre_dlm.h>
 #include <obd_class.h>
-#include <libcfs/list.h>
 #include "ldlm_internal.h"
 
 static int ldlm_num_threads;
 #include "ldlm_internal.h"
 
 static int ldlm_num_threads;
index 3ac83ac..9f2a321 100644 (file)
@@ -32,7 +32,7 @@
 
 #include <linux/kthread.h>
 #include <linux/sched.h>
 
 #include <linux/kthread.h>
 #include <linux/sched.h>
-#include <libcfs/list.h>
+#include <linux/list.h>
 #include <lu_object.h>
 #include <dt_object.h>
 #include <md_object.h>
 #include <lu_object.h>
 #include <dt_object.h>
 #include <md_object.h>
index 49acb96..3ff7284 100644 (file)
 #define DEBUG_SUBSYSTEM S_CLASS
 
 #include <linux/sched.h>
 #define DEBUG_SUBSYSTEM S_CLASS
 
 #include <linux/sched.h>
+#include <linux/list.h>
 #include <obd_class.h>
 #include <obd_support.h>
 #include <lustre_fid.h>
 #include <obd_class.h>
 #include <obd_support.h>
 #include <lustre_fid.h>
-#include <libcfs/list.h>
 #include <cl_object.h>
 #include "cl_internal.h"
 
 #include <cl_object.h>
 #include "cl_internal.h"
 
index 6be5ff9..ef2fd37 100644 (file)
 
 #define DEBUG_SUBSYSTEM S_CLASS
 
 
 #define DEBUG_SUBSYSTEM S_CLASS
 
+#include <linux/list.h>
 #include <libcfs/libcfs.h>
 #include <obd_class.h>
 #include <obd_support.h>
 #include <lustre_fid.h>
 #include <libcfs/libcfs.h>
 #include <obd_class.h>
 #include <obd_support.h>
 #include <lustre_fid.h>
-#include <libcfs/list.h>
 #include <cl_object.h>
 #include "cl_internal.h"
 
 #include <cl_object.h>
 #include "cl_internal.h"
 
index c6f5fc5..3a4635f 100644 (file)
 
 #define DEBUG_SUBSYSTEM S_CLASS
 
 
 #define DEBUG_SUBSYSTEM S_CLASS
 
+#include <linux/list.h>
 #include <libcfs/libcfs.h>
 /* class_put_type() */
 #include <obd_class.h>
 #include <obd_support.h>
 #include <lustre_fid.h>
 #include <libcfs/libcfs.h>
 /* class_put_type() */
 #include <obd_class.h>
 #include <obd_support.h>
 #include <lustre_fid.h>
-#include <libcfs/list.h>
 #include <libcfs/libcfs_hash.h> /* for cfs_hash stuff */
 #include <cl_object.h>
 #include <lu_object.h>
 #include <libcfs/libcfs_hash.h> /* for cfs_hash stuff */
 #include <cl_object.h>
 #include <lu_object.h>
index 65cf9fe..f38c3a1 100644 (file)
 
 #define DEBUG_SUBSYSTEM S_CLASS
 
 
 #define DEBUG_SUBSYSTEM S_CLASS
 
+#include <linux/list.h>
 #include <libcfs/libcfs.h>
 #include <obd_class.h>
 #include <obd_support.h>
 #include <libcfs/libcfs.h>
 #include <obd_class.h>
 #include <obd_support.h>
-#include <libcfs/list.h>
 
 #include <cl_object.h>
 #include "cl_internal.h"
 
 #include <cl_object.h>
 #include "cl_internal.h"
index 49a60d3..82c8cf7 100644 (file)
@@ -41,6 +41,7 @@
 # include <linux/uidgid.h>
 #endif
 #include <linux/atomic.h>
 # include <linux/uidgid.h>
 #endif
 #include <linux/atomic.h>
+#include <linux/list.h>
 
 #include <obd_support.h>
 #include <obd_class.h>
 
 #include <obd_support.h>
 #include <obd_class.h>
@@ -48,7 +49,6 @@
 #include <lustre_debug.h>
 #include <lprocfs_status.h>
 #include <lustre_ver.h>
 #include <lustre_debug.h>
 #include <lprocfs_status.h>
 #include <lustre_ver.h>
-#include <libcfs/list.h>
 #include <cl_object.h>
 #ifdef HAVE_SERVER_SUPPORT
 # include <dt_object.h>
 #include <cl_object.h>
 #ifdef HAVE_SERVER_SUPPORT
 # include <dt_object.h>
index f44f879..8939f63 100644 (file)
@@ -43,9 +43,9 @@
 
 #define DEBUG_SUBSYSTEM S_CLASS
 
 
 #define DEBUG_SUBSYSTEM S_CLASS
 
+#include <linux/list.h>
 #include <obd.h>
 #include <dt_object.h>
 #include <obd.h>
 #include <dt_object.h>
-#include <libcfs/list.h>
 /* fid_be_to_cpu() */
 #include <lustre_fid.h>
 #include <lustre_nodemap.h>
 /* fid_be_to_cpu() */
 #include <lustre_fid.h>
 #include <lustre_nodemap.h>
index e8c976d..3a78091 100644 (file)
@@ -44,8 +44,9 @@
 
 #define DEBUG_SUBSYSTEM S_CLASS
 
 
 #define DEBUG_SUBSYSTEM S_CLASS
 
-#include <libcfs/libcfs.h>
 #include <linux/module.h>
 #include <linux/module.h>
+#include <linux/list.h>
+#include <libcfs/libcfs.h>
 #include <libcfs/libcfs_hash.h> /* hash_long() */
 #include <obd_class.h>
 #include <obd_support.h>
 #include <libcfs/libcfs_hash.h> /* hash_long() */
 #include <obd_class.h>
 #include <obd_support.h>
@@ -53,7 +54,6 @@
 #include <lustre_fid.h>
 #include <lu_object.h>
 #include <lu_ref.h>
 #include <lustre_fid.h>
 #include <lu_object.h>
 #include <lu_ref.h>
-#include <libcfs/list.h>
 
 enum {
        LU_CACHE_PERCENT_MAX     = 50,
 
 enum {
        LU_CACHE_PERCENT_MAX     = 50,
index e296049..daad690 100644 (file)
@@ -51,6 +51,7 @@
 #include <linux/mutex.h>
 #include <asm/atomic.h>
 
 #include <linux/mutex.h>
 #include <asm/atomic.h>
 
+#include <libcfs/linux/linux-list.h>
 #include <obd.h>
 #include <obd_class.h>
 #include <obd_support.h>
 #include <obd.h>
 #include <obd_class.h>
 #include <obd_support.h>
index 3391b1f..6b1d9e4 100644 (file)
@@ -58,6 +58,7 @@
 struct rpc_clnt; /* for rpc_pipefs */
 #include <linux/sunrpc/rpc_pipe_fs.h>
 
 struct rpc_clnt; /* for rpc_pipefs */
 #include <linux/sunrpc/rpc_pipe_fs.h>
 
+#include <libcfs/linux/linux-list.h>
 #include <obd.h>
 #include <obd_class.h>
 #include <obd_support.h>
 #include <obd.h>
 #include <obd_class.h>
 #include <obd_support.h>
index ccc4a3e..e096e15 100644 (file)
 
 #define DEBUG_SUBSYSTEM S_LOG
 
 
 #define DEBUG_SUBSYSTEM S_LOG
 
+#include <linux/list.h>
 #include <libcfs/libcfs.h>
 
 #include <obd_class.h>
 #include <lustre_log.h>
 #include <lustre_net.h>
 #include <libcfs/libcfs.h>
 
 #include <obd_class.h>
 #include <lustre_log.h>
 #include <lustre_net.h>
-#include <libcfs/list.h>
 
 #define LLOG_CLIENT_ENTRY(ctxt, imp) do {                             \
        mutex_lock(&ctxt->loc_mutex);                             \
 
 #define LLOG_CLIENT_ENTRY(ctxt, imp) do {                             \
        mutex_lock(&ctxt->loc_mutex);                             \
index e2bca8a..7d23518 100644 (file)
@@ -39,6 +39,7 @@
  */
 
 #define DEBUG_SUBSYSTEM S_RPC
  */
 
 #define DEBUG_SUBSYSTEM S_RPC
+#include <linux/list.h>
 #include <libcfs/libcfs.h>
 #include <obd_support.h>
 #include <lustre_ha.h>
 #include <libcfs/libcfs.h>
 #include <obd_support.h>
 #include <lustre_ha.h>
@@ -47,7 +48,6 @@
 #include <lustre_export.h>
 #include <obd.h>
 #include <obd_class.h>
 #include <lustre_export.h>
 #include <obd.h>
 #include <obd_class.h>
-#include <libcfs/list.h>
 
 #include "ptlrpc_internal.h"
 
 
 #include "ptlrpc_internal.h"
 
index 2777143..d0a4168 100644 (file)
@@ -44,6 +44,7 @@
 #include <string.h>
 #include <time.h>
 #include <sys/time.h>
 #include <string.h>
 #include <time.h>
 #include <sys/time.h>
+#include <libcfs/util/list.h>
 
 #include <linux/types.h>
 
 
 #include <linux/types.h>
 
index 7fd9b34..bcacce4 100644 (file)
@@ -58,6 +58,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 
 #include <sys/types.h>
 #include <sys/stat.h>
 
+#include <libcfs/util/list.h>
 #include <lustre_disk.h>
 #include <lustre_param.h>
 
 #include <lustre_disk.h>
 #include <lustre_param.h>
 
index 5f0fa5d..a872f3f 100644 (file)
@@ -64,6 +64,7 @@
 #include <limits.h>
 
 #include "obdctl.h"
 #include <limits.h>
 
 #include "obdctl.h"
+#include <libcfs/util/list.h>
 #include <libcfs/util/ioctl.h>
 #include <libcfs/util/param.h>
 #include <libcfs/util/parser.h>
 #include <libcfs/util/ioctl.h>
 #include <libcfs/util/param.h>
 #include <libcfs/util/parser.h>