All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: akpm@linux-foundation.org
Cc: linux-kernel@vger.kernel.org
Subject: [PATCHSET] idr: deprecate idr_remova_all() and add idr_alloc()
Date: Wed,  6 Feb 2013 11:39:32 -0800	[thread overview]
Message-ID: <1360179649-22465-1-git-send-email-tj@kernel.org> (raw)

(If you're reading this patchset for the first time, this patchset is
 an effort to improve idr interface.  This posting is mostly for
 collecting and routing the patches towards -mm.  Please follow the
 link at the end for details on each patchset.)

Hello, Andrew.

This patchset is combination of the following three on top of
linux-next as of 20130204 (the one before idr_removal_all() got
included).

  [1] [PATCH] idr: fix a subtle bug in idr_get_next()
+ [2] [PATCHSET] idr: deprecate idr_remove_all()
+ [3] [PATCHSET] idr: implement idr_alloc() and convert existing users (w/ all updates)

Please note that we need the idr_get_next() fix before
idr_remove_all() deprecation.

The idr_alloc() part has all the posted updates rolled in and acks
added, and I think it's at least ready for testing.  Ah, right, I
skipped deprecation of idr_pre_get() and idr_get_new*() for now.  nfs
changes are being routed separately and we can do the deprecation
after after -rc1.

This patchset contains the following 77 patches.

 0001-idr-fix-a-subtle-bug-in-idr_get_next.patch
 0002-idr-make-idr_destroy-imply-idr_remove_all.patch
 0003-atm-nicstar-don-t-use-idr_remove_all.patch
 0004-block-loop-don-t-use-idr_remove_all.patch
 0005-firewire-don-t-use-idr_remove_all.patch
 0006-drm-don-t-use-idr_remove_all.patch
 0007-dm-don-t-use-idr_remove_all.patch
 0008-remoteproc-don-t-use-idr_remove_all.patch
 0009-rpmsg-don-t-use-idr_remove_all.patch
 0010-dlm-use-idr_for_each_entry-in-recover_idr_clear-erro.patch
 0011-dlm-don-t-use-idr_remove_all.patch
 0012-nfs-idr_destroy-no-longer-needs-idr_remove_all.patch
 0013-inotify-don-t-use-idr_remove_all.patch
 0014-cgroup-don-t-use-idr_remove_all.patch
 0015-idr-deprecate-idr_remove_all.patch
 0016-idr-cosmetic-updates-to-struct-initializer-definitio.patch
 0017-idr-relocate-idr_for_each_entry-and-reorganize-id-r-.patch
 0018-idr-remove-_idr_rc_to_errno-hack.patch
 0019-idr-refactor-idr_get_new_above.patch
 0020-idr-implement-idr_preload-_end-and-idr_alloc.patch
 0021-block-fix-synchronization-and-limit-check-in-blk_all.patch
 0022-block-convert-to-idr_alloc.patch
 0023-block-loop-convert-to-idr_alloc.patch
 0024-atm-nicstar-convert-to-idr_alloc.patch
 0025-drbd-convert-to-idr_alloc.patch
 0026-dca-convert-to-idr_alloc.patch
 0027-dmaengine-convert-to-idr_alloc.patch
 0028-firewire-add-minor-number-range-check-to-fw_device_i.patch
 0029-firewire-convert-to-idr_alloc.patch
 0030-gpio-convert-to-idr_alloc.patch
 0031-drm-convert-to-idr_alloc.patch
 0032-drm-exynos-convert-to-idr_alloc.patch
 0033-drm-i915-convert-to-idr_alloc.patch
 0034-drm-sis-convert-to-idr_alloc.patch
 0035-drm-via-convert-to-idr_alloc.patch
 0036-drm-vmwgfx-convert-to-idr_alloc.patch
 0037-i2c-convert-to-idr_alloc.patch
 0038-IB-core-convert-to-idr_alloc.patch
 0039-IB-amso1100-convert-to-idr_alloc.patch
 0040-IB-cxgb3-convert-to-idr_alloc.patch
 0041-IB-cxgb4-convert-to-idr_alloc.patch
 0042-IB-ehca-convert-to-idr_alloc.patch
 0043-IB-ipath-convert-to-idr_alloc.patch
 0044-IB-mlx4-convert-to-idr_alloc.patch
 0045-IB-ocrdma-convert-to-idr_alloc.patch
 0046-IB-qib-convert-to-idr_alloc.patch
 0047-dm-convert-to-idr_alloc.patch
 0048-memstick-convert-to-idr_alloc.patch
 0049-mfd-convert-to-idr_alloc.patch
 0050-misc-c2port-convert-to-idr_alloc.patch
 0051-misc-tifm_core-convert-to-idr_alloc.patch
 0052-mmc-convert-to-idr_alloc.patch
 0053-mtd-convert-to-idr_alloc.patch
 0054-macvtap-convert-to-idr_alloc.patch
 0055-ppp-convert-to-idr_alloc.patch
 0056-power-convert-to-idr_alloc.patch
 0057-pps-convert-to-idr_alloc.patch
 0058-remoteproc-convert-to-idr_alloc.patch
 0059-rpmsg-convert-to-idr_alloc.patch
 0060-scsi-bfa-convert-to-idr_alloc.patch
 0061-scsi-convert-to-idr_alloc.patch
 0062-target-iscsi-convert-to-idr_alloc.patch
 0063-scsi-lpfc-convert-to-idr_alloc.patch
 0064-thermal-convert-to-idr_alloc.patch
 0065-uio-convert-to-idr_alloc.patch
 0066-vfio-convert-to-idr_alloc.patch
 0067-dlm-convert-to-idr_alloc.patch
 0068-inotify-convert-to-idr_alloc.patch
 0069-ocfs2-convert-to-idr_alloc.patch
 0070-ipc-convert-to-idr_alloc.patch
 0071-cgroup-convert-to-idr_alloc.patch
 0072-events-convert-to-idr_alloc.patch
 0073-posix-timers-convert-to-idr_alloc.patch
 0074-net-9p-convert-to-idr_alloc.patch
 0075-mac80211-convert-to-idr_alloc.patch
 0076-sctp-convert-to-idr_alloc.patch
 0077-nfs4client-convert-to-idr_alloc.patch

