mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: James Simmons <jsimmons@infradead.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	devel@driverdev.osuosl.org,
	Andreas Dilger <andreas.dilger@intel.com>,
	Oleg Drokin <oleg.drokin@intel.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Lustre Development List <lustre-devel@lists.lustre.org>,
	James Simmons <jsimmons@infradead.org>
Subject: [PATCH 59/64] staging: lustre: lnet: add include path to Makefile
Date: Mon, 14 Aug 2017 11:47:27 -0400	[thread overview]
Message-ID: <1502725652-26280-60-git-send-email-jsimmons@infradead.org> (raw)
In-Reply-To: <1502725652-26280-1-git-send-email-jsimmons@infradead.org>

Rationalize include paths in the lnet core source code files.

Signed-off-by: James Simmons <jsimmons@infradead.org>
---
 drivers/staging/lustre/lnet/lnet/Makefile      | 3 +++
 drivers/staging/lustre/lnet/lnet/acceptor.c    | 2 +-
 drivers/staging/lustre/lnet/lnet/api-ni.c      | 4 ++--
 drivers/staging/lustre/lnet/lnet/config.c      | 2 +-
 drivers/staging/lustre/lnet/lnet/lib-eq.c      | 3 ++-
 drivers/staging/lustre/lnet/lnet/lib-md.c      | 2 +-
 drivers/staging/lustre/lnet/lnet/lib-me.c      | 2 +-
 drivers/staging/lustre/lnet/lnet/lib-move.c    | 2 +-
 drivers/staging/lustre/lnet/lnet/lib-msg.c     | 2 +-
 drivers/staging/lustre/lnet/lnet/lib-ptl.c     | 2 +-
 drivers/staging/lustre/lnet/lnet/lib-socket.c  | 4 ++--
 drivers/staging/lustre/lnet/lnet/lo.c          | 3 ++-
 drivers/staging/lustre/lnet/lnet/module.c      | 5 +++--
 drivers/staging/lustre/lnet/lnet/net_fault.c   | 4 ++--
 drivers/staging/lustre/lnet/lnet/nidstrings.c  | 4 ++--
 drivers/staging/lustre/lnet/lnet/peer.c        | 4 ++--
 drivers/staging/lustre/lnet/lnet/router.c      | 3 ++-
 drivers/staging/lustre/lnet/lnet/router_proc.c | 5 +++--
 18 files changed, 32 insertions(+), 24 deletions(-)

diff --git a/drivers/staging/lustre/lnet/lnet/Makefile b/drivers/staging/lustre/lnet/lnet/Makefile
index 4c81fa1..fd8585c 100644
--- a/drivers/staging/lustre/lnet/lnet/Makefile
+++ b/drivers/staging/lustre/lnet/lnet/Makefile
@@ -1,3 +1,6 @@
+subdir-ccflags-y += -I$(srctree)/drivers/staging/lustre/include
+subdir-ccflags-y += -I$(srctree)/drivers/staging/lustre/lustre/include
+
 obj-$(CONFIG_LNET) += lnet.o
 
 lnet-y := api-ni.o config.o nidstrings.o net_fault.o		\
diff --git a/drivers/staging/lustre/lnet/lnet/acceptor.c b/drivers/staging/lustre/lnet/lnet/acceptor.c
index a6f60c3..be2823f 100644
--- a/drivers/staging/lustre/lnet/lnet/acceptor.c
+++ b/drivers/staging/lustre/lnet/lnet/acceptor.c
@@ -33,7 +33,7 @@
 #define DEBUG_SUBSYSTEM S_LNET
 #include <linux/completion.h>
 #include <net/sock.h>
-#include "../../include/linux/lnet/lib-lnet.h"
+#include <linux/lnet/lib-lnet.h>
 
 static int   accept_port    = 988;
 static int   accept_backlog = 127;
diff --git a/drivers/staging/lustre/lnet/lnet/api-ni.c b/drivers/staging/lustre/lnet/lnet/api-ni.c
index 30c7ff6..ad83503 100644
--- a/drivers/staging/lustre/lnet/lnet/api-ni.c
+++ b/drivers/staging/lustre/lnet/lnet/api-ni.c
@@ -34,8 +34,8 @@
 #include <linux/log2.h>
 #include <linux/ktime.h>
 
