Author: baggins Date: Thu Apr 5 16:56:37 2007 GMT Module: SOURCES Tag: HEAD ---- Log message: - removed obsolete patchsets - updated to 1.1.0-rc1
---- Files affected: SOURCES: nfs-utils-CITI_NFS4.patch (1.3 -> 1.4) ---- Diffs: ================================================================ Index: SOURCES/nfs-utils-CITI_NFS4.patch diff -u SOURCES/nfs-utils-CITI_NFS4.patch:1.3 SOURCES/nfs-utils-CITI_NFS4.patch:1.4 --- SOURCES/nfs-utils-CITI_NFS4.patch:1.3 Sat Mar 31 01:38:41 2007 +++ SOURCES/nfs-utils-CITI_NFS4.patch Thu Apr 5 18:56:32 2007 @@ -1,116 +1,88 @@ +Add secinfo processing. +From: Fred Isaman <[EMAIL PROTECTED]> -The complete set of CITI nfs-utils patches rolled into one patch. +Signed-off-by: Fred Isaman <[EMAIL PROTECTED]> -Changes since 1.0.10-CITI_NFS4_ALL-4: +Add secinfo processing. +--- + + support/include/nfslib.h | 6 ++ + support/nfs/exports.c | 145 ++++++++++++++++++++++++++++++++++++++++++++- + utils/exportfs/exportfs.c | 3 + + utils/mountd/cache.c | 14 ++++ + 4 files changed, 164 insertions(+), 4 deletions(-) + +Try to use kernel function to determine supported Kerberos enctypes. - * Update to nfs-utils-1.0.11 +From: Kevin Coffman <[EMAIL PROTECTED]> + +Signed-off-by: Kevin Coffman <[EMAIL PROTECTED]> + +This patch replaces a hard-coded list with a function to obtain +the Kerberos encryption types that the kernel's rpcsec_gss code +can support. Defaults to old behavior if kernel does not supply +information. +--- - * Include missing fslocations files and a small change so that - fslocations works. + utils/gssd/gssd.c | 2 + utils/gssd/krb5_util.c | 228 +++++++++++++++++++++++++++++++++++++----------- + utils/gssd/krb5_util.h | 2 + 3 files changed, 182 insertions(+), 50 deletions(-) - * Include several mount patches from Steve Dickson +Add EXPERIMENTAL support for non-DES encryption types. - * Add a patch to put the mount.nfs[4] and umount.nfs[4] in the - place where mount expects them during install. +From: Kevin Coffman <[EMAIL PROTECTED]> +Signed-off-by: Kevin Coffman <[EMAIL PROTECTED]> +Adds EXPERIMENTAL support for non-DES encryption types. Sends a new +format of context information to the kernel. +(Requires kernel support to do anything useful.) --- - nfs-utils-1.0.11-kwc/Makefile.in | 136 - nfs-utils-1.0.11-kwc/aclocal.m4 | 250 - nfs-utils-1.0.11-kwc/configure | 4436 +++++++++++----- - nfs-utils-1.0.11-kwc/linux-nfs/Makefile.in | 88 - nfs-utils-1.0.11-kwc/support/Makefile.in | 120 - nfs-utils-1.0.11-kwc/support/export/Makefile.in | 113 - nfs-utils-1.0.11-kwc/support/export/export.c | 2 - nfs-utils-1.0.11-kwc/support/include/Makefile.in | 124 - nfs-utils-1.0.11-kwc/support/include/fstab.h | 8 - nfs-utils-1.0.11-kwc/support/include/nfs/Makefile.in | 88 - nfs-utils-1.0.11-kwc/support/include/nfs_mntent.h | 8 - nfs-utils-1.0.11-kwc/support/include/nfslib.h | 6 - nfs-utils-1.0.11-kwc/support/include/rpcsvc/Makefile.in | 88 - nfs-utils-1.0.11-kwc/support/include/sys/Makefile.in | 120 - nfs-utils-1.0.11-kwc/support/include/sys/fs/Makefile.in | 88 - nfs-utils-1.0.11-kwc/support/misc/Makefile.in | 113 - nfs-utils-1.0.11-kwc/support/nfs/Makefile.in | 113 - nfs-utils-1.0.11-kwc/support/nfs/conn.c | 2 - nfs-utils-1.0.11-kwc/support/nfs/exports.c | 149 - nfs-utils-1.0.11-kwc/support/nfs/fstab.c | 57 - nfs-utils-1.0.11-kwc/tools/Makefile.in | 120 - nfs-utils-1.0.11-kwc/tools/getiversion/Makefile.in | 126 - nfs-utils-1.0.11-kwc/tools/locktest/Makefile.in | 126 - nfs-utils-1.0.11-kwc/tools/nlmtest/Makefile.in | 88 - nfs-utils-1.0.11-kwc/tools/rpcdebug/Makefile.in | 135 - nfs-utils-1.0.11-kwc/tools/rpcgen/Makefile.in | 198 - nfs-utils-1.0.11-kwc/utils/Makefile.in | 120 - nfs-utils-1.0.11-kwc/utils/exportfs/Makefile.in | 130 - nfs-utils-1.0.11-kwc/utils/exportfs/exportfs.c | 5 - nfs-utils-1.0.11-kwc/utils/exportfs/exports.man | 14 - nfs-utils-1.0.11-kwc/utils/gssd/Makefile.in | 356 - - nfs-utils-1.0.11-kwc/utils/gssd/context.h | 6 - nfs-utils-1.0.11-kwc/utils/gssd/context_lucid.c | 391 + - nfs-utils-1.0.11-kwc/utils/gssd/context_mit.c | 256 - nfs-utils-1.0.11-kwc/utils/gssd/gssd.c | 17 - nfs-utils-1.0.11-kwc/utils/gssd/gssd.h | 3 - nfs-utils-1.0.11-kwc/utils/gssd/gssd_main_loop.c | 4 - nfs-utils-1.0.11-kwc/utils/gssd/gssd_proc.c | 22 - nfs-utils-1.0.11-kwc/utils/gssd/krb5_util.c | 228 - nfs-utils-1.0.11-kwc/utils/gssd/krb5_util.h | 2 - nfs-utils-1.0.11-kwc/utils/idmapd/Makefile.in | 124 - nfs-utils-1.0.11-kwc/utils/lockd/Makefile.in | 126 - nfs-utils-1.0.11-kwc/utils/mount/Makefile.am | 15 - nfs-utils-1.0.11-kwc/utils/mount/Makefile.in | 140 - nfs-utils-1.0.11-kwc/utils/mount/mount.c | 211 - nfs-utils-1.0.11-kwc/utils/mount/nfs4mount.c | 3 - nfs-utils-1.0.11-kwc/utils/mount/nfs_mount.h | 4 - nfs-utils-1.0.11-kwc/utils/mount/nfsmount.c | 70 - nfs-utils-1.0.11-kwc/utils/mount/nfsumount.c | 53 - nfs-utils-1.0.11-kwc/utils/mountd/Makefile.in | 182 - nfs-utils-1.0.11-kwc/utils/mountd/cache.c | 16 - nfs-utils-1.0.11-kwc/utils/mountd/fsloc.c | 188 - nfs-utils-1.0.11-kwc/utils/mountd/fsloc.h | 50 - nfs-utils-1.0.11-kwc/utils/nfsd/Makefile.in | 126 - nfs-utils-1.0.11-kwc/utils/nfsstat/Makefile.in | 124 - nfs-utils-1.0.11-kwc/utils/rquotad/Makefile.in | 166 - nfs-utils-1.0.11-kwc/utils/showmount/Makefile.in | 132 - nfs-utils-1.0.11-kwc/utils/statd/Makefile.in | 126 - 58 files changed, 6974 insertions(+), 3338 deletions(-) + utils/gssd/context.h | 6 + + utils/gssd/context_lucid.c | 391 ++++++++++++++++++++++++++++++++++++++++++-- + utils/gssd/context_mit.c | 254 +++++++++++++++++++++++++---- + 3 files changed, 603 insertions(+), 48 deletions(-) ---- nfs-utils-1.0.12/utils/mountd/cache.c.orig 2007-02-27 05:55:40.000000000 +0100 -+++ nfs-utils-1.0.12/utils/mountd/cache.c 2007-03-11 00:38:34.746218136 +0100 -@@ -445,6 +445,19 @@ - release_replicas(servers); - } +diff --git a/support/include/nfslib.h b/support/include/nfslib.h +index c085029..6d7743d 100644 +--- a/support/include/nfslib.h ++++ b/support/include/nfslib.h +@@ -57,6 +57,9 @@ enum cle_maptypes { + #define _PATH_PROC_EXPORTS_ALT "/proc/fs/nfsd/exports" + #endif -+static void write_secinfo(FILE *f, struct exportent *ep) -+{ -+ int *p; -+ qword_print(f, "secinfo"); -+ for (p=ep->e_secinfo_order; *p>=0; p++) -+ ; /* Do nothing */ -+ qword_printint(f, p - ep->e_secinfo_order); -+ for (p=ep->e_secinfo_order; *p>=0; p++) { -+ qword_print(f, secflavor_name[*p]); -+ qword_printint(f, ep->e_secinfo_flags[*p]); -+ } -+} ++#define SECFLAVOR_COUNT 7 ++extern char *secflavor_name[SECFLAVOR_COUNT]; + - static int dump_to_cache(FILE *f, char *domain, char *path, struct exportent *exp) - { - qword_print(f, domain); -@@ -466,6 +479,7 @@ - qword_print(f, "uuid"); - qword_printhex(f, exp->e_uuid, 16); - } -+ write_secinfo(f, exp); - } - return qword_eol(f); - } ---- nfs-utils-1.0.12/support/nfs/exports.c.orig 2007-02-27 05:55:40.000000000 +0100 -+++ nfs-utils-1.0.12/support/nfs/exports.c 2007-03-11 00:39:09.496198423 +0100 -@@ -51,6 +51,10 @@ - static int parsemaptype(char *type); + /* + * Data related to a single exports entry as returned by getexportent. + * FIXME: export options should probably be parsed at a later time to +@@ -83,6 +86,8 @@ struct exportent { + int e_fslocmethod; + char * e_fslocdata; + char * e_uuid; ++ int e_secinfo_order[SECFLAVOR_COUNT+1]; ++ int e_secinfo_flags[SECFLAVOR_COUNT]; + }; + + struct rmtabent { +@@ -96,6 +101,7 @@ struct rmtabent { + */ + void setexportent(char *fname, char *type); + struct exportent * getexportent(int,int); ++void secinfo_show(FILE *fp, struct exportent *ep); + void putexportent(struct exportent *xep); + void endexportent(void); + struct exportent * mkexportent(char *hname, char *path, char *opts); +diff --git a/support/nfs/exports.c b/support/nfs/exports.c +index 294e1c9..af9ab2f 100644 +--- a/support/nfs/exports.c ++++ b/support/nfs/exports.c +@@ -51,6 +51,10 @@ static int parsenum(char **cpp); + static int parsenum(char **cpp); static void freesquash(void); static void syntaxerr(char *msg); +static unsigned int parse_flavors(char *str, struct exportent *ep); @@ -120,7 +92,7 @@ void setexportent(char *fname, char *type) -@@ -102,6 +106,7 @@ +@@ -102,6 +106,7 @@ getexportent(int fromkernel, int fromexp def_ee.e_mountpoint = NULL; def_ee.e_fslocmethod = FSLOC_NONE; def_ee.e_fslocdata = NULL; @@ -128,7 +100,7 @@ def_ee.e_nsquids = 0; def_ee.e_nsqgids = 0; -@@ -182,6 +187,19 @@ +@@ -182,6 +187,19 @@ getexportent(int fromkernel, int fromexp } void @@ -148,7 +120,7 @@ putexportent(struct exportent *ep) { FILE *fp; -@@ -199,7 +217,6 @@ +@@ -199,7 +217,6 @@ putexportent(struct exportent *ep) fprintf(fp, "%c", esc[i]); fprintf(fp, "\t%s(", ep->e_hostname); @@ -156,7 +128,7 @@ fprintf(fp, "%ssync,", (ep->e_flags & NFSEXP_ASYNC)? "a" : ""); fprintf(fp, "%swdelay,", (ep->e_flags & NFSEXP_GATHERED_WRITES)? "" : "no_"); -@@ -276,7 +293,9 @@ +@@ -276,7 +293,9 @@ #endif else fprintf(fp, "%d,", id[i]); } @@ -167,7 +139,7 @@ } void -@@ -325,6 +344,7 @@ +@@ -325,6 +344,7 @@ mkexportent(char *hname, char *path, cha ee.e_mountpoint = NULL; ee.e_fslocmethod = FSLOC_NONE; ee.e_fslocdata = NULL; @@ -175,7 +147,7 @@ ee.e_nsquids = 0; ee.e_nsqgids = 0; ee.e_uuid = NULL; -@@ -376,6 +396,9 @@ +@@ -376,6 +396,9 @@ parseopts(char *cp, struct exportent *ep int had_subtree_opt = 0; char *flname = efname?efname:"command line"; int flline = efp?efp->x_line:0; @@ -185,7 +157,7 @@ squids = ep->e_squids; nsquids = ep->e_nsquids; sqgids = ep->e_sqgids; nsqgids = ep->e_nsqgids; -@@ -398,9 +421,9 @@ +@@ -398,9 +421,9 @@ parseopts(char *cp, struct exportent *ep /* process keyword */ if (strcmp(opt, "ro") == 0) @@ -197,7 +169,7 @@ else if (!strcmp(opt, "secure")) ep->e_flags &= ~NFSEXP_INSECURE_PORT; else if (!strcmp(opt, "insecure")) -@@ -522,6 +545,10 @@ +@@ -522,6 +545,10 @@ #endif } else if (strncmp(opt, "replicas=", 9) == 0) { ep->e_fslocmethod = FSLOC_REPLICA; ep->e_fslocdata = strdup(opt+9); @@ -208,7 +180,7 @@ } else { xlog(L_ERROR, "%s:%d: unknown keyword \"%s\"\n", flname, flline, opt); -@@ -533,6 +560,12 @@ +@@ -533,6 +560,12 @@ #endif cp++; } @@ -221,7 +193,7 @@ ep->e_squids = squids; ep->e_sqgids = sqgids; ep->e_nsquids = nsquids; -@@ -663,3 +696,107 @@ +@@ -663,3 +696,107 @@ syntaxerr(char *msg) efname, efp?efp->x_line:0, msg); } @@ -329,9 +301,11 @@ + active >>= 1; + } +} ---- nfs-utils-1.0.12/utils/exportfs/exportfs.c.orig 2007-02-27 05:55:40.000000000 +0100 -+++ nfs-utils-1.0.12/utils/exportfs/exportfs.c 2007-03-11 00:39:30.569399317 +0100 -@@ -376,10 +376,12 @@ +diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c +index 22e13a3..30732b8 100644 +--- a/utils/exportfs/exportfs.c ++++ b/utils/exportfs/exportfs.c +@@ -376,10 +376,12 @@ dump(int verbose) continue; } c = '('; @@ -344,7 +318,7 @@ if (ep->e_flags & NFSEXP_ASYNC) c = dumpopt(c, "async"); if (ep->e_flags & NFSEXP_GATHERED_WRITES) -@@ -433,6 +435,7 @@ +@@ -433,6 +435,7 @@ #ifdef DEBUG break; #endif } @@ -352,1239 +326,56 @@ printf("%c\n", (c != '(')? ')' : ' '); } } -diff -puN utils/exportfs/exports.man~CITI_NFS4_ALL utils/exportfs/exports.man ---- nfs-utils-1.0.11/utils/exportfs/exports.man~CITI_NFS4_ALL 2007-02-26 18:52:07.928367000 -0500 -+++ nfs-utils-1.0.11-kwc/utils/exportfs/exports.man 2007-02-26 18:52:08.691050000 -0500 -@@ -348,6 +348,20 @@ If the client asks for alternative locat - will be given this list of alternatives. (Note that actual replication - of the filesystem must be handled elsewhere.) - -+.TP -+.IR refer= [EMAIL PROTECTED]:[EMAIL PROTECTED] -+A client referencing the export point will be directed to choose from -+the given list an alternative location for the filesystem. -+(Note that the server must have a mountpoint here, though a different -+filesystem is not required; so, for example, -+.IR "mount --bind" " /path /path" -+is sufficient.) -+.TP -+.IR replicas= [EMAIL PROTECTED]:[EMAIL PROTECTED] -+If the client asks for alternative locations for the export point, it -+will be given this list of alternatives. (Note that actual replication -+of the filesystem must be handled elsewhere.) -+ - .SS User ID Mapping - .PP - .I nfsd -diff -puN /dev/null utils/mountd/fsloc.c ---- /dev/null 2007-02-26 18:43:11.800773059 -0500 -+++ nfs-utils-1.0.11-kwc/utils/mountd/fsloc.c 2007-02-26 18:52:08.724017000 -0500 -@@ -0,0 +1,188 @@ -+/* -+ * COPYRIGHT (c) 2006 -+ * THE REGENTS OF THE UNIVERSITY OF MICHIGAN -+ * ALL RIGHTS RESERVED -+ * -+ * Permission is granted to use, copy, create derivative works -+ * and redistribute this software and such derivative works -+ * for any purpose, so long as the name of The University of -+ * Michigan is not used in any advertising or publicity -+ * pertaining to the use of distribution of this software -+ * without specific, written prior authorization. If the -+ * above copyright notice or any other identification of the -+ * University of Michigan is included in any copy of any -+ * portion of this software, then the disclaimer below must -+ * also be included. -+ * -+ * THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION -+ * FROM THE UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY -+ * PURPOSE, AND WITHOUT WARRANTY BY THE UNIVERSITY OF -+ * MICHIGAN OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING -+ * WITHOUT LIMITATION THE IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE -+ * REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE -+ * FOR ANY DAMAGES, INCLUDING SPECIAL, INDIRECT, INCIDENTAL, OR -+ * CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM ARISING -+ * OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN -+ * IF IT HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGES. -+ */ -+ -+#include <stdlib.h> -+#include <string.h> -+#include <syslog.h> -+ -+#include "fsloc.h" -+#include "exportfs.h" -+ -+/* Debugging tool: prints out @servers info to syslog */ -+static void replicas_print(struct servers *sp) -+{ -+ int i; -+ if (!sp) { -+ xlog(L_NOTICE, "NULL replicas pointer\n"); -+ return; -+ } -+ xlog(L_NOTICE, "replicas listsize=%i\n", sp->h_num); -+ for (i=0; i<sp->h_num; i++) { -+ xlog(L_NOTICE, " %s:%s\n", -+ sp->h_mp[i]->h_host, sp->h_mp[i]->h_path); -+ } -+} -+ -+#ifdef DEBUG -+/* Called by setting 'Method = stub' in config file. Just returns -+ * some syntactically correct gibberish for testing purposes. -+ */ -+static struct servers *method_stub(char *key) -+{ -+ struct servers *sp; -+ struct mount_point *mp; -+ -+ xlog(L_NOTICE, "called method_stub\n"); -+ sp = malloc(sizeof(struct servers)); -+ if (!sp) -+ return NULL; -+ mp = calloc(1, sizeof(struct mount_point)); -+ if (!mp) { -+ free(sp); -+ return NULL; -+ } -+ sp->h_num = 1; -+ sp->h_mp[0] = mp; -+ mp->h_host = strdup("stub_server"); -+ mp->h_path = strdup("/my/test/path"); -+ sp->h_referral = 1; -+ return sp; -+} -+#endif /* DEBUG */ -+ -+/* Scan @list, which is a NULL-terminated array of strings of the -+ * form [EMAIL PROTECTED], and return corresponding servers structure. -+ */ -+static struct servers *parse_list(char **list) -+{ -+ int i; -+ struct servers *res; -+ struct mount_point *mp; -+ char *cp; -+ -+ res = malloc(sizeof(struct servers)); -+ if (!res) -+ return NULL; -+ res->h_num = 0; -+ -+ /* parse each of the answers in sucession. */ -+ for (i=0; list[i] && i<FSLOC_MAX_LIST; i++) { -+ mp = calloc(1, sizeof(struct mount_point)); -+ if (!mp) { -+ release_replicas(res); -+ return NULL; -+ } -+ cp = strchr(list[i], '@'); -+ if ((!cp) || list[i][0] != '/') { -+ xlog(L_WARNING, "invalid entry '%s'", list[i]); -+ continue; /* XXX Need better error handling */ -+ } -+ res->h_mp[i] = mp; -+ res->h_num++; -+ mp->h_path = strndup(list[i], cp - list[i]); -+ cp++; -+ mp->h_host = strdup(cp); -+ /* hosts are '+' separated, kernel expects ':' separated */ -+ while ( (cp = strchr(mp->h_host, '+')) ) -+ *cp = ':'; -+ } -+ return res; -+} -+ -+/* @data is a string of form [EMAIL PROTECTED]:[EMAIL PROTECTED] -+ */ -+static struct servers *method_list(char *data) -+{ -+ char *copy, *ptr=data; -+ char **list; -+ int i, listsize; -+ struct servers *rv=NULL; -+ -+ xlog(L_NOTICE, "method_list(%s)\n", data); -+ for (ptr--, listsize=1; ptr; ptr=index(ptr, ':'), listsize++) -+ ptr++; -+ list = malloc(listsize * sizeof(char *)); -+ copy = strdup(data); -+ if (copy) -+ xlog(L_NOTICE, "converted to %s\n", copy); -+ if (list && copy) { -+ ptr = copy; -+ for (i=0; i<listsize; i++) { -+ list[i] = strsep(&ptr, ":"); -+ } -+ rv = parse_list(list); -+ } -+ free(copy); -+ free(list); -+ replicas_print(rv); -+ return rv; -+} -+ -+/* Returns appropriately filled struct servers, or NULL if had a problem */ -+struct servers *replicas_lookup(int method, char *data, char *key) -+{ -+ struct servers *sp=NULL; -+ switch(method) { -+ case FSLOC_NONE: -+ break; -+ case FSLOC_REFER: -+ sp = method_list(data); -+ if (sp) -+ sp->h_referral = 1; -+ break; -+ case FSLOC_REPLICA: -+ sp = method_list(data); -+ if (sp) -+ sp->h_referral = 0; -+ break; -+#ifdef DEBUG -+ case FSLOC_STUB: -+ sp = method_stub(data); -+ break; -+#endif -+ default: -+ xlog(L_WARNING, "Unknown method = %i", method); -+ } -+ replicas_print(sp); -+ return sp; -+} -+ -+void release_replicas(struct servers *server) -+{ -+ int i; -+ -+ if (!server) return; -+ for (i = 0; i < server->h_num; i++) { -+ free(server->h_mp[i]->h_host); -+ free(server->h_mp[i]->h_path); -+ free(server->h_mp[i]); -+ } -+ free(server); -+} -diff -puN /dev/null utils/mountd/fsloc.h ---- /dev/null 2007-02-26 18:43:11.800773059 -0500 -+++ nfs-utils-1.0.11-kwc/utils/mountd/fsloc.h 2007-02-26 18:52:08.764976000 -0500 -@@ -0,0 +1,50 @@ -+/* -+ * COPYRIGHT (c) 2006 -+ * THE REGENTS OF THE UNIVERSITY OF MICHIGAN -+ * ALL RIGHTS RESERVED -+ * -+ * Permission is granted to use, copy, create derivative works -+ * and redistribute this software and such derivative works -+ * for any purpose, so long as the name of The University of -+ * Michigan is not used in any advertising or publicity -+ * pertaining to the use of distribution of this software -+ * without specific, written prior authorization. If the -+ * above copyright notice or any other identification of the -+ * University of Michigan is included in any copy of any -+ * portion of this software, then the disclaimer below must -+ * also be included. -+ * -+ * THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION -+ * FROM THE UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY -+ * PURPOSE, AND WITHOUT WARRANTY BY THE UNIVERSITY OF -+ * MICHIGAN OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING -+ * WITHOUT LIMITATION THE IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE -+ * REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE -+ * FOR ANY DAMAGES, INCLUDING SPECIAL, INDIRECT, INCIDENTAL, OR -+ * CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM ARISING -+ * OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN -+ * IF IT HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGES. -+ */ -+ -+#ifndef FSLOC_H -+#define FSLOC_H -+ -+#define FSLOC_MAX_LIST 40 -+ -+struct mount_point { -+ char *h_host; -+ char *h_path; -+}; -+ -+struct servers { -+ int h_num; -+ struct mount_point *h_mp[FSLOC_MAX_LIST]; -+ int h_referral; /* 0=replica, 1=referral */ -+}; -+ -+struct servers *replicas_lookup(int method, char *data, char *key); -+void release_replicas(struct servers *server); -+ -+#endif /* FSLOC_H */ -diff -puN support/include/fstab.h~CITI_NFS4_ALL support/include/fstab.h ---- nfs-utils-1.0.11/support/include/fstab.h~CITI_NFS4_ALL 2007-02-26 18:52:09.366915000 -0500 -+++ nfs-utils-1.0.11-kwc/support/include/fstab.h 2007-02-26 18:52:11.399987000 -0500 -@@ -3,6 +3,10 @@ - - #include "nfs_mntent.h" - -+#ifndef _PATH_FSTAB -+#define _PATH_FSTAB "/etc/fstab" -+#endif -+ - int mtab_is_writable(void); - int mtab_does_not_exist(void); - -@@ -16,6 +20,10 @@ struct mntentchn *getmntoptfile (const c - struct mntentchn *getmntdirbackward (const char *dir, struct mntentchn *mc); <<Diff was trimmed, longer than 597 lines>> ---- CVS-web: http://cvs.pld-linux.org/SOURCES/nfs-utils-CITI_NFS4.patch?r1=1.3&r2=1.4&f=u _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit