summaryrefslogtreecommitdiff
path: root/libtrivfs/ChangeLog
blob: feae3cbfb6d3db0fa8324eee0003430f66a91377 (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
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
2001-04-01  Neal H Walfield  <neal@cs.uml.edu>

	* dir-lookup.c (trivfs_S_dir_lookup): Use iohelp_dup_iouser as
	per the new semantics.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Use
	iohelp_create_complex_iouser.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate):
	Use iohelp_reauth as per the new semantics.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth):
	Use iohelp_create_complex_iouser.  Check return values.
	* protid-dup.c (trivfs_protid_dup): Use iohelp_dup_iouser
	as per the new semantics.

2001-06-10  Neal H Walfield  <neal@cs.uml.edu>

        * file-inv.c: Remove this file, function no longer exists.
        * Makefile (FSSRCS): Remove reference to file-inv.c.

2000-03-17  Thomas Bushnell, BSG  <tb@mit.edu>

	* startup.c (trivfs_startup): Don't use MAKE_SEND in Hurd RPC.

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

	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Use
	ports_get_send_right.

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

	* io-write.c: Include <fcntl.h>.

	* fsys-getroot.c (trivfs_S_fsys_getroot): Fix typo.

	* io-write.c (trivfs_S_io_write): Return EBADF if trivfs_allow_open
	doesn't include O_WRITE.

	* io-modes-get.c (trivfs_S_io_get_openmodes): Remove assert.
	The default implementation ought to be fine for this.

	* io-owner-get.c (trivfs_S_io_get_owner): Remove asserts.
	It is entirely reasonable to have EOPNOTSUPP be the default
	implementation for these calls that files are not obligated to provide.
	* io-owner-mod.c (trivfs_S_io_mod_owner): Likewise.
	* io-map.c (trivfs_S_io_map): Likewise.
	* io-async.c (trivfs_S_io_async): Likewise.
	* io-async-icky.c (trivfs_S_io_get_icky_async_id): Likewise.

	* fsys-getroot.c (trivfs_S_fsys_getroot): Return EROFS or EACCES for a
	disallowed open attempt, instead of EOPNOTSUPP.  EOPNOTSUPP results in
	the confusing result of ENOTDIR being delivered to the user.

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

	* dir-readdir.c (trivfs_S_dir_readdir): Take DATA_DEALLOC parameter.

	* dir-lookup.c (trivfs_S_dir_lookup): Duplicate CRED->user to pass it
	to trivfs_open.  Add ref to CRED->realnode when used by trivfs_open.

	* trivfs.h (trivfs_open_hook): New variable.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Use it.

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

	* Makefile, io-map.c, io-map-segment.c: Reverted changes related to
	io_map_segment.

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

	* io-map-segment.c (trivfs_S_io_map): New file.
	* io-map.c (trivfs_S_io_map): Just call trivfs_S_io_map_segment.
	* Makefile (IOSRCS): Add io-map-segment.c.

Mon Mar 15 14:36:33 1999  Thomas Bushnell, BSG  <tb@mit.edu>

	* migsupport.c (trivfs_begin_using_protid): In first branch,
	protect work against PI being null, and call ports_port_deref with
	the proper value.
	(trivfs_begin_using_control): Likewise.
	Reported by Mark Kettenis (kettenis@wins.uva.nl).

1999-02-06  Mark Kettenis  <kettenis@gnu.org>

	* trivfs.h (trivfs_check_access_hook): New variable.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Use
	trivfs_check_acces_hook.
	* dir-lookup.c (trivfs_S_dir_lookup): Likewise.
	* file-access.c (trivfs_S_file_check_access): Likewise.

1999-02-16  Roland McGrath  <roland@baalperazim.frob.com>

	* io-revoke.c: Add reply, reply_type args.

Tue Feb 16 05:47:57 1999  Thomas Bushnell, BSG  <tb@mit.edu>

	* io-revoke.c: New file.
	* Makefile (IOSRCS): Add io-revoke.c.