and is available in the following git branch.

 git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git convert-to-idr_alloc

diffstat follows.

 block/bsg.c                                |   26 --
 block/genhd.c                              |   22 --
 drivers/atm/nicstar.c                      |   25 --
 drivers/block/drbd/drbd_main.c             |   29 +-
 drivers/block/loop.c                       |   24 --
 drivers/dca/dca-sysfs.c                    |   23 --
 drivers/dma/dmaengine.c                    |   16 -
 drivers/firewire/core-cdev.c               |   20 -
 drivers/firewire/core-device.c             |    4 
 drivers/gpio/gpiolib.c                     |   11 -
 drivers/gpu/drm/drm_context.c              |   19 -
 drivers/gpu/drm/drm_crtc.c                 |   20 -
 drivers/gpu/drm/drm_drv.c                  |    1 
 drivers/gpu/drm/drm_gem.c                  |   37 +--
 drivers/gpu/drm/drm_stub.c                 |   19 -
 drivers/gpu/drm/exynos/exynos_drm_ipp.c    |   20 -
 drivers/gpu/drm/i915/i915_gem_context.c    |   21 --
 drivers/gpu/drm/sis/sis_drv.c              |    1 
 drivers/gpu/drm/sis/sis_mm.c               |   13 -
 drivers/gpu/drm/via/via_map.c              |    1 
 drivers/gpu/drm/via/via_mm.c               |   13 -
 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c   |   17 -
 drivers/i2c/i2c-core.c                     |   45 ----
 drivers/infiniband/core/cm.c               |   22 +-
 drivers/infiniband/core/cma.c              |   24 --
 drivers/infiniband/core/sa_query.c         |   18 -
 drivers/infiniband/core/ucm.c              |   16 -
 drivers/infiniband/core/ucma.c             |   32 ---
 drivers/infiniband/core/uverbs_cmd.c       |   17 -
 drivers/infiniband/hw/amso1100/c2_qp.c     |   19 +
 drivers/infiniband/hw/cxgb3/iwch.h         |   24 +-
 drivers/infiniband/hw/cxgb4/iw_cxgb4.h     |   27 +-
 drivers/infiniband/hw/ehca/ehca_cq.c       |   27 --
 drivers/infiniband/hw/ehca/ehca_qp.c       |   34 +--
 drivers/infiniband/hw/ipath/ipath_driver.c |   16 -
 drivers/infiniband/hw/mlx4/cm.c            |   32 +--
 drivers/infiniband/hw/ocrdma/ocrdma_main.c |   14 -
 drivers/infiniband/hw/qib/qib_init.c       |   21 --
 drivers/md/dm.c                            |   55 +----
 drivers/memstick/core/memstick.c           |   21 --
 drivers/memstick/core/mspro_block.c        |   17 -
 drivers/mfd/rtsx_pcr.c                     |   13 -
 drivers/misc/c2port/core.c                 |   22 --
 drivers/misc/tifm_core.c                   |   11 -
 drivers/mmc/core/host.c                    |   11 -
 drivers/mtd/mtdcore.c                      |    9 
 drivers/net/macvtap.c                      |   21 --
 drivers/net/ppp/ppp_generic.c              |   33 ---
 drivers/power/bq2415x_charger.c            |   11 -
 drivers/power/bq27x00_battery.c            |    9 
 drivers/power/ds2782_battery.c             |    9 
 drivers/pps/kapi.c                         |    2 
 drivers/pps/pps.c                          |   36 +--
 drivers/remoteproc/remoteproc_core.c       |   11 -
 drivers/rpmsg/virtio_rpmsg_bus.c           |   31 +--
 drivers/scsi/bfa/bfad_im.c                 |   15 -
 drivers/scsi/ch.c                          |   21 --
 drivers/scsi/lpfc/lpfc_init.c              |   12 -
 drivers/scsi/sg.c                          |   43 +---
 drivers/scsi/st.c                          |   27 --
 drivers/target/iscsi/iscsi_target.c        |   15 -
 drivers/target/iscsi/iscsi_target_login.c  |   15 -
 drivers/thermal/cpu_cooling.c              |   17 -
 drivers/thermal/thermal_sys.c              |   17 -
 drivers/uio/uio.c                          |   19 -
 drivers/vfio/vfio.c                        |   17 -
 fs/dlm/lock.c                              |   18 -
 fs/dlm/lockspace.c                         |    1 
 fs/dlm/recover.c                           |   52 ++---
 fs/nfs/client.c                            |    1 
 fs/nfs/nfs4client.c                        |   13 -
 fs/notify/inotify/inotify_fsnotify.c       |    1 
 fs/notify/inotify/inotify_user.c           |   24 +-
 fs/ocfs2/cluster/tcp.c                     |   32 +--
 include/linux/idr.h                        |  109 +++++++---
 ipc/util.c                                 |   30 --
 kernel/cgroup.c                            |   31 ---
 kernel/events/core.c                       |   10 
 kernel/posix-timers.c                      |   18 -
 lib/idr.c                                  |  298 ++++++++++++++++++++---------
 net/9p/util.c                              |   17 -
 net/mac80211/main.c                        |    2 
 net/mac80211/tx.c                          |   18 -
 net/sctp/associola.c                       |   31 +--
 84 files changed, 832 insertions(+), 1184 deletions(-)

