DragonFly bugs List (threaded) for 2004-12
Re: NFS serving off NTFS panic
:Maybe a better 'solution' (at least a more globally useful hack) would
:be to have vput() do nothing if its argument is NULL. This means any
:other file systems (of which I assume there are none, but you can never
:be too sure) which are susceptible to this 'oops' will suddenly work as
:The way it looks now it's adding more and more exceptions rather than
:avoiding a problem, so perhaps a review of the NTFS code's design is
:overdue. Do enough people use it for it to matter?
No, making vput ignore NULL is even worse, because then we don't
catch situations where NULL is bring improperly passed to vput.
:I'm sorry but the only machine I had under DragonFly had to be put to
:another use (it went from sandbox to production gateway, because the
:existing gateway had a disk failure) so I can't immediately test this
:patch, but maybe someone with the resources can help out. Knowing my
:curiosity I'll get another rig up eventually, but for now my hands are tied.
:On another note, is it such a good idea sticking to the direct IO style
:that all the BSDs use for NFS? It certainly does lead to amazing
:performance, but it means not all file systems work the same; I wasn't
:surprised to find that Linux, with a (by default) abstraction between
:file systems under NFS, could serve off NTFS perfectly. NetBSD didn't
:show any files on the volume, and so far DragonFly has crashed. I'm not
:even giving FreeBSD a chance. If it can be done cleanly, maybe a better
:abstraction wouldn't be so bad; if new file systems are added they can
:be supported as NFS exports as soon as they work as locals. Just an idea
:though, I'm certainly no kernel developer.
Well, I'm not sure what you mean by the 'direct IO style'. The
NFS server side operates as a mostly generic layer on top of
whatever filesystem is being exported. The issues are related
more to secondary filesystems like NTFS not being properly
implemented (and that's the story with VFS in general). Eventually
we will be able to run these secondary filesystems in userland
to make the system less vulnerable to panics, but for now we are
stuck with kernel implementations.