All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: linux-nfs@vger.kernel.org
Cc: xfs@oss.sgi.com
Subject: nfs vs xfstests 193
Date: Wed, 6 Nov 2013 03:56:48 -0800	[thread overview]
Message-ID: <20131106115648.GA24804@infradead.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 536 bytes --]

I've noticed that xfstests 193 fails when run over NFS talking to an
XFS-based Linux server.  The test checks that we behave correctly
vs Posix 1003.1 for the various operations that end up in ->setattr.

Without the no_root_squash export flag we're not even able to run
something resembling the test as we get permission problems all through
it, see the first attachment for details.

With the root_squash export op we fail to clear the setuid/setgid
bits in various truncate and chown subtests, see the second attachment
for details.

[-- Attachment #2: 193.no_root_squash --]
[-- Type: text/plain, Size: 862 bytes --]

--- tests/generic/193.out	2013-10-24 15:41:33.000000000 +0000
+++ /root/xfstests/results//generic/193.out.bad	2013-11-06 11:55:39.000000000 +0000
@@ -35,26 +35,26 @@
 after:  -rw-r-Sr--
 with user exec perm
 before: -rwsr-Sr--
-after:  -rwxr-Sr--
+after:  -rwsr-Sr--
 with group exec perm
 before: -rwSr-sr--
-after:  -rw-r-xr--
+after:  -rwSr-sr--
 with user+group exec perm
 before: -rwsr-sr--
-after:  -rwxr-xr--
+after:  -rwsr-sr--
 check that suid/sgid bits are cleared after successful truncate...
 with no exec perm
 before: -rwSr-Sr--
-after:  -rw-r-Sr--
+after:  -rwSr-Sr--
 with user exec perm
 before: -rwsr-Sr--
-after:  -rwxr-Sr--
+after:  -rwsr-Sr--
 with group exec perm
 before: -rwSr-sr--
-after:  -rw-r-xr--
+after:  -rwSr-sr--
 with user+group exec perm
 before: -rwsr-sr--
-after:  -rwxr-xr--
+after:  -rwsr-sr--
 
 testing ATTR_*TIMES_SET
 

[-- Attachment #3: 193.root_squash --]
[-- Type: text/plain, Size: 7892 bytes --]

--- tests/generic/193.out	2013-10-24 15:41:33.000000000 +0000
+++ /root/xfstests/results//generic/193.out.bad	2013-11-06 11:52:05.000000000 +0000
@@ -2,63 +2,118 @@
 
 testing ATTR_UID
 
+touch: cannot touch '/mnt/nfs1/193.3516.root': Permission denied
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 user: chown root owned file to qa_user (should fail)
-chown: changing ownership of 'test.root': Operation not permitted
+chown: cannot access 'test.root': No such file or directory
 user: chown root owned file to root (should fail)
-chown: changing ownership of 'test.root': Operation not permitted
+chown: cannot access 'test.root': No such file or directory
 user: chown qa_user owned file to qa_user (should succeed)
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 user: chown qa_user owned file to root (should fail)
-chown: changing ownership of 'test.user': Operation not permitted
+chown: cannot access 'test.user': No such file or directory
 
 testing ATTR_GID
 
+touch: cannot touch '/mnt/nfs1/193.3516.root': Permission denied
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 user: chgrp root owned file to root (should fail)
-chgrp: changing group of 'test.root': Operation not permitted
+chgrp: cannot access 'test.root': No such file or directory
 user: chgrp qa_user owned file to root (should fail)
-chgrp: changing group of 'test.user': Operation not permitted
+chgrp: cannot access 'test.user': No such file or directory
 user: chgrp root owned file to qa_user (should fail)
-chgrp: changing group of 'test.root': Operation not permitted
+chgrp: cannot access 'test.root': No such file or directory
 user: chgrp qa_user owned file to qa_user (should succeed)
+chgrp: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 
 testing ATTR_MODE
 
+touch: cannot touch '/mnt/nfs1/193.3516.root': Permission denied
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 user: chmod a+r on qa_user owned file (should succeed)
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 user: chmod a+r on root owned file (should fail)
-chmod: changing permissions of 'test.root': Operation not permitted
+chmod: cannot access 'test.root': No such file or directory
 check that the sgid bit is cleared
--rw-rw-rw-
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 check that suid bit is not cleared
--rwSrw-rw-
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+touch: cannot touch '/mnt/nfs1/193.3516.root': Permission denied
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 check that suid/sgid bits are cleared after successful chown...
 with no exec perm
-before: -rwSr-Sr--
-after:  -rw-r-Sr--
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 with user exec perm
-before: -rwsr-Sr--
-after:  -rwxr-Sr--
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 with group exec perm
-before: -rwSr-sr--
-after:  -rw-r-xr--
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 with user+group exec perm
-before: -rwsr-sr--
-after:  -rwxr-xr--
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+touch: cannot touch '/mnt/nfs1/193.3516.root': Permission denied
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 check that suid/sgid bits are cleared after successful truncate...
 with no exec perm
-before: -rwSr-Sr--
-after:  -rw-r-Sr--
+./tests/generic/193: line 242: /mnt/nfs1/193.3516.user: Permission denied
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+bash: /mnt/nfs1/193.3516.user: Permission denied
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 with user exec perm
-before: -rwsr-Sr--
-after:  -rwxr-Sr--
+./tests/generic/193: line 249: /mnt/nfs1/193.3516.user: Permission denied
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+bash: /mnt/nfs1/193.3516.user: Permission denied
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 with group exec perm
-before: -rwSr-sr--
-after:  -rw-r-xr--
+./tests/generic/193: line 257: /mnt/nfs1/193.3516.user: Permission denied
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+bash: /mnt/nfs1/193.3516.user: Permission denied
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 with user+group exec perm
-before: -rwsr-sr--
-after:  -rwxr-xr--
+./tests/generic/193: line 266: /mnt/nfs1/193.3516.user: Permission denied
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+bash: /mnt/nfs1/193.3516.user: Permission denied
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 
 testing ATTR_*TIMES_SET
 
+touch: cannot touch '/mnt/nfs1/193.3516.root': Permission denied
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 user: touch qa_user file (should succeed)
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
 user: touch root file (should fail)
 touch: cannot touch 'test.root': Permission denied
 *** done

[-- Attachment #4: Type: text/plain, Size: 121 bytes --]

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@infradead.org>
To: linux-nfs@vger.kernel.org
Cc: xfs@oss.sgi.com
Subject: nfs vs xfstests 193
Date: Wed, 6 Nov 2013 03:56:48 -0800	[thread overview]
Message-ID: <20131106115648.GA24804@infradead.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 536 bytes --]

I've noticed that xfstests 193 fails when run over NFS talking to an
XFS-based Linux server.  The test checks that we behave correctly
vs Posix 1003.1 for the various operations that end up in ->setattr.

Without the no_root_squash export flag we're not even able to run
something resembling the test as we get permission problems all through
it, see the first attachment for details.

With the root_squash export op we fail to clear the setuid/setgid
bits in various truncate and chown subtests, see the second attachment
for details.

[-- Attachment #2: 193.no_root_squash --]
[-- Type: text/plain, Size: 862 bytes --]

--- tests/generic/193.out	2013-10-24 15:41:33.000000000 +0000
+++ /root/xfstests/results//generic/193.out.bad	2013-11-06 11:55:39.000000000 +0000
@@ -35,26 +35,26 @@
 after:  -rw-r-Sr--
 with user exec perm
 before: -rwsr-Sr--
-after:  -rwxr-Sr--
+after:  -rwsr-Sr--
 with group exec perm
 before: -rwSr-sr--
-after:  -rw-r-xr--
+after:  -rwSr-sr--
 with user+group exec perm
 before: -rwsr-sr--
-after:  -rwxr-xr--
+after:  -rwsr-sr--
 check that suid/sgid bits are cleared after successful truncate...
 with no exec perm
 before: -rwSr-Sr--
-after:  -rw-r-Sr--
+after:  -rwSr-Sr--
 with user exec perm
 before: -rwsr-Sr--
-after:  -rwxr-Sr--
+after:  -rwsr-Sr--
 with group exec perm
 before: -rwSr-sr--
-after:  -rw-r-xr--
+after:  -rwSr-sr--
 with user+group exec perm
 before: -rwsr-sr--
-after:  -rwxr-xr--
+after:  -rwsr-sr--
 
 testing ATTR_*TIMES_SET
 

[-- Attachment #3: 193.root_squash --]
[-- Type: text/plain, Size: 7892 bytes --]

--- tests/generic/193.out	2013-10-24 15:41:33.000000000 +0000
+++ /root/xfstests/results//generic/193.out.bad	2013-11-06 11:52:05.000000000 +0000
@@ -2,63 +2,118 @@
 
 testing ATTR_UID
 
+touch: cannot touch '/mnt/nfs1/193.3516.root': Permission denied
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 user: chown root owned file to qa_user (should fail)
-chown: changing ownership of 'test.root': Operation not permitted
+chown: cannot access 'test.root': No such file or directory
 user: chown root owned file to root (should fail)
-chown: changing ownership of 'test.root': Operation not permitted
+chown: cannot access 'test.root': No such file or directory
 user: chown qa_user owned file to qa_user (should succeed)
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 user: chown qa_user owned file to root (should fail)
-chown: changing ownership of 'test.user': Operation not permitted
+chown: cannot access 'test.user': No such file or directory
 
 testing ATTR_GID
 
+touch: cannot touch '/mnt/nfs1/193.3516.root': Permission denied
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 user: chgrp root owned file to root (should fail)
-chgrp: changing group of 'test.root': Operation not permitted
+chgrp: cannot access 'test.root': No such file or directory
 user: chgrp qa_user owned file to root (should fail)
-chgrp: changing group of 'test.user': Operation not permitted
+chgrp: cannot access 'test.user': No such file or directory
 user: chgrp root owned file to qa_user (should fail)
-chgrp: changing group of 'test.root': Operation not permitted
+chgrp: cannot access 'test.root': No such file or directory
 user: chgrp qa_user owned file to qa_user (should succeed)
+chgrp: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 
 testing ATTR_MODE
 
+touch: cannot touch '/mnt/nfs1/193.3516.root': Permission denied
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 user: chmod a+r on qa_user owned file (should succeed)
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 user: chmod a+r on root owned file (should fail)
-chmod: changing permissions of 'test.root': Operation not permitted
+chmod: cannot access 'test.root': No such file or directory
 check that the sgid bit is cleared
--rw-rw-rw-
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 check that suid bit is not cleared
--rwSrw-rw-
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+touch: cannot touch '/mnt/nfs1/193.3516.root': Permission denied
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 check that suid/sgid bits are cleared after successful chown...
 with no exec perm
-before: -rwSr-Sr--
-after:  -rw-r-Sr--
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 with user exec perm
-before: -rwsr-Sr--
-after:  -rwxr-Sr--
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 with group exec perm
-before: -rwSr-sr--
-after:  -rw-r-xr--
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 with user+group exec perm
-before: -rwsr-sr--
-after:  -rwxr-xr--
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+touch: cannot touch '/mnt/nfs1/193.3516.root': Permission denied
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 check that suid/sgid bits are cleared after successful truncate...
 with no exec perm
-before: -rwSr-Sr--
-after:  -rw-r-Sr--
+./tests/generic/193: line 242: /mnt/nfs1/193.3516.user: Permission denied
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+bash: /mnt/nfs1/193.3516.user: Permission denied
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 with user exec perm
-before: -rwsr-Sr--
-after:  -rwxr-Sr--
+./tests/generic/193: line 249: /mnt/nfs1/193.3516.user: Permission denied
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+bash: /mnt/nfs1/193.3516.user: Permission denied
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 with group exec perm
-before: -rwSr-sr--
-after:  -rw-r-xr--
+./tests/generic/193: line 257: /mnt/nfs1/193.3516.user: Permission denied
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+bash: /mnt/nfs1/193.3516.user: Permission denied
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 with user+group exec perm
-before: -rwsr-sr--
-after:  -rwxr-xr--
+./tests/generic/193: line 266: /mnt/nfs1/193.3516.user: Permission denied
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+chmod: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
+before: stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
+bash: /mnt/nfs1/193.3516.user: Permission denied
+after:  stat: cannot stat '/mnt/nfs1/193.3516.user': No such file or directory
 
 testing ATTR_*TIMES_SET
 
+touch: cannot touch '/mnt/nfs1/193.3516.root': Permission denied
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
+chown: cannot access '/mnt/nfs1/193.3516.user': No such file or directory
 user: touch qa_user file (should succeed)
+touch: cannot touch '/mnt/nfs1/193.3516.user': Permission denied
 user: touch root file (should fail)
 touch: cannot touch 'test.root': Permission denied
 *** done

             reply	other threads:[~2013-11-06 11:56 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-06 11:56 Christoph Hellwig [this message]
2013-11-06 11:56 ` nfs vs xfstests 193 Christoph Hellwig
2013-12-06 13:20 ` Stanislav Kholmanskikh
2013-12-06 13:20   ` Stanislav Kholmanskikh
2013-12-06 18:08   ` Christoph Hellwig
2013-12-06 18:08     ` Christoph Hellwig
2013-12-06 20:44     ` J. Bruce Fields
2013-12-06 20:44       ` J. Bruce Fields
2013-12-06 20:47       ` J. Bruce Fields
2013-12-06 20:47         ` J. Bruce Fields
2013-12-10 14:43         ` Stanislav Kholmanskikh
2013-12-10 14:43           ` Stanislav Kholmanskikh
2013-12-11 10:16         ` [PATCH] nfsd: revoking of suid/sgid bits after chown() in a consistent way Stanislav Kholmanskikh
2013-12-11 10:16           ` Stanislav Kholmanskikh
2013-12-11 11:00           ` Stanislav Kholmanskikh
2013-12-11 11:00             ` Stanislav Kholmanskikh
2013-12-12  3:38             ` J. Bruce Fields
2013-12-12  3:38               ` J. Bruce Fields
2013-12-12  8:13               ` Christoph Hellwig
2013-12-12  8:13                 ` Christoph Hellwig
2013-12-12 11:44               ` Stanislav Kholmanskikh
2013-12-12 11:44                 ` Stanislav Kholmanskikh
2013-12-12 16:01           ` J. Bruce Fields
2013-12-12 16:01             ` J. Bruce Fields

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=20131106115648.GA24804@infradead.org \
    --to=hch@infradead.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=xfs@oss.sgi.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 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.