1999-02-12  Gordon Matzigkeit  <gord@trick.fig.org>

	* open.c (trivfs_open): Add missing `=' from last change.

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

	* open.c (trivfs_open): Correctly initialize NEW->isroot.

Sun Jan 31 18:29:22 1999  Thomas Bushnell, BSG  <tb@mit.edu>

	* times.c (trivfs_set_atime, trivefs_set_mtime): Take advantage of
	new semantics for file_utimes.

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

	* file-get-fs-options.c (trivfs_S_file_get_fs_options):
	fshelp_return_malloced_buffer renamed to iohelp_*.
	* fsys-get-options.c (trivfs_S_fsys_get_options): Likewise.

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

	* dir-lookup.c (trivfs_S_dir_lookup): Fix brainos in last change.

Tue Jul 14 16:47:28 1998  Thomas Bushnell, n/BSG  <tb@mit.edu>

	* dir-lookup.c (trivfs_S_dir_lookup): In null-pathname case, this
	should work even for non-directories, so actually do it, making
	this a simpler case of trivfs_S_fsys_getroot.

Thu Feb 20 13:13:13 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* protid-classes.c (trivfs_protid_portclasses,
 	trivfs_protid_nportclasses): Make common.
	* cntl-classes.c (trivfs_cntl_portclasses,
	trivfs_cntl_nportclasses): Likewise.

Tue Feb 18 19:47:16 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* cntl-create.c (trivfs_create_control): Put the actual port
	creation call back in!

Fri Feb 14 02:10:50 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* dyn-classes.c: New file.
	* cntl-create.c (trivfs_create_control): Possibly allocate and add
	the port classes/buckets to the list of ones recognized by trivfs.
	* migsupport.c
	(trivfs_begin_using_protid): Support dynamic protid port classes.
	(trivfs_begin_using_control): Support dynamic control port classes.
	* cntl-clean.c (trivfs_clean_cntl): Clean up dynamic port
	classes/buckets.
	* trivfs.h (trivfs_add_control_port_class,
	trivfs_add_protid_port_class, trivfs_add_port_bucket,
	trivfs_remove_control_port_class, trivfs_remove_protid_port_class,
	trivfs_remove_port_bucket): New declarations.
	Doc fixes.
	* priv.h (trivfs_dynamic_protid_port_classes,
	trivfs_num_dynamic_protid_port_classes,
	trivfs_dynamic_control_port_classes,
	trivfs_num_dynamic_control_port_classes,
	trivfs_dynamic_port_buckets, trivfs_num_dynamic_port_buckets):
	New declarations.
	* Makefile (OTHERSRCS): Add dyn-classes.c, protid-classes.c, &
	cntl-classes.c.

Thu Feb 13 18:30:45 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* trivfs.h (trivfs_getroot_hook): New declaration.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Use trivfs_getroot_hook.
	* Makefile (FSSRCS): Replace dir-reparent.c by file-reparent.c.

Mon Jan 20 16:37:04 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* dir-reparent.c (trivfs_S_dir_reparent): New file.
	* Makefile (FSSRCS): Add dir-reparent.c.

Tue Nov 19 22:36:49 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* io-stat.c (trivfs_S_io_stat): Clear S_ITRANS and set S_IROOT in
	ST->st_mode (before calling trivfs_modify_stat).

Mon Nov 18 18:13:42 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* io-stat.c (trivfs_S_io_stat): Make the mode specify IFCHR by
	default.

Sat Nov 16 17:20:15 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* Makefile (HURDLIBS): Add `iohelp'.

Thu Nov 14 13:13:10 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* io-restrict-auth.c (trivfs_S_io_restrict_auth): idvec_set ->
 	idvec_set_ids.  Fix unrelated typos.

	* protid-dup.c (trivfs_protid_dup): Use iouser_dup_iouser instead
	of copying old arrays by hand.
	* protid-clean.c (trivfs_clean_protid): Free CRED->user instead of
	CRED->uids and CRED->gids.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Args for
	io_restrict_auth now come from the new structure definitions.
	* open.c (trivfs_open): Pass correct first arg to idvec_contains.

	* open.c (trivfs_open): Delete variable I.

	* trivfs.h: Include <hurd/iohelp.h>

Thu Nov  7 17:05:02 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* io-restrict-auth.c (trivfs_S_io_restrict_auth): If CRED has
	root, use the requested id sets verbatim.

Thu Nov  7 01:01:05 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Rewrite to use
 	idvecs.

