Just few things that I can think of, and one is trivial. How would you
specify this? I assume that you'd do it through a mount time option, but
I suppose that it could also be a per block device flag that could be
settable at run-time.
Second, this won't do NFS caching if I under stand how the buffer cache
works. Since there isn't a block device involved it still won't be
cached. I suppose that could be hacked, but I doubt it would be pretty.
Another thing is that it's not dynamically sizable or persistant. Both
of which I see as rather important.
I think overall it's better to implement it as a VFS, that way not only
NFS will benefit, but so will any fs's like userfs, etc. VFS will be more
of a hassle, and not as fast, but we're talking about slow devices
anyway.
Also, if it is implemented as a VFS I think it's rather important for it
to go through the buffer cache to access the disk cache for obvious reasons.