On Thursday 14 August 2003 21:43, Nick Bane wrote: > Yaffsers > > I have found and fixed the rename problem in linux kernel 2.6.0 and almost > certainly the 2.5 kernel one too (though I haven't tested it) and looks > like a sensible change for 2.4 as well. > > The problem was that the dcache hash table in the new dentry was not being > created.. > > Close inspection of the vfs_rename function under yaffs shows that the > new_dentry being passed the the fs rename function has no hash table if it > is a new entry as opposed to pointing to an existing one that is to be > deleted. This caused a segfault in dcache's d_move when it tried to add a > NULL hash list to the existing hash list. > > This is a result of the yaffs lookup function not d_add-ing the dentry when > no yaffs object is found during yaffs_lookup (and hence no inode). > Initialising inode to NULL and forcing a d_add call fixes this by creating > the dentry hash that was missing. I wonder if this might have been partly > responsible for other directory problems that have been seen. > Nick Good detective work. Luc and I were never 100% happy with what was going on in yaffs_fs with 2.4, but could not see any real residual problems. Maybe this is sorted properly now. -- CHarles --------------------------------------------------------------------------------------- This mailing list is hosted by Toby Churchill open software (www.toby-churchill.org). If mailing list membership is no longer wanted you can remove yourself from the list by sending an email to yaffs-request@toby-churchill.org with the text "unsubscribe" (without the quotes) as the subject.