Wed Nov  6 23:40:50 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* trivfs.h (struct trivfs_protid): Delete members `uids', `gids',
 	`nuids', and `ngids'.  Replace with `user'.
	(trivfs_check_open_hook): Delete args `uids', `nuids', `gids',
	`ngids'.  Replace with new arg `user'.  All callers changed.
	(trivfs_open): Likewise.
	* open.c (trivfs_open): Change to match new declaration.

	* trivfs.h (struct trivfs_protid): Delete members `uids', `gids',
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Use new
 	iohelp_reauth call.

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

	* file-access.c (trivfs_S_file_check_access): Return
	CRED->realnode's access bits rather than always 0.

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

	* file-get-fs-options.c <argz.h>: New include.

	* trivfs.h (trivfs_append_args): Make ARGZ_LEN `size_t *'.
	* append-args.c (trivfs_append_args): Likewise.

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

	* Makefile (HURDLIBS): Add shouldbeinlibc.

Wed Sep 18 12:47:54 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* fsys-get-options.c (trivfs_S_fsys_get_options): Initialize ARGZ
	with the program name, and call trivfs_append_args instead of
	trivfs_get_options.
	* file-get-fs-options.c (trivfs_S_file_get_fs_options): Likewise.
	* trivfs.h (trivfs_append_args): New declaration.
	(trivfs_get_options): Declaration removed.
	* Makefile (OTHERSRCS): Replace get-options.c with apend-args.c.
	* append-args.c (trivfs_append_args): New file.

Thu Sep 12 16:23:15 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* Makefile (HURDLIBS): New variable.
	(libtrivfs.so): Delete special depedency.

Fri Aug 16 19:24:45 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* migsupport.c (trivfs_end_using_protid): Only call
	ports_port_deref if CRED is set.
	(trivfs_end_using_control): Likewise.

Thu Aug 15 16:14:33 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* io-pathconf.c (trivfs_S_io_pathconf): Implement by calling
	underlying node.

Thu Jul 18 23:14:44 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Use noinstall
	version of ports_create_port.  Put it in the port set after the
	node has been fully initialized.

Sat Jul 13 20:15:56 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Repeat
 	ports_create_port, auth_server_authenticate, io_restrict_auth, and
 	*trivfs_protid_create_hook for as long as we get EINTR.  Deal with
 	other errors without crashing.

Sun Jul  7 16:06:37 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Don't use
 	MACH_MSG_TYPE_MOVE_SEND; it's unreliable.

Thu Jun 20 22:54:01 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* file-get-fs-options.c (trivfs_S_file_get_fs_options):
	Call trivfs_get_options, and package up the results.
	* fsys-get-options.c (trivfs_S_fsys_get_options): Likewise.
	* fsys-set-options.c (trivfs_S_fsys_set_options): Call
	trivfs_set_options.
	* set-options.c, get-options.c: New files.
	* trivfs.h: Add trivfs_set_options & trivfs_get_options.
	* Makefile (OTHERSRCS): Add set-options.c & get-options.c.

Wed Jun 19 21:29:45 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* trivfs.h (trivfs_runtime_argp): New declaration.
	* fsys-set-options.c (trivfs_S_fsys_set_options): Use
	trivfs_runtime_argp to parse options.
	* runtime-argp.c: New file.
	* Makefile (OTHERSRCS): Add runtime-argp.c.

Sat Jun 15 19:50:37 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* fsys-stubs.c (trivfs_S_fsys_set_options, trivfs_S_fsys_get_options,
 	trivfs_S_file_get_fs_options): Functions removed.
	* fsys-set-options.c, fsys-get-options.c, file-get-fs-options.c:
	New files.
	* Makefile (FSSRCS): Add file-get-fs-options.c
	(FSYSSRCS): Add fsys-set-options.c & fsys-get-options.c.

Thu May  9 20:03:28 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* io-identity.c: New file.
	* Makefile (IOSRCS): Add io-identity.c.
	* cntl-clean.c (trivfs_clean_cntl): Destroy filesys_id and file_id
 	members.
	* cntl-create.c (trivfs_create_control): Initialize filesys_id and
	file_id members of new control.
	* trivfs.h (trivfs_control): New members `filesys_id' and
 	`file_id'.

Thu May  9 16:58:31 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* file-get-storage-info.c (trivfs_S_file_get_storage_info): Change
	to new interface.

Thu May  9 15:32:38 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Don't send
 	right for CRED to auth_server_authenticate.

	* fsys-stubs.c (trivfs_S_fsys_get_options): Expect (and ignore)
 	reply port args.

	* file-syncfs.c (trivfs_S_file_syncfs): Provide new third arg to
 	file_sync.
	* fsys-syncfs.c (trivfs_S_fsys_syncfs): Likewise.
	* file-sync.c (trivfs_S_file_sync): Accept and pass through new
 	omitmeta parm.

	* file-statfs.c (trivfs_S_file_statfs): Use new struct statfs
 	format.

	* dir-rename.c (trivfs_S_dir_rename): Accept new excl parm.
	* dir-link.c (trivfs_S_dir_link): Likewise.

	* Makefile (OTHERSRCS): Delete handle-port.c.
	* trivfs.h (trivfs_handle_port): Delete declaration.
	* handle-port.c: Delete file.

Thu May  9 12:16:38 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* io-select.c (trivfs_S_io_select): Remove TAG arg.

Tue May  7 16:14:10 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* file-get-storage-info.c (trivfs_S_file_get_storage_info): Swap
	PORTS_TYPE and NUM_PORTS args.

Mon May  6 20:16:20 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* file-get-storage-info.c (trivfs_S_file_get_storage_info):
	Rewrite for new interface.

Mon Apr 29 15:19:26 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* handle-port.c: Comment out warning addition.

Sun Apr 28 15:22:16 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* handle-port.c: Add obsolescence link warning.

Thu Apr 11 18:03:31 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (MIGSFLAGS): Reference fsmutations.h in $(srcdir).

Thu Jan 25 16:19:29 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* cntl-create.c (trivfs_create_control): New function.
	* trivfs.h (trivfs_create_control): New declaration.
	* startup.c (trivfs_startup): Use trivfs_create_control.
	* handle-port.c (trivfs_handle_port): Likewise.
	* Makefile (OTHERSRCS): Add cntl-create.c.

	* open.c (trivfs_open): Use ports_create_port instead of
	ports_allocate_port, and return any error.
	* protid-dup.c (trivfs_protid_dup): Likewise.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.

Mon Jan 15 12:02:49 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* protid-clean.c (trivfs_clean_protid): Don't hold
	CRED->po->cntl->lock while calling TRIVFS_PEROPEN_DESTROY_HOOK.

SUN Nov  5 00:01:53 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* fsys-stubs.c (trivfs_S_fsys_get_options,
	trivfs_S_file_get_fs_options): New functions.

	* file-get-storage-info.c (trivfs_S_file_get_storage_info): Add
	FLAGS arg.

	* dir-chg.c (trivfs_S_dir_notice_changes): Waste some time adding
	reply port args that no one will use.
	* dir-link.c (trivfs_S_dir_link): Ditto.
	* dir-lookup.c (trivfs_S_dir_lookup): Ditto.
	* file-utimes.c (trivfs_S_file_utimes): Ditto.
	* file-statfs.c (trivfs_S_file_statfs)Ditto.
	* file-set-trans.c (trivfs_S_file_set_translator): Ditto.
	* file-lock.c (trivfs_S_file_lock, trivfs_S_file_lock_stat): Ditto.
	* file-getlinknode.c (trivfs_S_file_getlinknode): Ditto.
	* file-getfh.c (trivfs_S_file_getfh): Ditto.
	* file-get-transcntl.c (trivfs_S_file_get_translator_cntl): Ditto.
	* file-get-trans.c (trivfs_S_file_get_translator): Ditto.
	* file-get-storage-info.c (trivfs_S_file_get_storage_info): Ditto.
	* file-chown.c (trivfs_S_file_chown): Ditto.
	* file-chflags.c (trivfs_S_file_chflags): Ditto.
	* file-chg.c (trivfs_S_file_notice_changes): Ditto.
	* dir-unlink.c (trivfs_S_dir_unlink): Ditto.
	* dir-rmdir.c (trivfs_S_dir_rmdir): Ditto.
	* dir-rename.c (trivfs_S_dir_rename): Ditto.
	* dir-readdir.c (trivfs_S_dir_readdir): Ditto.
	* dir-mkfile.c (trivfs_S_dir_mkfile): Ditto.
	* dir-mkdir.c (trivfs_S_dir_mkdir): Ditto.
	* file-chmod.c (trivfs_S_file_chmod): Ditto.
	* file-chauthor.c (trivfs_S_file_chauthor): Ditto.

Wed Nov  1 15:53:38 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* startup.c (trivfs_startup): Add FLAGS arg, passed to fsys_startup.
	* trivfs.h (trivfs_startup): Add FLAGS arg.
	* fsys-stubs.c (trivfs_S_fsys_startup): Ditto.

Sat Oct  7 05:04:02 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* fsys-stubs.c (trivfs_S_fsys_getpriv): Add poly args.

	* Makefile (libtrivfs.so): Depend on ../libports/libports.so.

Fri Oct  6 17:44:08 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* migsupport.c: Remove leading _ from function names.
	* fsmutations.h: Likewise.
	* trivfs.h (trivfs_{begin,end}_using_{protid,control}): Declare them.

Fri Oct  6 17:28:07 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* dir-link.c (trivfs_S_dir_link): Swap first two arguments.

	* file-get-storage-info.c (trivfs_S_file_get_storage_info): Change
 	type of RUNS to off_t **, and add the BLOCK_SIZE parameter.

Thu Oct  5 00:41:33 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (FSSRCS): Add file-get-storage-info.c.
	* file-get-storage-info.c: New file.

Mon Sep 18 14:29:37 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* file-set-size.c (trivfs_S_file_set_size): Renamed from
	file-truncate.c:trivfs_s_file_truncate.
	* io-pathconf.c (trivfs_S_io_pathconf): Renamed from
	file-pathconf.c:trivfs_S_file_pathconf.
	(trivfs_S_io_pathconf): Add reply port to args.
	* Makefile (FSSRCS): Remove file-pathconf.c.
	(IOSRCS): Add io-pathconf.c.
	(FSSRCS): Rename file-truncate.c to file-set-size.c.

Wed Sep  6 10:33:03 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* demuxer.c (trivfs_demuxer): Use ports_notify_server and
	ports_interrupt_server instead of our own versions.
	* Makefile (SRCS): Removed $(NOTIFYSRCS) and $(INTSRCS).
	(NOTIFYSRCS, INTSRCS): Removed.
	(MIGSTUBS): Removed notifyServer.o and interruptServer.o.
	* interrupt.c: File deleted.

Fri Aug 25 12:11:26 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* interrupt.c (trivfs_S_interrupt_operation): Use ports_interrupt_rpc.

Thu Aug 24 11:46:19 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* fsys-forward.c (trivfs_S_fsys_forward): New file.

Wed Aug 23 15:09:31 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* Makefile (REMHDRS): Removed.
	(FSYSSRCS): Added fsys-forward.c.

Mon Aug 21 15:25:36 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* handle-port.c (trivfs_handle_port): Initialize the hook field.
	* io-stat.c (trivfs_S_io_stat): Pass CRED to trivfs_modify_stat.
	* fsys-goaway.c (trivfs_S_fsys_goaway): Use new args for trivfs_goaway.
	* trivfs.h (struct trivfs_control): Add the hook field.
	(trivfs_goaway): Pass the control structure directly instead of
	random fields from it.
	(trivfs_modify_stat): Pass in the node as well.

Mon Aug 21 10:51:24 1995  Michael I. Bushnell, p/BSG  <mib@duality.gnu.ai.mit.edu>

	* protid-dup.c: Doc fix.

Fri Aug 11 14:01:41 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* open.c (trivfs_open): Actually set the PO field to what we create.
	* Makefile (OTHERSRCS): Add protid-dup.c and open.c.

Tue Aug  8 14:07:04 1995  Miles Bader  <miles@geech.gnu.ai.mit.edu>

	* open.c: New file, containing trivfs_open.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Guts (except for
	protection check) moved into trivfs_open.
	* protid-dup.c: New file, containing trivfs_protid_dup.
	* io-duplicate.c (trivfs_S_io_duplicate): Guts moved into
	trivfs_protid_dup.

	* trivfs.h (trivfs_protid_create_hook, trivfs_peropen_create_hook):
	Change the declarations now that these return an error code.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Allow
 	trivfs_protid_create_hook and trivfs_peropen_create_hook to return
 	an error code, and abort if either does.
	* protid-clean.c (trivfs_clean_protid): Only call
	trivfs_protid_destroy_hook hook on CRED if it was fully initialized.
	* io-duplicate.c (trivfs_S_io_duplicate): Allow
 	trivfs_protid_create_hook to return an error code.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Ditto.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Ditto.

Fri Jul 21 17:01:12 1995  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* fsys-getroot.c (trivfs_S_fsys_getroot): Free initial reference
	created by ports_allocate_port.
	* handle-port.c (trivfs_handle_port): Likewise.
	* io-duplicate.c (trivfs_S_io_duplicate): Likewise.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.

Sun Jul 16 13:00:44 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* trivfs.h: Protect against including twice, and add includes that
	we depend on.

Thu Jul  6 15:38:48 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* Makefile: Removed dependencies that are now automatically
 	generated.

Tue Jun 27 10:55:16 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* fsys-goaway.c (trivfs_S_fsys_goaway): Call trivfs_goaway the new
        way.
	* startup.c (trivfs_startup): New parms CONTROL_BUCKET and
	PROTID_BUCKET; pass them to trivfs_handle_port.  Use new ports
	interface.
	* protid-clean.c (trivfs_clean_protid): Use new ports interface.
	Use PREdecrement in reference counting check.
	* nosenders.c (trivfs_do_mach_notify_no_senders): Use new ports
        interface.
	* migsupport.c (_trivfs_begin_using_protid,
	_trivfs_end_using_protid, _trivfs_begin_using_oontrol,
	_trivfs_end_using_control): Use new ports interface.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Use new ports
        interface.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Use new ports
        interface.
	* io-duplicate.c (trivfs_S_io_duplicate): Use new ports interface.
	* handle-port.c (trivfs_handle_port): Take new parms; use new
	ports interface; initialize CNTL->protid_bucket.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Use new form of
        ports_allocate_port call.
	* trivfs.h (trivfs_protid_portclasses): Renamed from
	trivfs_protid_porttypes. Change type to `struct port_class *'.
	(trivfs_protid_nportclasses): Renamed from trivfs_protid_nporttypes.
	(trivfs_cntl_portclasses): Renamed from trivfs_cntl_porttypes.  Change
	type to `struct port_class *'.
	(trivfs_cntl_nportclasses): Renamed from trivfs_cntl_nporttypes.
	(trivfs_startup): Pass port classes instead of integer types.  New
	parms CONTROL_BUCKET and  PROTID_BUCKET.
	(trivfs_handle_port): Pass port classes instead of integer types.
	New parms CONTROL_BUCKET and PROTID_BUCKET.
	(trivfs_goaway): Pass port classes instead of integer types.
	(struct trivfs_control): Renamed member `protid_types' to be
	`protid_class' and changed type to be `stroct port_class *'.
	New member `protid_bucket'.

Fri May 12 19:05:46 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* fsys-stubs.c (trivfs_S_fsys_set_options,
	trivfs_S_fsys_mod_readonly): Change from mod_readonly to set_options.

Sun Apr  9 00:36:36 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* io-stat.c (trivfs_S_io_stat): Before calling trivfs_modify_stat,
	set the st_fstype & st_fsid fields to trivfs_fstype & trivfs_fsid.
	But first, if trivfs_fsid is zero, set it to our process id, which
	should be a nice unique value.
	* file-statfs.c (trivfs_S_file_statfs): Ditto about the PID.

	* startup.c (trivfs_startup): New function, which implements a
	common sequence of steps when starting up a new trivfs.
	* trivfs.h: Declare trivfs_startup.
	* Makefile (OTHERSRCS): Add startup.c.

Thu Mar 30 12:27:59 1995  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* trivfs.h (trivfs_check_open_hook): Doc fix.
	(trivfs_complete_open): Delete declaration.
	(struct trivfs_control): Delete members `openshead' and
        `openstail'.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Strip out old
	hack for blocking.
	(struct pending_open): Delete type.
	(trivfs_complete_open): Delete function.

	* trivfs.h (struct trivfs_control): New member `lock'.
	* handle-port.c (trivfs_handle_port): Initialize CNTL->lock.
	* io-duplicate.c (trivfs_S_io_duplicate): Lock
	CRED->po->cntl->lock around relevant code.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.
	* protid-clean.c (trivfs_clean_protid): Likewise.

