summaryrefslogtreecommitdiff
path: root/storeio/ChangeLog
blob: 566b9169a0b8bc1f13794aeaf7f889ea1b7a448d (plain)
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
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
2002-05-08  Roland McGrath  <roland@frob.com>

	* pager.c (pager_read_page, pager_write_page): int -> size_t

2002-03-10  Roland McGrath  <roland@frob.com>

	* dev.c (dev_read): Return success with *LEN = 0 when reading
	exactly at the end of the store.

2001-12-28  Roland McGrath  <roland@frob.com>

	* dev.h (struct dev): New member `no_fileio' (flag).
	* storeio.c (options): Add --no-file-io/-F.
	(parse_opt): Parse it to set PARAMS->dev->no_fileio.
	(trivfs_append_args): Add --no-file-io if it's set.
	* dev.c (dev_open): Pass STORE_NOFILEIO flag if DEV->no_fileio is set.

2001-08-12  Neal H Walfield  <neal@cs.uml.edu>

	* pager.c: Include <errno.h>.
	(pager_read_page): Use memset, not bzero.
	* storeio.c (check_open_hook): Typo fix in comment.
	(trivfs_modify_stat): STORE->size is a store_offset_t.
	It not a vm_size_t.

2001-05-06  Marcus Brinkmann  <marcus@gnu.org>

	* dev.c (dev_open): Do not create/open the store with
	STORE_INACTIVE, as this doesn't work correctly.  Inactivate the
	store afterwards instead.

2001-02-18  Marcus Brinkmann  <marcus@gnu.org>

	* dev.h (struct dev): New member nperopens.
	* storeio.c (open_hook): Hold device lock and check if this is the
	first open.  If yes, activate the store.
	(close_hook): Hold global_lock and check if this was the last
	open.  If yes, inactivate the store.
	* dev.c (dev_open): Open the store with STORE_INACTIVE
	(in store_parsed_open as well as in store_create).

2001-01-17  Roland McGrath  <roland@frob.com>

	* dev.c (dev_buf_discard): Don't check AMOUNT if store_write failed.

2001-01-16  Marcus Brinkmann  <marcus@gnu.org>

	* dev.c (dev_open): Add missing argument `classes' to invocation
	of store_create.

	* dev.h: Include <hurd/trivfs.h> for struct trivfs_control.

2001-01-16  Roland McGrath  <roland@frob.com>

	* storeio.c (parse_opt): Set PARAMS->store_params.store_optional.
	(storeio_fsys): New global variable.
	(main): Use it.
	* dev.h: Declare it.
	* dev.c (dev_open): If DEV->store_name is null, open the underlying
	node using store_create.

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.

2000-03-19  Roland McGrath  <roland@baalperazim.frob.com>

	* io.c: Comments.

	* dev.h (struct dev): New members store_name, readonly, rdev.
	(dev_is_readonly): New inline function.
	* dev.c (dev_open): Take just one arg, a struct dev whose store==0.
	(dev_close): Shut down the store, but leave DEV intact with store==0.
	* storeio.c (struct storeio_argp_params): New type.
	(device, device_lock, store_name): Variables removed.
	(readonly, inhibit_cache, enforce_store, rdev): Likewise.
	These are all now members in struct storeio_argp_params or struct dev;
	rdev now uses dev_t instead of int.
	(parse_opt): Find a struct storeio_argp_params in STATE->input
	and fill it in accordingly.  Use makedev macro to construct rdev.
	(trivfs_append_args): Find options in struct dev off control hook.
	Use major, minor macros.
	(main): Make DEVICE a local here, and point FSYS->hook at it.
	Don't modify trivfs_allow_open.
	(getroot_hook): New static function.
	(trivfs_getroot_hook): New variable, initialized to that.
	(check_open_hook): Find struct dev in CNTL->hook and
	use new dev_open interface.  Use dev_is_readonly.
	(open_hook): Find struct dev in PEROPEN->cntl->hook and
	check DEV->store.
	(trivfs_modify_stat): Find struct dev in CRED->po->cntl->hook.
	Use dev_is_readonly.
	(trivfs_goaway): Find struct dev in FSYS->hook and use its lock.
	(trivfs_S_fsys_syncfs): Find struct dev in CNTL->hook.

1999-11-24  Roland McGrath  <roland@baalperazim.frob.com>

	* storeio.c (trivfs_modify_stat): Clear writable bits if open store is
	readonly, not just if we got the --readonly switch.