-#include "../../include/linux/lnet/lib-lnet.h"
-#include "../../include/uapi/linux/lnet/lnet-dlc.h"
+#include <linux/lnet/lib-lnet.h>
+#include <uapi/linux/lnet/lnet-dlc.h>
 
 #define D_LNI D_CONSOLE
 
diff --git a/drivers/staging/lustre/lnet/lnet/config.c b/drivers/staging/lustre/lnet/lnet/config.c
index 933988d..26841a7 100644
--- a/drivers/staging/lustre/lnet/lnet/config.c
+++ b/drivers/staging/lustre/lnet/lnet/config.c
@@ -33,7 +33,7 @@
 #define DEBUG_SUBSYSTEM S_LNET
 #include <linux/nsproxy.h>
 #include <net/net_namespace.h>
-#include "../../include/linux/lnet/lib-lnet.h"
+#include <linux/lnet/lib-lnet.h>
 
 struct lnet_text_buf {	    /* tmp struct for parsing routes */
 	struct list_head ltb_list;	/* stash on lists */
diff --git a/drivers/staging/lustre/lnet/lnet/lib-eq.c b/drivers/staging/lustre/lnet/lnet/lib-eq.c
index 9ebba4e..6b446a5 100644
--- a/drivers/staging/lustre/lnet/lnet/lib-eq.c
+++ b/drivers/staging/lustre/lnet/lnet/lib-eq.c
@@ -35,7 +35,8 @@
  */
 
 #define DEBUG_SUBSYSTEM S_LNET
-#include "../../include/linux/lnet/lib-lnet.h"
+
+#include <linux/lnet/lib-lnet.h>
 
 /**
  * Create an event queue that has room for \a count number of events.
diff --git a/drivers/staging/lustre/lnet/lnet/lib-md.c b/drivers/staging/lustre/lnet/lnet/lib-md.c
index f08e944..a0aef4b 100644
--- a/drivers/staging/lustre/lnet/lnet/lib-md.c
+++ b/drivers/staging/lustre/lnet/lnet/lib-md.c
@@ -36,7 +36,7 @@
 
 #define DEBUG_SUBSYSTEM S_LNET
 
-#include "../../include/linux/lnet/lib-lnet.h"
+#include <linux/lnet/lib-lnet.h>
 
 /* must be called with lnet_res_lock held */
 void
diff --git a/drivers/staging/lustre/lnet/lnet/lib-me.c b/drivers/staging/lustre/lnet/lnet/lib-me.c
index e9b3eed..f52a5e8 100644
--- a/drivers/staging/lustre/lnet/lnet/lib-me.c
+++ b/drivers/staging/lustre/lnet/lnet/lib-me.c
@@ -36,7 +36,7 @@
 
 #define DEBUG_SUBSYSTEM S_LNET
 
-#include "../../include/linux/lnet/lib-lnet.h"
+#include <linux/lnet/lib-lnet.h>
 
 /**
  * Create and attach a match entry to the match list of \a portal. The new
diff --git a/drivers/staging/lustre/lnet/lnet/lib-move.c b/drivers/staging/lustre/lnet/lnet/lib-move.c
index 20ebe24..d886504 100644
--- a/drivers/staging/lustre/lnet/lnet/lib-move.c
+++ b/drivers/staging/lustre/lnet/lnet/lib-move.c
@@ -36,7 +36,7 @@
 
 #define DEBUG_SUBSYSTEM S_LNET
 
-#include "../../include/linux/lnet/lib-lnet.h"
+#include <linux/lnet/lib-lnet.h>
 #include <linux/nsproxy.h>
 #include <net/net_namespace.h>
 
diff --git a/drivers/staging/lustre/lnet/lnet/lib-msg.c b/drivers/staging/lustre/lnet/lnet/lib-msg.c
index 008ac50..d04875e 100644
--- a/drivers/staging/lustre/lnet/lnet/lib-msg.c
+++ b/drivers/staging/lustre/lnet/lnet/lib-msg.c
@@ -36,7 +36,7 @@
 
 #define DEBUG_SUBSYSTEM S_LNET
 
-#include "../../include/linux/lnet/lib-lnet.h"
+#include <linux/lnet/lib-lnet.h>
 
 void
 lnet_build_unlink_event(struct lnet_libmd *md, struct lnet_event *ev)
diff --git a/drivers/staging/lustre/lnet/lnet/lib-ptl.c b/drivers/staging/lustre/lnet/lnet/lib-ptl.c
index 3333272..5946848 100644
--- a/drivers/staging/lustre/lnet/lnet/lib-ptl.c
+++ b/drivers/staging/lustre/lnet/lnet/lib-ptl.c
@@ -31,7 +31,7 @@
 
 #define DEBUG_SUBSYSTEM S_LNET
 
-#include "../../include/linux/lnet/lib-lnet.h"
+#include <linux/lnet/lib-lnet.h>
 
 /* NB: add /proc interfaces in upcoming patches */
 int portal_rotor = LNET_PTL_ROTOR_HASH_RT;
diff --git a/drivers/staging/lustre/lnet/lnet/lib-socket.c b/drivers/staging/lustre/lnet/lnet/lib-socket.c
index 800f4f6..7d0add0 100644
--- a/drivers/staging/lustre/lnet/lnet/lib-socket.c
+++ b/drivers/staging/lustre/lnet/lnet/lib-socket.c
@@ -40,8 +40,8 @@
 #include <linux/syscalls.h>
 #include <net/sock.h>
 
-#include "../../include/linux/libcfs/libcfs.h"
-#include "../../include/linux/lnet/lib-lnet.h"
+#include <linux/libcfs/libcfs.h>
+#include <linux/lnet/lib-lnet.h>
 
 static int
 kernel_sock_unlocked_ioctl(struct file *filp, int cmd, unsigned long arg)
diff --git a/drivers/staging/lustre/lnet/lnet/lo.c b/drivers/staging/lustre/lnet/lnet/lo.c
index a7504b8..80c06f4 100644
--- a/drivers/staging/lustre/lnet/lnet/lo.c
+++ b/drivers/staging/lustre/lnet/lnet/lo.c
@@ -29,7 +29,8 @@
  */
 
 #define DEBUG_SUBSYSTEM S_LNET
-#include "../../include/linux/lnet/lib-lnet.h"
+
+#include <linux/lnet/lib-lnet.h>
 
 static int
 lolnd_send(struct lnet_ni *ni, void *private, struct lnet_msg *lntmsg)
diff --git a/drivers/staging/lustre/lnet/lnet/module.c b/drivers/staging/lustre/lnet/lnet/module.c
index 06fcfd2..7d12a7f 100644
--- a/drivers/staging/lustre/lnet/lnet/module.c
+++ b/drivers/staging/lustre/lnet/lnet/module.c
@@ -31,8 +31,9 @@
  */
 
 #define DEBUG_SUBSYSTEM S_LNET
-#include "../../include/linux/lnet/lib-lnet.h"
-#include "../../include/uapi/linux/lnet/lnet-dlc.h"
+
+#include <linux/lnet/lib-lnet.h>
+#include <uapi/linux/lnet/lnet-dlc.h>
 
 static int config_on_load;
 module_param(config_on_load, int, 0444);
diff --git a/drivers/staging/lustre/lnet/lnet/net_fault.c b/drivers/staging/lustre/lnet/lnet/net_fault.c
index 166a311..03f3d18 100644
--- a/drivers/staging/lustre/lnet/lnet/net_fault.c
+++ b/drivers/staging/lustre/lnet/lnet/net_fault.c
@@ -35,8 +35,8 @@
 
 #define DEBUG_SUBSYSTEM S_LNET
 
-#include "../../include/linux/lnet/lib-lnet.h"
-#include "../../include/uapi/linux/lnet/lnetctl.h"
+#include <linux/lnet/lib-lnet.h>
+#include <uapi/linux/lnet/lnetctl.h>
 
 #define LNET_MSG_MASK		(LNET_PUT_BIT | LNET_ACK_BIT | \
 				 LNET_GET_BIT | LNET_REPLY_BIT)