Thanks.

--
tejun

[1] https://lkml.org/lkml/2013/2/2/145
[2] https://lkml.org/lkml/2013/1/25/759
[3] http://thread.gmane.org/gmane.linux.kernel/1434387

             reply	other threads:[~2013-02-06 19:49 UTC|newest]

Thread overview: 135+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-06 19:39 Tejun Heo [this message]
2013-02-06 19:39 ` [PATCH 01/77] idr: fix a subtle bug in idr_get_next() Tejun Heo
2013-02-06 19:39 ` [PATCH 02/77] idr: make idr_destroy() imply idr_remove_all() Tejun Heo
2013-02-06 19:39 ` [PATCH 03/77] atm/nicstar: don't use idr_remove_all() Tejun Heo
2013-02-06 19:39 ` [PATCH 04/77] block/loop: " Tejun Heo
2013-02-06 19:39 ` [PATCH 05/77] firewire: " Tejun Heo
2013-02-06 19:39 ` [PATCH 06/77] drm: " Tejun Heo
2013-02-06 19:39   ` Tejun Heo
2013-02-06 19:39 ` [PATCH 07/77] dm: " Tejun Heo
2013-02-06 19:39 ` [PATCH 08/77] remoteproc: " Tejun Heo
2013-02-06 19:39 ` [PATCH 09/77] rpmsg: " Tejun Heo
2013-02-06 19:39 ` [Cluster-devel] [PATCH 10/77] dlm: use idr_for_each_entry() in recover_idr_clear() error path Tejun Heo
2013-02-06 19:39   ` Tejun Heo
2013-02-06 19:39 ` [Cluster-devel] [PATCH 11/77] dlm: don't use idr_remove_all() Tejun Heo
2013-02-06 19:39   ` Tejun Heo
2013-02-06 19:39 ` [PATCH 12/77] nfs: idr_destroy() no longer needs idr_remove_all() Tejun Heo
2013-02-06 19:39 ` [PATCH 13/77] inotify: don't use idr_remove_all() Tejun Heo
2013-02-06 19:39 ` [PATCH 15/77] idr: deprecate idr_remove_all() Tejun Heo
2013-02-06 19:39 ` [PATCH 16/77] idr: cosmetic updates to struct / initializer definitions Tejun Heo
2013-02-06 19:39 ` [PATCH 17/77] idr: relocate idr_for_each_entry() and reorganize id[r|a]_get_new() Tejun Heo
2013-02-06 19:39 ` [PATCH 18/77] idr: remove _idr_rc_to_errno() hack Tejun Heo
2013-02-06 19:39 ` [PATCH 19/77] idr: refactor idr_get_new_above() Tejun Heo
2013-02-06 19:39 ` [PATCH 20/77] idr: implement idr_preload[_end]() and idr_alloc() Tejun Heo
2013-02-07 19:53   ` [PATCH v3 " Tejun Heo
2013-02-06 19:39 ` [PATCH 21/77] block: fix synchronization and limit check in blk_alloc_devt() Tejun Heo
2013-02-06 22:24   ` Andrew Morton
2013-02-06 22:27     ` Tejun Heo
2013-02-06 22:32       ` Andrew Morton
2013-02-06 22:33         ` Tejun Heo
2013-02-06 19:39 ` [PATCH 22/77] block: convert to idr_alloc() Tejun Heo
2013-02-06 19:39 ` [PATCH 23/77] block/loop: " Tejun Heo
2013-02-07 18:25   ` [PATCH 22.5/77] block/loop: fix error return value in loop_add() Tejun Heo
2013-02-07 18:26   ` [PATCH v2 23/77] block/loop: convert to idr_alloc() Tejun Heo
2013-02-06 19:39 ` [PATCH 24/77] atm/nicstar: " Tejun Heo
2013-02-06 19:39 ` [Drbd-dev] [PATCH 25/77] drbd: " Tejun Heo
2013-02-06 19:39   ` Tejun Heo
2013-02-06 19:39 ` [PATCH 26/77] dca: " Tejun Heo
2013-02-06 19:39 ` [PATCH 27/77] dmaengine: " Tejun Heo
2013-02-06 19:40 ` [PATCH 28/77] firewire: add minor number range check to fw_device_init() Tejun Heo
2013-02-06 19:40 ` [PATCH 29/77] firewire: convert to idr_alloc() Tejun Heo
2013-02-06 19:40 ` [PATCH 30/77] gpio: " Tejun Heo
2013-02-06 19:40 ` [PATCH 31/77] drm: " Tejun Heo
2013-02-06 19:40   ` Tejun Heo
2013-02-06 19:40 ` [PATCH 32/77] drm/exynos: " Tejun Heo
2013-02-06 19:40 ` [PATCH 33/77] drm/i915: " Tejun Heo
2013-02-06 19:40 ` [PATCH 34/77] drm/sis: " Tejun Heo
2013-02-06 19:40   ` Tejun Heo
2013-02-06 19:40 ` [PATCH 35/77] drm/via: " Tejun Heo
2013-02-06 19:40   ` Tejun Heo
2013-02-06 19:40 ` [PATCH 36/77] drm/vmwgfx: " Tejun Heo
2013-02-06 19:40 ` [PATCH 38/77] IB/core: " Tejun Heo
2013-02-06 19:40 ` [PATCH 39/77] IB/amso1100: " Tejun Heo
2013-02-06 19:40 ` [PATCH 40/77] IB/cxgb3: " Tejun Heo
2013-02-06 19:40 ` [PATCH 41/77] IB/cxgb4: " Tejun Heo
2013-02-06 19:40 ` [PATCH 43/77] IB/ipath: " Tejun Heo
2013-02-06 19:40 ` [PATCH 44/77] IB/mlx4: " Tejun Heo
2013-02-06 19:40 ` [PATCH 45/77] IB/ocrdma: " Tejun Heo
2013-02-06 19:40 ` [PATCH 46/77] IB/qib: " Tejun Heo
2013-02-06 19:40 ` [PATCH 47/77] dm: " Tejun Heo
2013-02-06 19:40   ` Tejun Heo
2013-02-06 19:40 ` [PATCH 48/77] memstick: " Tejun Heo
2013-02-06 19:40 ` [PATCH 49/77] mfd: " Tejun Heo
2013-02-06 19:40 ` [PATCH 50/77] misc/c2port: " Tejun Heo
2013-02-06 19:40 ` [PATCH 51/77] misc/tifm_core: " Tejun Heo
2013-02-06 19:40 ` [PATCH 52/77] mmc: " Tejun Heo
2013-02-06 19:40 ` [PATCH 53/77] mtd: " Tejun Heo
2013-02-06 19:40   ` Tejun Heo
2013-02-06 19:40 ` [PATCH 54/77] macvtap: " Tejun Heo
2013-02-06 19:40 ` [PATCH 55/77] ppp: " Tejun Heo
2013-02-06 19:40   ` Tejun Heo
2013-02-06 19:40 ` [PATCH 56/77] power: " Tejun Heo
2013-02-06 19:40 ` [PATCH 57/77] pps: " Tejun Heo
2013-02-06 19:40 ` [PATCH 58/77] remoteproc: " Tejun Heo
2013-02-06 19:40 ` [PATCH 59/77] rpmsg: " Tejun Heo
2013-02-06 19:40 ` [PATCH 60/77] scsi/bfa: " Tejun Heo
2013-02-06 19:40 ` [PATCH 61/77] scsi: " Tejun Heo
2013-02-06 19:40 ` [PATCH 62/77] target/iscsi: " Tejun Heo
2013-02-06 19:40 ` [PATCH 63/77] scsi/lpfc: " Tejun Heo
2013-02-11 22:47   ` James Smart
2013-02-11 22:47     ` James Smart
2013-02-06 19:40 ` [PATCH 64/77] thermal: " Tejun Heo
2013-02-06 19:40 ` [PATCH 65/77] uio: " Tejun Heo
2013-02-06 19:40 ` [PATCH 66/77] vfio: " Tejun Heo
2013-02-06 19:40 ` [PATCH 67/77] dlm: " Tejun Heo
2013-03-11 19:29   ` David Teigland
2013-03-11 20:28     ` Tejun Heo
2013-03-12 15:17       ` David Teigland
2013-03-12 21:22         ` [PATCH] idr: idr_alloc() shouldn't trigger lowmem warning when preloaded Tejun Heo
2013-02-06 19:40 ` [PATCH 68/77] inotify: convert to idr_alloc() Tejun Heo
2013-02-06 19:40 ` [PATCH 69/77] ocfs2: " Tejun Heo
2013-02-06 19:40 ` [PATCH 70/77] ipc: " Tejun Heo
2013-02-07 19:43   ` [PATCH v2 " Tejun Heo
     [not found] ` <1360179649-22465-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-02-06 19:39   ` [PATCH 14/77] cgroup: don't use idr_remove_all() Tejun Heo
2013-02-06 19:39     ` Tejun Heo
     [not found]     ` <1360179649-22465-15-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-02-07  1:29       ` Li Zefan
