* what hch said about mount options. Get rid of that before the thing goes into mainline. * all "inode = GET_F_DENTRY(f)->d_inode;" are complete BS; it's called file_inode(f). Kill GET_F_DENTRY() off and be done with that. * your ->rename() can race with ->get_link(). Look at the place where the former reassigns ->path and frees the old value and think what happens if the latter is called just prior to that kfree(). * the same goes for sf_inode_revalidate() vs. rename(). * just what happens to ->path of inode when e.g. its grandparent directory is renamed? * AFAICS, you consider all negative dentries invalid. Why do you even hash them, then?