Tue Jan 17 19:00:28 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* io-select.c: Updated for new io_select interface.

Fri Dec  9 01:35:54 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* io-write.c: Use mach_msg_type_number_t in place of unsigned int
        and int.
	* io-read.c: Likewise.
	* io-readable.c: Likewise.

Tue Oct 25 10:54:06 1994  Michael I Bushnell  <mib@churchy.gnu.ai.mit.edu>

	* fsys-getroot.c (trivfs_S_fsys_getroot): Don't clear O_NONBLOCK.

Tue Aug 30 13:23:55 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* fsys-syncfs.c: New file.
	* Makefile (FSYSSRCS): Added fsys-syncfs.c.
	* fsys-stubs.c (trivfs_S_fsys_mod_readonly): New function.

	* Makefile (FSSRCS): Remove dir-pathtrans.c; add dir-lookup.c.
	* dir-lookup.c: Renamed from dir-pathtrans.c
	* dir-pathtrans.c (trivfs_S_dir_lookup): Renamed from
	trivfs_S_dir_pathtrans.

	* fsys-getroot.c (trivfs_S_fsys_getroot): Use FS_RETRY_NORMAL
	instead of FS_RETRY_NONE.
	(trivfs_complete_open): Likewise.

	* file-set-trans.c (trivfs_S_file_set_translator): Change to args
	as for new file_set_translator procotol.