2013-02-07  1:29       ` Li Zefan
2013-02-07  1:29         ` Li Zefan
2013-02-06 19:40   ` [PATCH 37/77] i2c: convert to idr_alloc() Tejun Heo
2013-02-06 19:40     ` Tejun Heo
2013-02-07 15:28     ` Mark Brown
     [not found]       ` <20130207152831.GA14797-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-02-07 16:32         ` Tejun Heo
2013-02-07 16:32           ` Tejun Heo
     [not found]           ` <20130207163247.GL2875-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2013-02-07 16:39             ` Mark Brown
2013-02-07 16:39               ` Mark Brown
     [not found]               ` <20130207163958.GY4720-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2013-02-07 16:55                 ` [PATCH v2] " Tejun Heo
2013-02-07 16:55                   ` Tejun Heo
2013-02-07 18:52                   ` Mark Brown
     [not found]                   ` <20130207165547.GO2875-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2013-02-08 12:10                     ` Mark Brown
2013-02-08 12:10                       ` Mark Brown
2013-02-10 11:47                     ` Wolfram Sang
2013-02-10 11:47                       ` Wolfram Sang
     [not found]                       ` <20130210114729.GB5472-8EAEigeeuNG034pCzgS/Qg7AFbiQbgqx@public.gmane.org>
2013-02-12 17:34                         ` [PATCH -mm] i2c: style cleanups after idr_alloc() conversion Tejun Heo
2013-02-12 17:34                           ` Tejun Heo
     [not found]                           ` <20130212173414.GD7348-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2013-02-12 17:36                             ` Tejun Heo
2013-02-12 17:36                               ` Tejun Heo
     [not found]                               ` <20130212173648.GE7348-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2013-02-12 18:00                                 ` Jean Delvare