diff --git a/drivers/staging/lustre/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c
index a91bbc4..7bd1e6f 100644
--- a/drivers/staging/lustre/lnet/lnet/nidstrings.c
+++ b/drivers/staging/lustre/lnet/lnet/nidstrings.c
@@ -36,8 +36,8 @@
 
 #define DEBUG_SUBSYSTEM S_LNET
 
-#include "../../include/linux/libcfs/libcfs.h"
-#include "../../include/uapi/linux/lnet/nidstr.h"
+#include <linux/libcfs/libcfs.h>
+#include <uapi/linux/lnet/nidstr.h>
 
 /* max value for numeric network address */
 #define MAX_NUMERIC_VALUE 0xffffffff
diff --git a/drivers/staging/lustre/lnet/lnet/peer.c b/drivers/staging/lustre/lnet/lnet/peer.c
index 301b275..4d55df8 100644
--- a/drivers/staging/lustre/lnet/lnet/peer.c
+++ b/drivers/staging/lustre/lnet/lnet/peer.c
@@ -34,8 +34,8 @@
 
 #define DEBUG_SUBSYSTEM S_LNET
 
-#include "../../include/linux/lnet/lib-lnet.h"
-#include "../../include/uapi/linux/lnet/lnet-dlc.h"
+#include <linux/lnet/lib-lnet.h>
+#include <uapi/linux/lnet/lnet-dlc.h>
 
 int
 lnet_peer_tables_create(void)
