]> arthur.barton.de Git - netatalk.git/blob - doc/README.mtab.distribution
Fix up file list for EXTRADIST.
[netatalk.git] / doc / README.mtab.distribution
1 About this directory
2
3    This directory contains I hack I wrote to explore a way to fix the
4 netatalk persistent DID problem.  A survey of the contents:
5
6    README.mtab -- notes for implementors and sysadmins, on why there is
7 an extra configuration file, and how to maintain it.  If adopted, this
8 should become part of the distribution documentation.  Much more could
9 be said.
10
11    afpd-mtab.pl -- perl script that acts as a filter, turning /etc/mtab
12 into an initial afpd.mtab version.  (Only tested on RH Linux.)
13
14    afpd.mtab.* -- testing versions produced on my system.  "make test"
15 tries to produce afpd.mtab automatically; if this doesn't work on your
16 configuration, you could try editing one of these to match your
17 partition structure.
18
19    parse-mtab.c, parse-mtab.h -- source intended to be integrated into
20 the etc/afpd/ code.
21
22    test-parse-mtab.c -- test driver for parse-mtab.c, reads the file and
23 produces CNID values for other files and directories given on the
24 command line.  Change top_srcdir in the makefile and do "make test" in
25 order to compile & run this.
26
27 Notes:
28
29    * I have only ext2fs partitions on a single local disk, so I haven't
30 been able to do very broad testing, even on Linux.  This is part of why
31 I'm too chicken to try to paste this into the netatalk source.  ;-}
32
33    * If there is no entry in the table, I just use the reserved 0 device
34 index.  This seems like asking for trouble, so a better policy would be
35 to make absent devices unavailable (you probably don't want users poking
36 around in /var or /usr anyway), but that requires a more global
37 implementation.
38
39    * The way it's now written, afpd is expected to fail to start up if
40 /etc/atalk/afpd.mtab is not found.  That may not be optimal, but even if
41 it is, it requires some extra setup instructions.
42
43    * I'm assuming the high order bit need no longer be reserved for the
44 file/directory flag, but I have no idea whether that will work.  If not,
45 it's easy to change.
46
47    * It would be good if, on startup, afpd would warn about partitions
48 in the table that have more inodes than can be represented in the
49 available number of bits.
50
51    * If partitions were to use a bit encoding that reversed the bits in
52 the index (i.e. putting the LSB "first" as written), then the device MSB
53 would be adjacent to the inode MSB.  That would produce upward-
54 compatible DIDs if the number of device bits needed to increase.  The
55 encoding is precomputed anyway, so it's not a speed concern.  Better
56 still, by carefully choosing small indices for large-inode devices and
57 avoiding intermediate-sized indices, one could effectively set the
58 device/inode boundary independently for each device.  This would allow a
59 sysadmin to come close to using all of the theoretical 32-bit DID-space.
60 (Implementation is left as an excercise.  ;-)
61