Mon Aug 29 12:52:43 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Use new
	authentication protocol.

Wed Aug 17 20:11:29 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* io-select.c (trivfs_S_io_select): Take poly arg for notify port.

Thu Aug 11 11:58:48 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* io-version.c (trivfs_S_io_server_version): Fix typo in name.

Fri Jul 22 12:41:55 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* fsys-goaway.c: Include fsys_S.h with " not with <>.
	* handle-port.c: Include priv.h with " not with <>.

	* Makefile: Converted to use new scheme.
	* fsmutations.h (SERVERPREFIX): Deleted macro.
	* fsys-getroot.c: Include "fsys_reply_U.h" instead of "fsys_reply.h".

Wed Jul 20 15:59:36 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* file-inv.c: New file.
	* Makefile (FSSRCS): Added file-inv.c.

Tue Jul 19 19:23:33 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* fsys-stubs.c (trivfs_S_fsys_startup): Deleted dotdot args.
	* fsys-getroot.c (trivfs_S_fsys_getroot): New arg `dotdot';
	don't do anything with it.

Mon Jul 11 14:49:03 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* trivfs.h (trivfs_set_atime, trivfs_set_mtime): New functions.
	* times.c: New file.
	* Makefile (OTHERSRCS): Added `times.c'.

Thu Jul  7 10:39:04 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* Makefile (DIST_FILES): Add priv.h.

