Re: arla-0.90 on NetBSD 3.x, small syntax fix and what will need to be done
Tomas Olsson <[email protected]>
| Newsgroups | gmane.comp.file-systems.arla.general |
|---|---|
| Message-ID | <[email protected]> |
"Jonathan A. Kollasch" <[email protected]> writes: > there is a missing ")" before the ";". > Thanks, fixed. > After fixing that, it will successfully build on NetBSD 3.0.1, but the modload > finds undefined symbols, nnpfs_dev_msleep, nnpfs_getpages, nnpfs_putpages. > > I tried implementing these, and succeeded in getting everything going, > but the data of files in AFS was totally corrupt, so I'm betting I did > something wrong. :] > The main problem (which keeps Open and FreeBSD from working as well) has to do with how nnpfs opens the cache files containing block data. In the olden days, we'd get the vnode when arlad notified nnpfs of the data's existence, using arlad's context. The vnode could then be used during the users's syscalls -- very handy. Now we felt that given the potentially very large number of blocks known to nnpfs, we shouldn't hold on to vnodes for all of them. Which means we need to look up and open the block vnode from the user thread on demand. For some reason one can still use arlad's context to begin the lookup from the cache dir (where arlad is chrooted) on MacOS without running into the locking issues all the other BSD's have. Most often one could just use the first block of each file as we used the cache file before, but for subsequent blocks it gets more complicated. Perhaps we could open the vnode for the dir where all blocks are found whenever a file is opened, and then keep it for doing block lookup/open for subsequent accesses to that file. Anyway, one needs to do some major surgery before the block cache can work on NetBSD etc. Feel free to try (I don't think it's undoable) or just discuss it with us. It's appreciated. > however, for the (get|put)pages, I basically modified what > We've used genfs_{get,put}pages for a while, any chance that will still do? thanks /t