On Feb 14 2008 16:19, Hans-Jürgen Koch wrote:
>> 
>> 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.
>
>Well, the problem seems to be that a "directory" is not just data but
>also contains metadata. While it's easy to write data to /dev/null, you
>cannot simply discard metadata associated with a directory. So, such a
>"/dev/null-directory" would have to remember metadata (at least all
>created filenames including subdirectories) in the same way as other
>filesystems do. Only file _content_ can be discarded.

Not even that. Suppose a userspace program (whose output you'd like
to discard) does:

int main(void)
{
        int fd = open("/nullmnt/foo.txt", O_WRONLY | O_CREAT | O_EXCL);

        /* write lots of nonsensical data that we don't need anyway */
        write(fd, "Hello Wor(l)d", 13);

        if (lseek(fd, 0, SEEK_SET) < 0) {
                /* should not happen */
                fprintf(stderr, "Huh, did we write to a pipe or cdev?\n");
                abort();
        }

        /* verify */
        char buf[13];
        read(fd, buf, 13);
        if (memcmp(buf, "Hello Wor(l)d", 13) != 0)
                fprintf(stderr, "Aïe, disk corruption!\n");
}

>To be honest, I still cannot see many sensible usecases for that...

I agree.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to