Re: Linux 2.4.10-pre11

Alexander Viro
2001-09-18T10:52:30Z

On Tue, 18 Sep 2001, Andrea Arcangeli wrote:

> > It doesn't have to be fake. See how it's done for sockets or pipes.
>
> here it's really completly private to the bdev. I mean we could be
> tricky and force a cast on mapping->host to point to bdev and we
> wouldn't need the fake inode. But casts are probably uglier and more
> risky than using the fake_inode (unless we really consdier the host a
> cookie rather than an inode pointer). Comments?

Well, seeing that I had added ->host in the first place... yes, they were
intended to be cookies rather than inode pointers. Precisely because of
block device applications. Overridden by Linus several months down the road
and yes, I still think that it was bogus.

Anyway, _if_ we have to have an inode somewhere, we'd better make sure
that it's not a reuse of inode passed by open(). Otherwise we are in for
a lot of fun.

I could live with something similar to the net/socket.c and fs/pipe.c schemes
- minimal superblock and inodes allocated on it. But then we'd better be
consistent and do that for _all_ uses of blkdev_get().