Andras
Thank you for the feedback. I am glad you like YAFFS.
To look at the bugs you report:
> After creating a new directory, first 'cd' fails ( kernel dump ) and kills
> my shell, later I can change the directory fine.
> Fix: Added a dget_locked(dentry) with the locking/unlocking necessary and
> FIXED!! Have you already tried this way ? I found in the source code, there
> were some efforts to solve this problem before.
>
> Here we are the 'chunk' added to yaffs_lookup:
>
> if(inode)
> {
> T((KERN_DEBUG"yaffs_loookup looks good\n"));
> // try to fix ln -s prob dget(dentry); // try to solve directory bug
>
> >>>>>>>> spin_lock(&dcache_lock);
> >>>>>>>> dget_locked(dentry);
> >>>>>>>> spin_unlock(&dcache_lock);
>
> d_add(dentry,inode);
>
> yaffs_GrossUnlock(dev);
>
> return dentry;
> }
>
>
> ( dget() was not correct, because it fails if the d_count zero. )
Thany you for explaining this problem - it caused me many hours of grief.
However, in the last check in I went away from this way of doing things, so
this patch no longer applies.
If you are using older code, then this will help.
Some people have looked at the latest code and commented that YAFFS returns
NULL at this point. This **looks** wrong, but is in fact correct.
Please keep up the good detective work!
-- 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.