moved exportfs -au after stopping nfsd to stop spurious
[nfs-utils.git] / ChangeLog
1 Tue Nov 23 10:21:34 EST 1999 Neil Brown <neilb@cse.unsw.edu.au>
2         * etc/redhat/nfsd.init (stop) : moved exportfs -ua after stopping
3                nfsd to stop spurious ESTALE on server shutdown.
4         
5 Tue Nov 23 10:13:39 1999  Neil Brown <neilb@cse.unsw.edu.au>
6
7         * support/nfs/exports.c (parseopts): make copy of opt string before
8                         'nul'ing out commas so that
9                         exportfs -o option1,option2 hosta:/fs hostb:/fs
10                         applies both options to both exports
11
12 Thu Oct 28 12:55:42 1999  H.J. Lu <hjl@lucon.org>
13
14         * README: Fix a few typos.
15
16         * tools/rpcgen/rpc_cout.c (print_header): Use int32_t instead
17         of long.
18         * tools/rpcgen/rpc_hout.c (pdefine): Likewise.
19         * tools/rpcgen/rpc_main.c (c_initialize): Likewise.
20         * tools/rpcgen/rpc_parse.c (get_type): Likewise.
21         (unsigned_dec): Likewise.
22         * tools/rpcgen/rpc_scan.c (symbols): Likewise.
23         * tools/rpcgen/rpc_util.c (tokstrings): Likewise.
24
25         * tools/rpcgen/rpc_cout.c (emit_single_in_line): Use INT32
26         instead of LONG.
27         * tools/rpcgen/rpc_parse.c (get_type): Likewise.
28         (unsigned_dec): Likewise.
29         * tools/rpcgen/rpc_scan.c (symbols): Likewise.
30         * tools/rpcgen/rpc_scan.h (tok_kind): Likewise.
31         * tools/rpcgen/rpc_util.c (tokstrings): Likewise.
32
33 Thu Oct 28 11:27:51 EST 1999 Neil Brown <neilb@cse.unsw.edu.au>
34
35         * support/include/nfs/export.h addedd NFSEXP_NOSUBTREECHECK
36         * support/nfs/exports.c: added {no_,}subtree_check and changed
37           crossmnt to nohide
38         * utils/exportfs/exports.man: added no_subtree_check and nohide
39           and removed irrelevant stuff from unfsd.
40         * support/export/rmtab.c: rmtab_read didn't quite do the right
41           thing if a pathname from rmtab was a subdirectory of an export-point
42
43 Tue Oct 26 17:22:40 1999  H.J. Lu <hjl@lucon.org>
44
45         * README: Updated ftp site.
46
47 Mon Oct 25 18:12:45 1999  H.J. Lu <hjl@lucon.org>
48
49         * nfs-utils.spec (Version): Set to 0.1.2.
50
51         * configure.in (VERSION): Set to "nfs-utils 0.1.2".
52         * configure: Regenerated.
53
54         * README: Updated.
55
56 Mon Oct 25 18:11:21 1999  H.J. Lu <hjl@lucon.org>
57
58         * utils/mountd/auth.c (auth_error): Add "no_forward_dns".
59         (auth_authenticate_internal): Check for NULL return on forward
60         DNS lookup.
61         (auth_authenticate): Handle "no_forward_dns".
62
63 Thu Oct 21 16:22:06 1999  H.J. Lu <hjl@lucon.org>
64
65         * Version 0.1.1 released.
66
67         * nfs-utils.spec (Version): Set to 0.1.1.
68
69         * configure.in (VERSION): Set to "nfs-utils 0.1.1".
70         * configure: Regenerated.
71
72         * README: Updated.
73
74 Mon Oct 18 17:43:29 1999  H.J. Lu <hjl@lucon.org>
75
76         * nfs-utils.spec (Obsoletes): Fixed a typo, change knfsd-client
77         to knfsd-clients.
78         (Provides): Likewise.
79
80 Mon Oct 18 14:56:22 1999  H.J. Lu <hjl@lucon.org>
81
82         * Initial version 0.1 released.
83
84         * configure.in (VERSION): Set to "nfs-utils 0.1".
85         * configure: Regenerated.
86
87 Mon Oct 18 14:54:57 1999  H.J. Lu <hjl@lucon.org>
88
89         * utils/mountd/mountd.c (get_exportlist): Cleanup.
90
91         * utils/exportfs/exportfs.c (unexport_all): Unexport from
92         kernel only if the entry is exported to kernel.
93         (unexportfs): Likewise.
94
95 Wed Sep 08 16:49:32 1999  Neil Brown <neilb@cse.unsw.edu.au>
96
97 1/ utils/mountd/rmtab.c::mountlist_list
98
99      This routine stats the rmtab file to see if it has changed.  It
100      if has, it cleans up it's old copy of the data. But it still
101      always re-read the file, thus returning multiple copies of the
102      data on consecutive calls without intervening changes.
103      "Showmount -a" didn't show this as it appears to sort/unique the
104      data, but 'strace showmount -a' showed that the size of the
105      datagram that it received grew.
106
107      I moved the getrmtabent loop inside the mtime test.
108
109 2/ utils/exportfs/exportfs.c
110    
111      Many routines used the m_path field of m_export instead of
112      e_path.
113      According to the comment in nfslib.h, m_path should only
114      be used when processing a mount request (i.e. in mountd)
115      where the mountpoint may be a subdirectory of the export point.
116
117      I changed all occurances of m_path to e_path
118
119
120 3/ utils/exportfs/exportfs.c:main
121
122       extra arguments are not meaningful with -a or -r, but
123       exportfs accepted them and then ignored the -a/-r, expect that
124       -r would still unexport everything first.
125
126       I generate an error if there are extra args and f_all
127
128 4/ utils/exportfs/exportfs.c:main
129      extract dump out as a special case.
130
131 5/ utils/exportfs/exportfs.c
132      made f_reexport a local variable.
133
134
135 6/ utils/exportfs/exportfs.c:main,exportall
136
137     support/export/rmtab.c
138        only  mayexport on newly created entries, don't set xtabent at all
139
140 7/ support/include/nfslib.h
141
142       add #define _PATH_PROC_EXPORTS to be /proc/fs/nds/exports
143
144 8/ support/export/xtab.c
145
146       xtab_mount_read loads data from _PATH_PROC_EXPORTS if it exists,
147       else from xtab
148
149
150 9/ support/export/xtab.c
151
152       xtab_mount_read now sets m_exported, and NOT
153         xtabent and mayexport
154
155       removed the append arguement from xtab_write as it was
156         never used.
157
158       added is_export flag to xtab_write similar to xtab_read
159         if is_export, only write entries with m_xtabent or m_addxtab
160         if !is_export, only write entries with m_exported
161      
162 10/ support/export/export.c::export_allowed_internal
163
164       added test for exp->m_mayexport, as the export tree
165         may have entries that are no longer allowed to be exported,
166         and so shouldn't caused deduced exported by rmtab_read
167
168 11/ utils/exportfs/exportfs.c::main
169         error checking of flags.
170
171 12/ utils/exportfs/exportfs.c
172
173         total rewrite of export and unexport logic.
174         We now:
175         -  build an exportslist of valid exports, based on
176            current etab file  and arguments,
177         -  read rmtab to instantiate relevant wild card entries
178         -  read etab to find out what is currently exported
179         -  synchronise intention with reality
180         -  write out etab and xtab
181
182 13/  various
183         discard the m_addxtab flag
184         add m_changed flag so we know what to report in exportfs
185
186 14/ utils/mountd/auth.c:auth_authenticate
187
188         the value returned by gethostbyaddr was trusted.
189
190         It now follows this with a call to gethostbyname
191         and checks that the address is in the list.
192
193 15/ support/export/nfsctl.c::cltsetup,expsetup
194
195         force client names to lowercase as kernel is
196         sensitive to case
197
198 16/ quietened a few compiler warnings
199
200 17/ support/export/client:client_lookup
201
202      look for pre-existing client with same name before creating
203         a new one.
204
205 18/ support/include/exportfs.h
206
207      The ordering of the MCL_* enum was:
208         ANONYMOUS, FQDN, SUBNETWORK, WILDCARD, NETGROUP
209
210      I moved ANONYMOUS to the end.
211
212      The ordering is significant when an export entry is being searched for to 
213         match a given address.  There are two problems with ANONYMOUS being first.
214
215         1/ if a directory is exported rw to a couple of hosts and ro to everyone else,
216            then the ro case will always be found first and the privileged hosts won't get
217            their privilege
218         2/ When mountd gets a request to mount an ANONYMOUSly exported tree, it creates a FQDN
219            export entry for the specific host, and writes it to xtab.
220            When another request comes from the same host, the ANONYMOUS entry is found again, 
221            before the new FQDN entry, so it creates another FQDN entry and writes it to xtab
222            again.  If causes bloat in xtab.
223
224       Putting ANONYMOUS at the end reflects it's nature as a catch-all
225
226 19/ utils/exportfs/exportfs.man
227         many updates to the man page to reflect changes to the code
228
229 -----------------------
230
231
232
233 TODO:
234
235 - allow exportfs to modify rmtab file
236 - make sure kernel never gets two clients with same IP address
237     - possible kernel should reject
238     - needs to be some way to lookup client in kernel by IP address
239 - maybe get kernel to do case-insensitive comparisons on client names
240 - remove unused clients from kernel
241
242 - change etab to xtab and xtab to xtab.active
243
244 - timestamp and/or statd-stamp in rmtab for removing old entries.
245
246 Mon Oct 18 11:48:07 1999  H.J. Lu <hjl@lucon.org>
247
248         * linux-nfs: New directory.
249         * linux-nfs/ChangeLog: Moved from ..
250         * linux-nfs/INSTALL: Likewise.
251         * linux-nfs/KNOWNBUGS: Likewise.
252         * linux-nfs/NEW: Likewise.
253         * linux-nfs/README: Likewise.
254         * linux-nfs/THANKS: Likewise.
255         * linux-nfs/TODO: Likewise.
256
257         * Starting from knfsd 1.4.7.