[Yaffs-archive] YAFFS bugs?

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Andras Toth
Date:  
To: yaffs
Subject: [Yaffs-archive] YAFFS bugs?
Hello,

I tried YAFFS yesterday on a real NAND flash device of my SA1110 based ARM
board. I found the following problems:

1.
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. )



2.
Strange behaviour about device nodes ( special files )
I've found a "copt/paste editing' bug in yaffs_guts.c.
MknodSpecial function created a DIRECTORY type object on the flash.
I changed to SPECIAL. See below:

yaffs_Object *yaffs_MknodSpecial(yaffs_Object *parent,const char *name, __u32 
mode, __u32 uid, __u32 gid, __u32 rdev)
{
    return 
yaffs_MknodObject(YAFFS_OBJECT_TYPE_SPECIAL,parent,name,mode,uid,gid,NULL,NULL,rdev);
}


I'll try it soon, I hope helps. Reporting later ...

Andras Toth
Senior Software Engineer
Guardware Systems Ltd.
Budapest, Hungary


---------------------------------------------------------------------------------------
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 with the text "unsubscribe"
(without the quotes) as the subject.