Re: Is there a "blackhole" /dev/null directory?

From: Bill Davidsen
Date: Fri Feb 15 2008 - 14:25:00 EST


Jan Engelhardt wrote:
On Feb 14 2008 10:46, Andi Kleen wrote:
Jasper Bryant-Greene <jasper@xxxxxxxxxxxx> writes:
This could be done fairly trivially with FUSE, and IMHO is a good use
for FUSE because since you're just throwing most data away, performance
is not a concern.

There is a much more interesting 'problem' with a "/dev/null directory".

Q: Why would you need such a directory?
A: To temporarily fool a program into believing it wrote something.

Also: to let a program believe it was creating files which are used to hold the written data. Otherwise /dev/null would probably be the solution.

Q: Should all files disappear? (e.g. "unlink after open")
A: Maybe not, programs may stat() the file right afterwards and
get confused by the "inexistence".

I think what is going to happen is that files created behave as if they are the result of a mknod resulting in a /dev/null clone.

Q: What if a program attempts to mkdir /dev/nullmnt/foo to just
create a file /dev/nullmnt/foo/barfile?
A: /dev/nullmnt/foo must continue to exist or be accepted for a while,
or perhaps for eternity.

The directory structure can persist, it's the writing of data which can be avoided.

Real example:

A program which reads log files and prepares a whole raft of reports in a directory specified. If you just want to see the summary (stdout) and exception notices (stderr) having a nulldir would avoid the disk space and i/o load if you were just looking at the critical output rather than the analysis.

Yes, if this was an original program requirement it would or should have been a feature. Real world cases sometimes use tools in creative ways.

--
Bill Davidsen <davidsen@xxxxxxx>
"We have more to fear from the bungling of the incompetent than from
the machinations of the wicked." - from Slashdot
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/