2013-02-12 18:00                                   ` Jean Delvare
2013-02-13 20:42                             ` Wolfram Sang
2013-02-13 20:42                               ` Wolfram Sang
2013-02-06 19:40   ` [PATCH 42/77] IB/ehca: convert to idr_alloc() Tejun Heo
2013-02-06 19:40     ` Tejun Heo
2013-02-06 19:40   ` [PATCH 71/77] cgroup: " Tejun Heo
2013-02-06 19:40     ` Tejun Heo
2013-02-06 19:40 ` [PATCH 72/77] events: " Tejun Heo
2013-02-06 19:40 ` [PATCH 73/77] posix-timers: " Tejun Heo
2013-02-06 19:40 ` [PATCH 74/77] net/9p: " Tejun Heo
2013-02-06 19:40 ` [PATCH 75/77] mac80211: " Tejun Heo
2013-02-06 19:40 ` [PATCH 76/77] sctp: " Tejun Heo
2013-02-06 19:40   ` Tejun Heo
2013-02-06 20:07   ` Vlad Yasevich
2013-02-06 20:07     ` Vlad Yasevich
2013-02-07 14:49   ` Neil Horman
2013-02-07 14:49     ` Neil Horman
2013-02-06 19:40 ` [PATCH 77/77] nfs4client: " Tejun Heo
2013-02-08  4:04 ` [PATCHSET] idr: deprecate idr_remova_all() and add idr_alloc() Dave Airlie

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=1360179649-22465-1-git-send-email-tj@kernel.org \
    --to=tj@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.