Updated to nfs-utils 0.1.1.
[nfs-utils.git] / ChangeLog
1 Mon Oct 18 17:43:29 1999  H.J. Lu <hjl@lucon.org>
2
3         * nfs-utils.spec (Obsoletes): Fixed a typo, change knfsd-client
4         to knfsd-clients.
5         (Provides): Likewise.
6
7 Mon Oct 18 14:56:22 1999  H.J. Lu <hjl@lucon.org>
8
9         * Initial version 0.1 released.
10
11         * configure.in (VERSION): Set to "nfs-utils 0.1".
12         * configure: Regenerated.
13
14 Mon Oct 18 14:54:57 1999  H.J. Lu <hjl@lucon.org>
15
16         * utils/mountd/mountd.c (get_exportlist): Cleanup.
17
18         * utils/exportfs/exportfs.c (unexport_all): Unexport from
19         kernel only if the entry is exported to kernel.
20         (unexportfs): Likewise.
21
22 Wed Sep 08 16:49:32 1999  Neil Brown <neilb@cse.unsw.edu.au>
23
24 1/ utils/mountd/rmtab.c::mountlist_list
25
26      This routine stats the rmtab file to see if it has changed.  It
27      if has, it cleans up it's old copy of the data. But it still
28      always re-read the file, thus returning multiple copies of the
29      data on consecutive calls without intervening changes.
30      "Showmount -a" didn't show this as it appears to sort/unique the
31      data, but 'strace showmount -a' showed that the size of the
32      datagram that it received grew.
33
34      I moved the getrmtabent loop inside the mtime test.
35
36 2/ utils/exportfs/exportfs.c
37    
38      Many routines used the m_path field of m_export instead of
39      e_path.
40      According to the comment in nfslib.h, m_path should only
41      be used when processing a mount request (i.e. in mountd)
42      where the mountpoint may be a subdirectory of the export point.
43
44      I changed all occurances of m_path to e_path
45
46
47 3/ utils/exportfs/exportfs.c:main
48
49       extra arguments are not meaningful with -a or -r, but
50       exportfs accepted them and then ignored the -a/-r, expect that
51       -r would still unexport everything first.
52
53       I generate an error if there are extra args and f_all
54
55 4/ utils/exportfs/exportfs.c:main
56      extract dump out as a special case.
57
58 5/ utils/exportfs/exportfs.c
59      made f_reexport a local variable.
60
61
62 6/ utils/exportfs/exportfs.c:main,exportall
63
64     support/export/rmtab.c
65        only  mayexport on newly created entries, don't set xtabent at all
66
67 7/ support/include/nfslib.h
68
69       add #define _PATH_PROC_EXPORTS to be /proc/fs/nds/exports
70
71 8/ support/export/xtab.c
72
73       xtab_mount_read loads data from _PATH_PROC_EXPORTS if it exists,
74       else from xtab
75
76
77 9/ support/export/xtab.c
78
79       xtab_mount_read now sets m_exported, and NOT
80         xtabent and mayexport
81
82       removed the append arguement from xtab_write as it was
83         never used.
84
85       added is_export flag to xtab_write similar to xtab_read
86         if is_export, only write entries with m_xtabent or m_addxtab
87         if !is_export, only write entries with m_exported
88      
89 10/ support/export/export.c::export_allowed_internal
90
91       added test for exp->m_mayexport, as the export tree
92         may have entries that are no longer allowed to be exported,
93         and so shouldn't caused deduced exported by rmtab_read
94
95 11/ utils/exportfs/exportfs.c::main
96         error checking of flags.
97
98 12/ utils/exportfs/exportfs.c
99
100         total rewrite of export and unexport logic.
101         We now:
102         -  build an exportslist of valid exports, based on
103            current etab file  and arguments,
104         -  read rmtab to instantiate relevant wild card entries
105         -  read etab to find out what is currently exported
106         -  synchronise intention with reality
107         -  write out etab and xtab
108
109 13/  various
110         discard the m_addxtab flag
111         add m_changed flag so we know what to report in exportfs
112
113 14/ utils/mountd/auth.c:auth_authenticate
114
115         the value returned by gethostbyaddr was trusted.
116
117         It now follows this with a call to gethostbyname
118         and checks that the address is in the list.
119
120 15/ support/export/nfsctl.c::cltsetup,expsetup
121
122         force client names to lowercase as kernel is
123         sensitive to case
124
125 16/ quietened a few compiler warnings
126
127 17/ support/export/client:client_lookup
128
129      look for pre-existing client with same name before creating
130         a new one.
131
132 18/ support/include/exportfs.h
133
134      The ordering of the MCL_* enum was:
135         ANONYMOUS, FQDN, SUBNETWORK, WILDCARD, NETGROUP
136
137      I moved ANONYMOUS to the end.
138
139      The ordering is significant when an export entry is being searched for to 
140         match a given address.  There are two problems with ANONYMOUS being first.
141
142         1/ if a directory is exported rw to a couple of hosts and ro to everyone else,
143            then the ro case will always be found first and the privileged hosts won't get
144            their privilege
145         2/ When mountd gets a request to mount an ANONYMOUSly exported tree, it creates a FQDN
146            export entry for the specific host, and writes it to xtab.
147            When another request comes from the same host, the ANONYMOUS entry is found again, 
148            before the new FQDN entry, so it creates another FQDN entry and writes it to xtab
149            again.  If causes bloat in xtab.
150
151       Putting ANONYMOUS at the end reflects it's nature as a catch-all
152
153 19/ utils/exportfs/exportfs.man
154         many updates to the man page to reflect changes to the code
155
156 -----------------------
157
158
159
160 TODO:
161
162 - allow exportfs to modify rmtab file
163 - make sure kernel never gets two clients with same IP address
164     - possible kernel should reject
165     - needs to be some way to lookup client in kernel by IP address
166 - maybe get kernel to do case-insensitive comparisons on client names
167 - remove unused clients from kernel
168
169 - change etab to xtab and xtab to xtab.active
170
171 - timestamp and/or statd-stamp in rmtab for removing old entries.
172
173 Mon Oct 18 11:48:07 1999  H.J. Lu <hjl@lucon.org>
174
175         * linux-nfs: New directory.
176         * linux-nfs/ChangeLog: Moved from ..
177         * linux-nfs/INSTALL: Likewise.
178         * linux-nfs/KNOWNBUGS: Likewise.
179         * linux-nfs/NEW: Likewise.
180         * linux-nfs/README: Likewise.
181         * linux-nfs/THANKS: Likewise.
182         * linux-nfs/TODO: Likewise.
183
184         * Starting from knfsd 1.4.7.