1999-11-20  Roland McGrath  <roland@baalperazim.frob.com>

	* dev.c (dev_read, dev_write): In DEV->inhibit_cache case,
	handle zero (i.e. unknown) block_size by treating it as 1.
	Use shift and bitwise-and rather than multiply and modulus
	for block size arithmetic, since it's a known power of two.

1999-11-14  Roland McGrath  <roland@baalperazim.frob.com>

	* io.c (trivfs_S_file_get_storage_info): Fail with EOPNOTSUPP when
	there is no store open.

	* storeio.c (check_open_hook): Don't check for D_NO_SUCH_DEVICE here.
	Translation to ENXIO now done in libstore.

	* dev.h (struct dev): New member `enforced'.
	* storeio.c (enforce_store): New variable.
	(options, parse_opt, trivfs_append_args): Grok new option
	--enforced/-e to set enforce_store.
	(check_open_hook): Set DEVICE->enforced from enforce_store.
	* io.c (trivfs_S_file_get_storage_info): If DEV->enforced is set
	and the store flags lack STORE_ENFORCED, then return STORAGE_OTHER.

1999-09-13  Roland McGrath  <roland@baalperazim.frob.com>

	* io.c: Reverted changes related to io_map_segment.

1999-09-07  Thomas Bushnell, BSG  <tb@mit.edu>

	* io.c (trivfs_S_io_map): Renamed to ...
	(trivfs_S_io_map_segment): ... here, and accept parameter `index'.

1999-07-11  Roland McGrath  <roland@baalperazim.frob.com>

	* dev.c (dev_read: ensure_buf): Fix sloppy bugs in last change.

1999-07-09  Thomas Bushnell, BSG  <tb@mit.edu>

	* dev.c (dev_open): Use mmap instead of vm_allocate.
	(dev_read): Likewise.

1999-07-10  Roland McGrath  <roland@baalperazim.frob.com>

	* dev.c: Add #include <sys/mman.h> for munmap decl.
	* pager.c: Likewise.

1999-07-03  Thomas Bushnell, BSG  <tb@mit.edu>

	* dev.c (dev_buf_fill): Use munmap instead of vm_deallocate.
	(dev_close): Likewise.
	(dev_read): Likewise.
	* pager.c (pager_write_page): Likewise.

1999-05-23  Roland McGrath  <roland@baalperazim.frob.com>

	* storeio.c (check_open_hook): Translate D_NO_SUCH_DEVICE to ENXIO.

1999-05-09  Mark Kettenis  <kettenis@gnu.org>

	* pager.c (dev_stop_paging): Do not try to count ports in
	PAGER_PORT_BUCKET if it has not been created.

1999-04-30  Mark Kettenis  <kettenis@gnu.org>

	* storeio.c (trivfs_modify_stat): Do not assume that we have the
	device open in the caculation of st_mode.  If the device is not
	open, only return S_IFCHR if inhibit_cache is set.

1999-01-31  Roland McGrath  <roland@baalperazim.frob.com>

	* storeio.c (trivfs_modify_stat): Return S_IFCHR if block size is 1.

	* storeio.c (trivfs_modify_stat): Return S_IFCHR iff inhibit_cache
	set, otherwsie S_IFBLK.  For a block-addressed device, S_IFCHR means
	"must do whole-block i/o".

1999-01-28  Roland McGrath  <roland@baalperazim.frob.com>

	* io.c (trivfs_S_file_syncfs): Fix inverted test.
	Reported by OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>.