diff --git a/drivers/staging/lustre/lnet/lnet/router.c b/drivers/staging/lustre/lnet/lnet/router.c
index 12dd104..3df101b 100644
--- a/drivers/staging/lustre/lnet/lnet/router.c
+++ b/drivers/staging/lustre/lnet/lnet/router.c
@@ -18,8 +18,9 @@
  */
 
 #define DEBUG_SUBSYSTEM S_LNET
+
 #include <linux/completion.h>
-#include "../../include/linux/lnet/lib-lnet.h"
+#include <linux/lnet/lib-lnet.h>
 
 #define LNET_NRB_TINY_MIN	512	/* min value for each CPT */
 #define LNET_NRB_TINY		(LNET_NRB_TINY_MIN * 4)
diff --git a/drivers/staging/lustre/lnet/lnet/router_proc.c b/drivers/staging/lustre/lnet/lnet/router_proc.c
index 72b80c5..4a994d1 100644
--- a/drivers/staging/lustre/lnet/lnet/router_proc.c
+++ b/drivers/staging/lustre/lnet/lnet/router_proc.c
@@ -18,8 +18,9 @@
  */
 
 #define DEBUG_SUBSYSTEM S_LNET
-#include "../../include/linux/libcfs/libcfs.h"
-#include "../../include/linux/lnet/lib-lnet.h"
+
+#include <linux/libcfs/libcfs.h>
+#include <linux/lnet/lib-lnet.h>
 
 /*
  * This is really lnet_proc.c. You might need to update sanity test 215
-- 
1.8.3.1

  parent reply	other threads:[~2017-08-14 15:50 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-14 15:46 [PATCH 00/64] staging: lustre: uapi: normalize the lustre headers James Simmons
2017-08-14 15:46 ` [PATCH 01/64] staging: lustre: uapi: Move functions out of lustre_idl.h James Simmons
2017-08-14 15:46 ` [PATCH 02/64] staging: lustre: uapi: remove unused functions for lustre_fid.h James Simmons
2017-08-14 15:46 ` [PATCH 03/64] staging: lustre: uapi: return error code for ostid_set_id James Simmons
2017-08-14 15:46 ` [PATCH 04/64] staging: lustre: uapi: update URL doc link in lustre_fid.h James Simmons
2017-08-14 15:46 ` [PATCH 05/64] staging: lustre: uapi: move lu_fid, ost_id funcs out of lustre_idl.h James Simmons
2017-08-14 15:46 ` [PATCH 06/64] staging: lustre: uapi: remove unused function in lustre_disk.h James Simmons
2017-08-14 15:46 ` [PATCH 07/64] staging: lustre: uapi: remove userland version of obd_ioctl_*() James Simmons
2017-08-14 15:46 ` [PATCH 08/64] staging: lustre: uapi: remove obd_ioctl_freedata() wrapper James Simmons
2017-08-14 15:46 ` [PATCH 09/64] staging: lustre: uapi: remove obd_ioctl_popdata() wrapper James Simmons
2017-08-14 15:46 ` [PATCH 10/64] staging: lustre: uapi: move obd_ioctl_getdata() declaration James Simmons
2017-08-14 15:46 ` [PATCH 11/64] staging: lustre: uapi: move obd_ioctl_is_invalid() to linux-module.c James Simmons
2017-08-14 15:46 ` [PATCH 12/64] staging: lustre: uapi: move lustre_ioctl.h to uapi directory James Simmons
2017-08-14 15:46 ` [PATCH 13/64] staging: lustre: uapi: use __ALIGN_KERNEL for lustre_ioctl.h James Simmons
2017-08-14 15:46 ` [PATCH 14/64] staging: lustre: uapi: cleanup headers " James Simmons
2017-08-14 15:46 ` [PATCH 15/64] staging: lustre: uapi: label lustre_ioctl.h as a UAPI header James Simmons
2017-08-14 15:46 ` [PATCH 16/64] staging: lustre: uapi: move kernel only prototypes out of lustre_param.h James Simmons
2017-08-14 15:46 ` [PATCH 17/64] staging: lustre: uapi: remove included headers " James Simmons
2017-08-14 15:46 ` [PATCH 18/64] staging: lustre: uapi: move lustre_param.h to uapi directory James Simmons
2017-08-14 15:46 ` [PATCH 19/64] staging: lustre: uapi: label lustre_param.h as an uapi header James Simmons
2017-08-14 15:46 ` [PATCH 20/64] staging: lustre: uapi: style cleanups for lustre_param.h James Simmons
2017-08-14 15:46 ` [PATCH 21/64] staging: lustre: uapi: remove lustre_cfg_free wrapper James Simmons
2017-08-14 15:46 ` [PATCH 22/64] staging: lustre: uapi: don't memory allocate in UAPI header James Simmons
2017-08-14 15:46 ` [PATCH 23/64] staging: lustre: uapi: move lustre_cfg_string() to obd_config.c James Simmons
2017-08-14 15:46 ` [PATCH 24/64] staging: lustre: obdclass: no need to check for kfree James Simmons
2017-08-14 15:46 ` [PATCH 25/64] staging: lustre: uapi: move lustre_cfg.h to uapi directory James Simmons
2017-08-14 15:46 ` [PATCH 26/64] staging: lustre: uapi: remove need for libcfs.h from lustre_cfg.h James Simmons
2017-08-14 15:46 ` [PATCH 27/64] staging: lustre: uapi: change variable type to match James Simmons
2017-08-14 15:46 ` [PATCH 28/64] staging: lustre: uapi: check if argument for lustre_cfg_buf() is NULL James Simmons
2017-08-14 15:46 ` [PATCH 29/64] staging: lustre: uapi: style cleanup of lustre_cfg.h James Simmons
2017-08-14 15:46 ` [PATCH 30/64] staging: lustre: uapi: label lustre_cfg.h as an uapi header James Simmons
2017-08-14 15:46 ` [PATCH 31/64] staging: lustre: libcfs: remove htonl hack in libcfs.h James Simmons
2017-08-14 15:47 ` [PATCH 32/64] staging: lustre: libcfs: remove LOGL and LOGU macros James Simmons
2017-08-14 15:47 ` [PATCH 33/64] staging: lustre: libcfs: create libcfs_debug.h UAPI header James Simmons
2017-08-14 15:47 ` [PATCH 34/64] staging: lustre: socklnd: create socklnd.h " James Simmons
2017-08-14 15:47 ` [PATCH 35/64] staging: lustre: lnet: delete lnet.h James Simmons
2017-08-14 15:47 ` [PATCH 36/64] staging: lustre: lnet: migrate headers to lnet uapi directory James Simmons
2017-08-14 15:47 ` [PATCH 37/64] staging: lustre: libcfs: sort headers in libcfs.h James Simmons
2017-08-14 15:47 ` [PATCH 38/64] staging: lustre: lnet: remove userland function prototype in lnetctl.h James Simmons
2017-08-14 15:47 ` [PATCH 39/64] staging: lustre: lnet: remove BIT macro from lnetctl.h James Simmons
2017-08-14 15:47 ` [PATCH 40/64] staging: lustre: uapi: remove libcfs.h from lustre_id.h/lustre_user.h James Simmons
2017-08-14 15:47 ` [PATCH 41/64] staging: lustre: uapi: migrate remaining uapi headers to uapi directory James Simmons
2017-08-14 15:47 ` [PATCH 42/64] staging: lustre: uapi: remove CONFIG_LUSTRE_OBD_MAX_IOCTL James Simmons
2017-08-14 15:47 ` [PATCH 43/64] staging: lustre: uapi: use proper byteorder functions in lustre_idl.h James Simmons
2017-08-14 15:47 ` [PATCH 44/64] staging: lustre: uapi: remove BIT macro from UAPI headers James Simmons
2017-08-14 15:47 ` [PATCH 45/64] staging: lustre: fid: add include path to Makefile James Simmons
2017-08-14 15:47 ` [PATCH 46/64] staging: lustre: fld: " James Simmons
2017-08-14 15:47 ` [PATCH 47/64] staging: lustre: ptlrpc: " James Simmons
2017-08-14 15:47 ` [PATCH 48/64] staging: lustre: llite: " James Simmons
2017-08-14 15:47 ` [PATCH 49/64] staging: lustre: lmv: " James Simmons
2017-08-14 15:47 ` [PATCH 50/64] staging: lustre: lov: " James Simmons
2017-08-14 15:47 ` [PATCH 51/64] staging: lustre: mdc: " James Simmons
2017-08-14 15:47 ` [PATCH 52/64] staging: lustre: mgc: " James Simmons
2017-08-14 15:47 ` [PATCH 53/64] staging: lustre: obdclass: " James Simmons
2017-08-14 15:47 ` [PATCH 54/64] staging: lustre: obdecho: " James Simmons
2017-08-14 15:47 ` [PATCH 55/64] staging: lustre: osc: " James Simmons
2017-08-14 15:47 ` [PATCH 56/64] staging: lustre: lustre: cleanup paths for lustre internal headers James Simmons
2017-08-14 15:47 ` [PATCH 57/64] staging: lustre: lustre: cleanup paths for lustre UAPI headers James Simmons
2017-08-14 15:47 ` [PATCH 58/64] staging: lustre: lnet: selftest: add include path to Makefile James Simmons
2017-08-14 15:47 ` James Simmons [this message]
2017-08-14 15:47 ` [PATCH 60/64] staging: lustre: ko2iblnd: " James Simmons
2017-08-14 15:47 ` [PATCH 61/64] staging: lustre: ksocklnd: " James Simmons
2017-08-14 15:47 ` [PATCH 62/64] staging: lustre: libcfs: " James Simmons
2017-08-14 15:47 ` [PATCH 63/64] staging: lustre: libcfs: cleanup paths for libcfs headers James Simmons
2017-08-14 15:47 ` [PATCH 64/64] staging: lustre: lnet: cleanup paths for all LNet headers James Simmons
2017-08-17 16:22 ` [PATCH 00/64] staging: lustre: uapi: normalize the lustre headers Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1502725652-26280-60-git-send-email-jsimmons@infradead.org \
    --to=jsimmons@infradead.org \
    --cc=andreas.dilger@intel.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lustre-devel@lists.lustre.org \
    --cc=oleg.drokin@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®