Jan Blunck wrote: > On Mon, Apr 19, David Woodhouse wrote: > > > On Mon, 2010-04-19 at 14:40 +0200, Jan Blunck wrote: > > > On Thu, Apr 15, Valerie Aurora wrote: > > > > > > > Add support for fallthru directory entries to ext2. > > > > > > > > XXX - Makes up inode number for fallthru entry > > > > XXX - Might be better implemented as special symlinks > > > > > > Better not. David Woodhouse actually convinced me of moving away from the > > > special symlink approach. The whiteouts have been implemented as special > > > symlinks before. > > > > I certainly asked whether you really need a real 'struct inode' for > > whiteouts, and suggested that they should be represented _purely_ as a > > dentry with type DT_WHT. > > > > I don't much like the manifestation of that in this patch though, > > especially with the made-up inode number. (ISTR I had other > > jffs2-specific objections too, which I'll dig out and forward). > > Yes, this patches still have issues that Val and me are aware off. I can't > remember anything jffs2-specific though. > > We return that inode number because we don't want to lookup the name on the > other filesystem during readdir. Therefore returning DT_UNKNOWN to let the > userspace decide if it needs to stat the file was the easiest workaround. I > know that POSIX requires d_ino and d_name but on the other hand it does not > require anything more on how long d_ino is valid. Although the lifetime of d_ino might very, I know some programs (not public) that will break if they see a d_ino which is wrongly matching the st_ino of another file somewhere on the same st_dev. They will assume the name is a hard link to the other file, without calling stat(), which I think is a reasonable assumption and a useful optimisation. So the made-up d_ino should at least be careful to not match an inode number of another file which has a stable st_ino. Why not zero for d_ino? -- Jamie -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html