1999-01-27  Roland McGrath  <roland@baalperazim.frob.com>

	* storeio.c (options): New option -c/--no-cache.
	(inhibit_cache): New variable.
	(parse_opt): Make -c set it.
	(trivfs_append_args): Report --no-cache if set.
	(check_open_hook): Pass inhibit_cache flag to dev_open.
	* dev.h (struct dev): New member `inhibit_cache'.
	(dev_open): Update decl.
	* dev.c (dev_open): Take new arg inhibit_cache, store in new dev.
	If set, don't initialize buf_offs, io_lock, pager, pager_lock.
	(dev_read, dev_write): If DEV->inhibit_cache is set, allow only
	whole-block i/o: EINVAL for non-whole-block attempts.
	* pager.c (dev_get_memory_object): If DEV->inhibit_cache is set, don't
	make our own pager; if store_map returns EOPNOTSUPP, so do we.

1998-10-20  Roland McGrath  <roland@baalperazim.frob.com>

	* dev.c (dev_buf_fill): Add braces to silence gcc warning.

1998-07-20  Roland McGrath  <roland@baalperazim.frob.com>

	* storeio.c (main): Fix return type to int, and use return.

Wed Aug 20 14:07:05 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* pager.c (dev_get_memory_object): Deal with errors from
	pager_create properly.

	* pager.c (service_paging_requests): New args for
	ports_manage_port_operations_multithread.
	* storeio.c (main): Likewise.

1997-07-23  Miles Bader  <miles@gnu.ai.mit.edu>

	* io.c (trivfs_S_io_readable, trivfs_S_io_read, trivfs_S_io_map):
	Return EBADF instead of EINVAL.
	(trivfs_S_io_select): Don't bother returning EBADF.

1997-07-22  Miles Bader  <miles@gnu.ai.mit.edu>

	* io.c (trivfs_S_io_read): Return EINVAL instead of EBADF.
	(trivfs_S_io_map): Return EINVAL if CRED cannot be read or written.

1997-07-21  Miles Bader  <miles@gnu.ai.mit.edu>

	* Makefile (HURDLIBS): Add iohelp.

1997-07-17  Miles Bader  <miles@gnu.ai.mit.edu>

	* io.c (trivfs_S_io_map): Pass PROT argument to dev_get_memory_object.
	* pager.c (dev_get_memory_object): Add PROT arg.  Use store_map.
	* dev.h (dev_get_memory_object): Add PROT arg.

1997-07-16  Miles Bader  <miles@gnu.ai.mit.edu>

	* pager.c (pager_read_page): Initialize READ to 0.

	* pager.c (dev_get_memory_object): Implement correctly.
	(dev_stop_paging): Work entirely by flushing user pagers; don't kill pager.
	(pager_clear_user_data): Zero our pointer to the pager.

	* io.c (trivfs_S_io_map): Make sure there are enough references to
	MEMOBJ for both read & write ports.

Wed Feb 19 21:42:45 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (fsys_port_class, root_port_class, port_bucket,
	trivfs_protid_portclasses, trivfs_protid_nportclasses,
	trivfs_cntl_portclasses, trivfs_cntl_nportclasses): Variables removed.
	(main): Don't set or use port class/bucket variables, let
	trivfs_startup do it.
	Add FSYS variable.
	(doc): Make an initialized array.
	(parse_opt): New function (was nested in main).
	(argp, argp_kids): New variables (were nested in main).
	(trivfs_goaway): Get ROOT_PORT_CLASS from FSYS.

Fri Nov 15 17:54:10 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* storeio.c (trivfs_check_open_hook): New arg syntax.
	(check_open_hook): Likewise.

Thu Oct 24 16:24:53 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (main): Use elements of type `struct argp_child' for KIDS.

Mon Oct  7 16:38:06 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* io.c (trivfs_S_file_get_storage_info): If necessary to enforce
 	security, make a copy of STORE and inactivate it before returning.

Thu Sep 26 14:26:17 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (trivfs_S_file_check_access): Function removed (trivfs
	default is now sufficient).

Tue Sep 24 15:52:04 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (trivfs_S_file_check_access): New function.
	(check_open_hook): Return EROFS if O_WRITE on a readonly device.

Mon Sep 23 17:21:23 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (trivfs_append_args): Make ARGZ_LEN of type `size_t *'.
	Narrow scope of BUF.
	<argz.h>: New include.

Thu Sep 19 18:12:48 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (trivfs_append_args): New function.

Wed Sep 18 15:16:27 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* io.c (trivfs_S_io_read, trivfs_S_io_write): Use void * buffers.
	* open.h (open_read, open_write): Likewise.
	* open.c (open_read, open_write): Likewise.
	* dev.h (struct dev, dev_read, dev_write): Likewise.
	* dev.c (dev_buf_fill, dev_read, dev_write): Likewise.
	* pager.c (pager_read_page): Cast BUF into void ** for dev_read.

	* storeio.c (main): Use STORE_PARAMS variable to get result from
	parsing STORE_ARGP.

	* dev.c (dev_open): Remove CLASSES argument to store_parsed_open.

Thu Sep 19 17:18:11 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* Makefile (HURDLIBS): New variable.
	(storeio): Deleted special dependencies.

Fri Sep 13 11:05:06 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (argp_program_version): New variable.
	<version.h>: New include.

Tue Sep 10 17:13:55 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* dev.c (dev_rw): Return EINVAL instead of EIO for too-large offsets.

	* dev.c (dev_open, dev_close): Remove ifdef'd-out code for allocating
	DEV's buffer with valloc; other things depend on it being vm_allocated.

	* io.c (trivfs_S_file_get_storage_info): Use store_return.