Tue Jul  5 13:24:59 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* Makefile (DIST_FILES): Added fsmutations.h.
	(TAGSHDRS): New variable.

	* fsys-getroot.c: Include "fsys_reply.h".
	(trivfs_S_fsys_getroot, trivfs_complete_open):
	Uncomment code now that we have reply ports.
	(struct pending_open): Delete USERS_PORT, add CRED.
	(trivfs_S_fsys_getroot): When creating PENDO, don't call
	ports_get_right, call ports_port_ref; store CRED in PENDO.
	(trivfs_complete_open): Deal with errors properly.  When sending
	port to user, call ports_get_right.  Always call
	ports_done_with_port when freeing pending open struct.
	* Makefile (MIGSTUBS): Added fsys_replyUser.o.
	(fsys_reply.h fsys_replyUser.c): New rule.
	(fsys-getroot.c): Add dependency on fsys_reply.h.

	* fsmutations.h (REPLY_PORTS): New macro, affecting io and fsys
	interfaces.
	* io-async-icky.c (trivfs_S_io_get_icky_async_id): Added new
	REPLY and REPLYTYPE args.
	* io-async.c (trivfs_S_io_async): Likewise.
	* io-duplicate.c (trivfs_S_io_duplicate): Likewise.
	* io-map.c (trivfs_S_io_map): Likewise.
	* io-modes-get.c (trivfs_S_io_get_openmodes): Likewise.
	* io-modes-off.c (trivfs_S_io_clear_some_openmodes): Likewise.
	* io-modes-on.c (trivfs_S_io_set_some_openmodes): Likewise.
	* io-modes-set.c (trivfs_S_io_set_all_openmodes): Likewise.
	* io-owner-get.c (trivfs_S_io_get_owner): Likewise.
	* io-owner-mod.c (trivfs_S_io_mod_owner): Likewise.
	* io-read.c (trivfs_S_io_read): Likewise.
	* io-readable.c (trivfs_S_io_readable): Likewise.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.
	* io-seek.c (trivfs_S_io_seek): Likewise.
	* io-select.c (trivfs_S_io_select): Likewise.
	* io-stat.c (trivfs_S_io_stat): Likewise.
	* io-stubs.c (trivfs_S_io_map_cntl): Likewise.
	(trivfs_S_io_get_conch): Likewise.
	(trivfs_S_io_release_conch): Likewise.
	(trivfs_S_io_eofnotify): Likewise.
	(trivfs_S_io_prenotify): Likewise.
	(trivfs_S_io_postnotify): Likewise.
	(trivfs_S_io_readsleep): Likewise.
	(trivfs_S_io_sigio): Likewise.
	(trivfs_S_io_readnotify): Likewise.
	* io-write.c (trivfs_S_io_write): Likewise.
	* io-version.c (trivfs_S_trivfs_io_server_version): Likewise.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Likewise.
	* fsys-goaway.c (trivfs_S_fsys_goaway): Likewise.
	* fsys-stubs.c (trivfs_S_fsys_startup): Likewise.
	(trivfs_S_fsys_getpriv): Likewise.
	(trivfs_S_fsys_init): Likewise.
	(trivfs_S_fsys_getfile): Likewise.

