Re: knfd exports.c patch [TEST]

G. Allen Morris III (gam3@dharma.sehda.com)
Thu, 03 Sep 1998 13:10:48 -0700


This is a multipart MIME message.

--==_Exmh_9212087320
Content-Type: text/plain; charset=us-ascii

Here is another set of patches for knfsd.

There is a patch for the kernel 2.1.115 and a patch for knfsd->980830.

These patches do three things:

1) Allow multiple exports of a partition.

2) Allows mounting of subdirectories of export points.
(If they are on the same partition.)

3) Allow regular files to be exported.

I have not updated exporfs or mountd except for a change the getfh system
call. Because of this if you want to mount sub-directoryies of and
exported partition you must put the path in xtab. Exportfs will do this.
Export the partition and then export the sub-directories. When you mount
the sub-directories you will get error messages, but entries should end
up in xtab. (Everything will go to hell if you reboot, because the
the order of the `exportfs -a' is likely to be wrong.)

Very little testing has been done, so good luck.

Allen <gam3@acm.org>

--==_Exmh_9212087320
Content-Type: application/x-patch ; name="knfsd-980830.patch"
Content-Description: knfsd-980830.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="knfsd-980830.patch"

ZGlmZiAtdSAtciBrbmZzZC05ODA4MzAub3JpZy9zdXBwb3J0L2luY2x1ZGUvbmZzbGliLmgg
a25mc2QtOTgwODMwL3N1cHBvcnQvaW5jbHVkZS9uZnNsaWIuaAotLS0ga25mc2QtOTgwODMw
Lm9yaWcvc3VwcG9ydC9pbmNsdWRlL25mc2xpYi5oCVNhdCBBdWcgMjIgMTE6Mzg6MTQgMTk5
OAorKysga25mc2QtOTgwODMwL3N1cHBvcnQvaW5jbHVkZS9uZnNsaWIuaAlXZWQgU2VwICAy
IDIyOjE5OjU4IDE5OTgKQEAgLTEwMSw2ICsxMDEsNiBAQAogaW50CQkJbmZzZGVsY2xpZW50
KHN0cnVjdCBuZnNjdGxfY2xpZW50ICpjbHApOwogaW50CQkJbmZzZXhwb3J0KHN0cnVjdCBu
ZnNjdGxfZXhwb3J0ICpleHApOwogaW50CQkJbmZzdW5leHBvcnQoc3RydWN0IG5mc2N0bF9l
eHBvcnQgKmV4cCk7Ci1zdHJ1Y3Qga25mc19maCAqCWdldGZoKHN0cnVjdCBzb2NrYWRkciAq
YWRkciwgZGV2X3QgZGV2LCBpbm9fdCBpbm8pOworc3RydWN0IGtuZnNfZmggKglnZXRmaChz
dHJ1Y3Qgc29ja2FkZHIgKmFkZHIsIGNoYXIgKnBhdGgsIGRldl90IGRldiwgaW5vX3QgaW5v
KTsKIAogI2VuZGlmIC8qIE5GU0xJQl9IICovCmRpZmYgLXUgLXIga25mc2QtOTgwODMwLm9y
aWcvc3VwcG9ydC9uZnMvZ2V0ZmguYyBrbmZzZC05ODA4MzAvc3VwcG9ydC9uZnMvZ2V0Zmgu
YwotLS0ga25mc2QtOTgwODMwLm9yaWcvc3VwcG9ydC9uZnMvZ2V0ZmguYwlTYXQgQXVnIDIy
IDExOjM4OjE1IDE5OTgKKysrIGtuZnNkLTk4MDgzMC9zdXBwb3J0L25mcy9nZXRmaC5jCVdl
ZCBTZXAgIDIgMjI6Mjc6MjAgMTk5OApAQCAtMTYsMTMgKzE2LDE0IEBACiAjaW5jbHVkZSAi
bmZzbGliLmgiCiAKIHN0cnVjdCBrbmZzX2ZoICoKLWdldGZoKHN0cnVjdCBzb2NrYWRkciAq
YWRkciwgZGV2X3QgZGV2LCBpbm9fdCBpbm8pCitnZXRmaChzdHJ1Y3Qgc29ja2FkZHIgKmFk
ZHIsIGNoYXIgKnBhdGgsIGRldl90IGRldiwgaW5vX3QgaW5vKQogewogCXN0YXRpYyB1bmlv
biBuZnNjdGxfcmVzCXJlczsKIAlzdHJ1Y3QgbmZzY3RsX2FyZwlhcmc7CiAKIAlhcmcuY2Ff
dmVyc2lvbiA9IE5GU0NUTF9WRVJTSU9OOwogCWFyZy5jYV9nZXRmaC5nZl92ZXJzaW9uID0g
MjsJLyogb2Jzb2xldGUgKi8KKwlzdHJuY3B5KGFyZy5jYV9nZXRmaC5nZl9wYXRoLCBwYXRo
LCBORlNfTUFYUEFUSExFTik7CiAJYXJnLmNhX2dldGZoLmdmX2RldiA9IGRldjsKIAlhcmcu
Y2FfZ2V0ZmguZ2ZfaW5vID0gaW5vOwogCW1lbWNweSgmYXJnLmNhX2dldGZoLmdmX2FkZHIs
IGFkZHIsIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pKTsKZGlmZiAtdSAtciBrbmZzZC05
ODA4MzAub3JpZy91dGlscy9tb3VudGQvbW91bnRkLmMga25mc2QtOTgwODMwL3V0aWxzL21v
dW50ZC9tb3VudGQuYwotLS0ga25mc2QtOTgwODMwLm9yaWcvdXRpbHMvbW91bnRkL21vdW50
ZC5jCVR1ZSBBdWcgMTggMTk6Mzc6NDUgMTk5OAorKysga25mc2QtOTgwODMwL3V0aWxzL21v
dW50ZC9tb3VudGQuYwlUaHUgU2VwICAzIDAwOjI1OjIxIDE5OTgKQEAgLTMzLDYgKzMzLDE4
IEBACiAJeyBOVUxMLCAwLCAwLCAwIH0KIH07CiAKKy8qCisgKiBTaWduYWwgaGFuZGxlci4K
KyAqLworc3RhdGljIHZvaWQgCitraWxsZXIgKGludCBzaWcpCit7CisgIHBtYXBfdW5zZXQg
KE1PVU5UUFJPRywgTU9VTlRWRVJTKTsKKyAgcG1hcF91bnNldCAoTU9VTlRQUk9HLCBNT1VO
VFZFUlNfUE9TSVgpOworICBwbWFwX3Vuc2V0IChNT1VOVFBST0csIE1PVU5UVkVSU19ORlNW
Myk7CisgIHhsb2cgKExfRkFUQUwsICJDYXVnaHQgc2lnbmFsICVkLCB1bi1yZWdpc3Rlcmlu
ZyBhbmQgZXhpdGluZy4iLCBzaWcpOworfQorCiBib29sX3QKIG1vdW50X251bGxfMV9zdmMo
c3RydWN0IHN2Y19yZXEgKnJxc3RwLCB2b2lkICphcmdwLCB2b2lkICpyZXNwKQogewpAQCAt
MjI2LDcgKzI0MCw3IEBACiAJCWlmICghZXhwLT5tX3h0YWJlbnQpCiAJCQl4dGFiX2FwcGVu
ZChleHApOwogCi0JCWZoID0gZ2V0ZmgoKHN0cnVjdCBzb2NrYWRkciAqKSBzaW4sIHN0Yi5z
dF9kZXYsIHN0Yi5zdF9pbm8pOworCQlmaCA9IGdldGZoKChzdHJ1Y3Qgc29ja2FkZHIgKikg
c2luLCBwLCBzdGIuc3RfZGV2LCBzdGIuc3RfaW5vKTsKIAkJaWYgKGZoICE9IE5VTEwpIHsK
IAkJCW1vdW50bGlzdF9hZGQoZXhwKTsKIAkJCSplcnJvciA9IE5GU19PSzsKQEAgLTI5Niw5
ICszMTAsMTcgQEAKIAkvKiBJbml0aWFsaXplIGxvZ2dpbmcuICovCiAJeGxvZ19vcGVuKCJt
b3VudGQiKTsKIAorCXNpZ25hbChTSUdIVVAsIFNJR19JR04pOworCXNpZ25hbChTSUdJTlQs
IFNJR19JR04pOworCXNpZ25hbChTSUdURVJNLCBTSUdfSUdOKTsKKwogCXJwY19pbml0KCJt
b3VudGQiLCBNT1VOVFBST0csIE1PVU5UVkVSUywgbW91bnRfZGlzcGF0Y2gsIDAsIDApOwog
CXJwY19pbml0KCJtb3VudGQiLCBNT1VOVFBST0csIE1PVU5UVkVSU19QT1NJWCwgbW91bnRf
ZGlzcGF0Y2gsIDAsIDApOwogCXJwY19pbml0KCJtb3VudGQiLCBNT1VOVFBST0csIE1PVU5U
VkVSU19ORlNWMywgbW91bnRfZGlzcGF0Y2gsIDAsIDApOworCisJc2lnbmFsKFNJR0hVUCwg
a2lsbGVyKTsKKwlzaWduYWwoU0lHSU5ULCBraWxsZXIpOworCXNpZ25hbChTSUdURVJNLCBr
aWxsZXIpOwogCiAJLyogUGFyc2UgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zIGFuZCBhcmd1
bWVudHMuICovCiAJb3B0ZXJyID0gMDsK

--==_Exmh_9212087320
Content-Type: text/plain; name="linux-nfs-mountd.patch"; charset=us-ascii
Content-Description: linux-nfs-mountd.patch
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename="linux-nfs-mountd.patch"

To: okir@monad.swb.de (Olaf Kirch)
Subject: mountd patch
ReplyTo: gam3@acm.org
Date: Wed, 19 Aug 1998 13:58:57 -0700
From: "G. Allen Morris III" <gam3@harpo.morris.fam>

Olaf,

Here is a patch for the mountd TODO item.

TODO:
mountd

* Unregister service from portmapper upon exit/SIGTERM

----------------
--- linux-nfs-0.4.22.orig/utils/mountd/mountd.c Mon Jun 9 08:20:13 1997
+++ linux-nfs-0.4.22/utils/mountd/mountd.c Wed Aug 19 13:48:32 1998
@@ -33,6 +33,18 @@
{ NULL, 0, 0, 0 }
};
=

+/*
+ * Signal handler.
+ */
+static void =

+killer (int sig)
+{
+ pmap_unset (MOUNTPROG, MOUNTVERS);
+ pmap_unset (MOUNTPROG, MOUNTVERS_POSIX);
+ pmap_unset (MOUNTPROG, MOUNTVERS_NFSV3);
+ xlog (L_FATAL, "Caught signal %d, un-registering and exiting.", sig);
+}
+
bool_t
mount_null_1_svc(struct svc_req *rqstp, void *argp, void *resp)
{
@@ -296,9 +308,17 @@
/* Initialize logging. */
xlog_open("mountd");
=

+ signal(SIGHUP, SIG_IGN);
+ signal(SIGINT, SIG_IGN);
+ signal(SIGTERM, SIG_IGN);
+
rpc_init("mountd", MOUNTPROG, MOUNTVERS, mount_dispatch, 0, 0);
rpc_init("mountd", MOUNTPROG, MOUNTVERS_POSIX, mount_dispatch, 0, 0);
rpc_init("mountd", MOUNTPROG, MOUNTVERS_NFSV3, mount_dispatch, 0, 0);
+
+ signal(SIGHUP, killer);
+ signal(SIGINT, killer);
+ signal(SIGTERM, killer);
=

/* Parse the command line options and arguments. */
opterr =3D 0;

--
Allen Morris <gam3@acm.org>

--==_Exmh_9212087320--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html