1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
|
2002-08-06 Marcus Brinkmann <marcus@gnu.org>
* inode.c (use_file_start_id): Use file_start for directories, so
the inode of the directory is used for the ".." entries in all
sub-directories. Contrary to ChangeLog entry 2001-11-27, this is
safe, because the ISO9660 specification mandates that the first
entry in every directory must be ".", so a non-file_start using
directory record can not be the first one.
2002-06-08 Roland McGrath <roland@frob.com>
* inode.c (diskfs_cached_lookup): Use ino_t for argument.
2002-05-08 Roland McGrath <roland@frob.com>
* rr.c (rrip_work): Cast pointer to uintptr_t instead of int.
* main.c (diskfs_append_args): unsigned -> size_t
* lookup.c (diskfs_get_directs): Likewise.
2001-04-30 Marcus Brinkmann <marcus@gnu.org>
* rr.c (rrip_work): In the MATCH_NAME case, free NMBUF if it is
non-zero before returning.
2001-04-29 Marcus Brinkmann <marcus@gnu.org>
* lookup.c (diskfs_get_directs): If an RE entry is encountered,
just decrement I again. Rearrange the code to check for a new
logical sector in any case. Also make sure to always release RR
before returning. This fixes some memory leaks and Debian bug
report #63373.
2001-02-25 Roland McGrath <roland@frob.com>
* lookup.c: Include <stdlib.h> for abort decl.
2001-02-20 Marcus Brinkmann <marcus@gnu.org>
* inode.c: Include <time.h>. Reported by Arkadi E. Shishlov
<arkadi@it.lv>.
2001-01-07 Marcus Brinkmann <marcus@gnu.org>
* lookup.c: Make diskfs_dirstat_size const.
2000-12-21 Marcus Brinkmann <marcus@gnu.org>
* rr.c (rrip_work): Use strdup instead malloc and strcpy.
Assert that strdup and malloc (for rr->trans) succeeds.
* pager.c: Include <errno.h>.
(create_disk_pager): If malloc fails, exit with error.
* main.c (read_sblock): Fail if malloc does.
* inode.c (diskfs_cached_lookup): When allocating memory for dn or
np fails, release spinlock, rrip (and allocated memory) and return
ENOMEM.
(load_inode): Likewise (but no rrip). Also, if *npp is non-zero,
release diskfs_node_refcnt_lock before returning.
Reported by Igor Khavkine <i_khavki@alcor.concordia.ca>.
2000-11-27 Marcus Brinkmann <marcus@gnu.org>
The last two changes introduced two new inode overlaps
(file_start was not shifted by store block size, and directories'
shifted file_start offset can be the same as the struct dirrect
offset of their first directory entry).
* inode.c (use_file_start_as_id): New function to determine
if to use file_start or struct dirrect * as node id.
The directory recognition code comes from read_disknode.
(cache_inode): Use use_file_start_as_id instead doing the work
ourselve. Shift file_start by store->log2_block_size.
(load_inode): Likewise.
* lookup.c (diskfs_get_directs): Likewise.
Declare use_file_start_id.
2000-11-26 Marcus Brinkmann <marcus@gnu.org>
Fix hard link handling for non-zero length files.
* inode.c: Fix comment about inode numbers.
(node_cache): New member ID to store unique identifier.
(inode_cache_find): Change RECORD arg into ID and compare it
with id member of node_cache.
(cache_inode): Swap order of args and add new arg RR (change dr
into record along the way). Use RR to find out cache ID.
Use id member of node_cache to look for ID. Cache ID.
(load_inode): Call inode_cache_find with correct ID, depending
on RR and file size. Frob arguments to cache_inode to comply with
the new definition.
(read_disknode): Set st_ino according depending on RR and file size.
* lookup.c: Doc spelling fix.
(diskfs_get_directs): Include code again that was removed by last change,
but use it only if not symlink or zero length file.
2000-11-26 Marcus Brinkmann <marcus@gnu.org>
Closes Debian Bug #68417:
* rr.c (rrip_work): In helper function add_comp set targused to
zero after malloc, and loop over realloc in case doubling is not
enough. After finalizing the link, set VALID_SL valid flag.
* inode.c (read_disknode): For links use rl->target instead
rl->name.
Closes Debian Bug #69281: Don't use file_start as inode numbers,
but the offset of the directory record in disk_image. This is what
Linux 2.4 does.
* isofs.h (struct disknode): New member struct dirrect *dr.
* inode.c: Fix comment about inode numbers.
(struct node_cache): Fix comment about file_start (it's not unique).
In fact, file_start is invalid for symlinks, and only stored here
for convenience. Maybe caching file_start can be avoided by
rearranging the code.
(inode_cache_find): Change first argument from off_t file_start
to struct dirrect *dr and fix the doc.
Compare cached value of DR with this argument, instead FILE_START.
(diskfs_cached_lookup): Set DR member of DN.
(load_inode): Call inode_cache_find with RECORD instead FILE_START.
Set DR member of DN.
(read_disknode): Set inode number to DR - DISK_IMAGE instead
FILE_START.
* lookup.c (diskfs_get_directs): Remove variable file_start.
Don't calculate file_start. Set D_FILENO to EP - DISK_IMAGE
instead FILE_START.
2000-07-26 Mark Kettenis <kettenis@gnu.org>
* Makefile (HURDLIBS): Reorder libs such that the threads lib
comes before the ports lib. This makes sure the functions in
libthreads properly override the stubs in libports with the new
dynamic linker semantics in glibc 2.2.
1999-11-20 Roland McGrath <roland@baalperazim.frob.com>
* lookup.c (dirscanblock): Add const to type of NAME parameter.
(isonamematch): Likewise.
* rr.c (rrip_match_lookup): Likewise.
(rrip_work): Likewise. Change char -> size_t for MATCH_NAMELEN.
* rr.h: Update decls.
1999-10-13 Roland McGrath <roland@baalperazim.frob.com>
* main.c (diskfs_name_max): New variable.
1999-09-13 Roland McGrath <roland@baalperazim.frob.com>
* pager.c: Reverted changes related to io_map_segment.
1999-09-07 Thomas Bushnell, BSG <tb@mit.edu>
* pager.c (diskfs_get_filemap): Accept additional parameter.
1999-07-10 Roland McGrath <roland@baalperazim.frob.com>
* isofs.h: Add #include <sys/mman.h> for munmap decl.
1999-07-09 Thomas Bushnell, BSG <tb@mit.edu>
* lookup.c (diskfs_get_directs): Use mmap instead of vm_allocate.
* pager.c (pager_read_page): Likewise.
1999-07-03 Thomas Bushnell, BSG <tb@mit.edu>
* lookup.c (diskfs_get_directs): Use munmap instead of
vm_deallocate.
1999-06-13 Roland McGrath <roland@baalperazim.frob.com>
* lookup.c (diskfs_get_directs): Add cast to silence warning.
1999-01-23 Roland McGrath <roland@baalperazim.frob.com>
* main.c (main): Use diskfs_init_main.
1999-01-22 Roland McGrath <roland@baalperazim.frob.com>
* rr.c (rrip_work): Remove makedev macro definition.
1998-12-27 Roland McGrath <roland@baalperazim.frob.com>
* inode.c (diskfs_set_statfs): Remove __ from struct statfs members.
Use bzero first instead of setting individual fields to zero.
1998-12-21 Mark Kettenis <kettenis@phys.uva.nl>
* inode.c (diskfs_set_statfs): Fill in statfs members with
sensible values.
Wed Oct 28 22:52:04 1998 Joel N. Weber II <devnull@methedrine.ai.mit.edu>
* inode.c (read_disknode): Use FSTYPE_ISO9660.
1998-09-04 Roland McGrath <roland@baalperazim.frob.com>
* lookup.c (diskfs_lookup_hard): Fix defn with `const'.
(diskfs_direnter_hard): Likewise.
(diskfs_get_directs): Use `const' for local var NAME.
* inode.c (diskfs_set_translator): Fix defn with `const'.
1997-09-22 Miles Bader <miles@gnu.ai.mit.edu>
* main.c (diskfs_append_args): New function.
1997-09-19 Miles Bader <miles@gnu.ai.mit.edu>
* rr.h (GNUEXT_ID): Make value a string.
* rr.c (rrip_work): ER->lenid should be ER->len_id.
Remove unused variable.
1997-09-18 Miles Bader <miles@gnu.ai.mit.edu>
* inode.c (read_disknode): RR should be RL.
Assign 0's type-correctly to NP->dn->translator and ->translen.
(diskfs_node_norefs): The translator field is in NP->dn, not NP.
Tue Sep 16 15:34:21 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* rr.c (gnuext_live): New variable.
(rrip_work): Comprehend AU, TR, MD, and FL, all as GNU
extensions. Recognize GNU extension id field when processing ER
fields.
(release_rrip): Free RR->trans if it's live.
* inode.c (read_disknode): Interpret and install the values set by
AU, TR, MD, and FL extensions.
(diskfs_node_norefs): Free NP->translator if it's set.
* isofs.h (struct disknode): New members `translen' and
`translator'.
* rr.h (struct gn_au, struct gn_tr, struct gn_md, struct gn_fl):
New strucures.
(GNUEXT_SRC, GNUEXT_DES, GNUEXT_ID, GNUEXT_VERS): New macros.
(struct rrip_lookup): New members author, translen, trans,
allmode, flags.
(VALID_AU, VALID_TR, VALID_MD, VALID_FL): New macros.
* Makefile (DIST_FILES): Add, referring to EXTENSIONS.
* EXTENSIONS: New file.
Wed Aug 20 14:29:11 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* pager.c (diskfs_get_filemap): If pager_create fails, return
error to caller.
Tue Aug 19 14:20:09 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* rr.c (rrip_work) [SL]: Component length field does not include
the two header bytes, so add an extra two in advancing the pointer
past the component.
Thu Aug 7 16:01:29 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* inode.c (read_disknode): Units of st_blocks are 512 byte chunks,
not logical_block_size chunks.
1997-07-22 Miles Bader <miles@gnu.ai.mit.edu>
* Makefile (dir): Is isofs, not ufs.
Mon Jul 21 16:00:04 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* Makefile (LCLHDRS): Remove susp.h.
|