Wed Jun 29 13:02:17 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* io-read.c (trivfs_S_io_read): Always return EOPNOTSUPP.
	* io-write.c (trivfs_S_io_write): Likewise.
	* file-truncate.c (trivfs_S_file_truncate): Likewise.
	* io-readable.c (trivfs_S_io_readable): Likewise.
	* io-select.c (trivfs_S_io_select): Likewise.

	* fsys-getroot.c (trivfs_S_fsys_getroot): Use trivfs_allow_open
	instead of trivfs_support_* vars.

	* trivfs.h (trivfs_allow_open): New variable.

	* dir-pathtrans.c (trivfs_S_dir_pathtrans): Delete unused var
	`newcred'.

Mon Jun 27 15:05:06 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* fsys-getroot.c: Comment out code for blocking opens; don't
	permit trivfs_check_open_hook to return EWOULDBLOCK.

Thu Jun 23 12:28:49 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* fsys-getroot.c (trivfs_S_fsys_getroot): Don't call
	ports_done_with_port for CNTL; the MiG destructor function does
	that for us.

	* fsys-getroot.c (trivfs_S_fsys_getroot): Call trivfs_check_open_hook
	to allow trivfs users to block or restrict opens.
	* trivfs.h (trivfs_check_open_hook, trivfs_complete_open): New
	declarations.
	(struct trivfs_control): New members `openshead' and `openstail'.

Wed Jun 22 14:49:00 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* fsys-getroot.c (trivfs_S_fsys_getroot): Initialize both hook
	members to 0.
	* io-duplicate.c (trivfs_S_io_duplicate): Copy NEWCRED->hook
	from CRED->hook.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.

	* fsys-getroot.c (trivfs_S_fsys_getroot): Don't force read/write
	systems to redefine this function.  If O_foo is set, but
	trivfs_support_foo isn't, then return EACCES.  Call
	io_restrict_auth at the front so we can check open permission
	using the result.  Initialise CRED->po->openmodes.

	* trivfs.h (trivfs_peropen): New member `openmodes'.
	* io-modes-get.c (trivfs_S_io_get_openmodes): Set bits from
	CRED->po->openmodes, but only if we are not a read/write
	server; otherwise the server might be hiding bits elsewhere.

	* dir-pathtrans.c (trivfs_S_dir_pathtrans): Strip out code; always
	return ENOTDIR.

Tue Jun 21 13:21:07 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* file-access.c: New file.
	* dir-chg.c: New file.
	* file-chg.c: New file.
	* Makefile (FSSRCS): Added file-access.c, dir-chg.c, and file-chg.c.

Mon Jun 20 14:42:12 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* dir-readdir.c (trivfs_S_dir_readdir): Declare args in accord
	with fs.defs interface change.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Likewise.  Set
	DO_RETRY and RETRY_NAME appropriately.
	* file-get-transcntl.c (trivfs_S_file_get_translator_cntl):
	CNTL_TYPE is a pointer.

Fri Jun 17 11:23:47 1994  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* file-get-transcntl.c (trivfs_S_file_get_translator_cntl): Add
	missing poly arg.

Wed Jun 15 21:27:20 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* dir-pathtrans.c: Include <string.h> for bcopy.
	* fsys-getroot.c: Likewise.
	* io-duplicate.c: Likewise.
	* io-reauthenticate.c: Likewise.
	* io-restrict-auth.c: Likewise.

Wed Jun 15 16:58:02 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* trivfs.h (trivfs_goaway): New args REALNODE, CNTLTYPE,
	PROTIDTYPE.  All callers changed.

	* fsmutations.h (FSYS_DESTRUCTOR, FSYS_INTRAN): New macros.
	* priv.h (trivfs_control_t): New type.
	(_trivfs_begin_using_control, _trivfs_end_using_control): New
	declarations.
	* migsupport.c (_trivfs_begin_using_control,
	_trivfs_end_using_control): New functions.
	* fsys-getroot.c (trivfs_S_fsys_getroot): First arg is now
	`struct trivfs_control *'; don't call ports_check_port_type
	ourselves or ports_done_with_port.
	* fsys-goaway.c (trivfs_S_fsys_goaway): Likewise.
	* fsys-stubs.c (trivfs_S_fsys_startup, trivfs_S_fsys_getpriv,
	trivfs_S_fsys_init, trivfs_S_fsys_getfile): Declare first
	arg as `struct trivfs_control *'.

	* trivfs.h (trivfs_protid_porttype, trivfs_cntl_porttype):
	Deleted vars.
	(trivfs_protid_porttypes, trivfs_cntl_porttypes,
	trivfs_protid_nporttypes, trivfs_cntl_nporttypes): New vars.
	(trivfs_control): New member protidtypes.
	(trivfs_handle_port): New args PROTIDTYPE and CNTLTYPE.
	* migsupport.h (_trivfs_begin_using_protid): Check
	against all the members of trivfs_protid_porttypes.
	* dir-pathtrans.c (trivfs_S_dir_pathtrans): Copy type of new port
	from existing port.
	* io-duplicate.c (trivfs_S_io_duplicate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* handle-port.c (trivfs_handle_port): Allocate port of type
	from new arg CNTLTYPE.  Initialize CNTL->protidtypes from new arg
	PROTIDTYPE.
	* fsys-getroot (trivfs_S_fsys_getroot): Allocate port of type
	from CNTL->protidtypes.

	* trivfs.h (struct trivfs_protid) [hook]: New member.
	(trivfs_protid_create_hook, trivfs_peropen_create_hook,
	trivfs_protid_destroy_hook, trivfs_peropen_destroy_hook): New
	hook functions.
	* dir-pathtrans.c (trivfs_S_dir_pathtrans): Call
	trivfs_peropen_create_hook.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Likewise.
	* dir-pathtrans.c (trivfs_S_dir_pathtrans): Call
	trivfs_protid_create_hook.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Likewise.
	* io-duplicate.c (trivfs_S_io_duplicate): Likewise.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.
	* protid-clean.c (trivfs_clean_protid): Call
	trivfs_protid_destroy_hook and trivfs_peropen_destroy_hook.

	* trivfs.h (struct trivfs_protid) [po]: New member.
	(struct trivfs_protid) [cntl]: Deleted member.
	(struct trivfs_peropen): New type.
	* file-getcontrol.c (trivfs_S_file_getcontrol): Fetch control
	port through peropen structure.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Likewise.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Reference
	peropen, not cntl.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.
	* io-duplicate.c (trivfs_S_io_duplicate): Likewise.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Create new peropen
	and reference it.
	* dir-pathtrans (trivfs_S_dir_pathtrans): Actually create new
	peropen and cred.
	* protid-clean.c (trivfs_clean_protid): Drop reference on peropen,
	deallocating it if necessary.

	* trivfs.h (struct trivfs_protid) [uids, gids, nuids, ngids]: New
	 members.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Save received
	ids in newly created protid.
	* io-restrict-auth.c (listmember): New function.
	(trivfs_S_io_restrict_auth): Save uids and gids in newly created
	protid.
	* io-duplicate.c (trivfs_S_io_duplicate): Copy uids and gids.
	* protid-clean.c (trivfs_clean_protid): Free CRED->uids and
	CRED->gids.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Initialize uids
	and gids.