[Yaffs-archive] Re: YAFFS partial fix for disk full conditio…

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Luc Van Oostenryck
Date:  
To: YAFFS list
Subject: [Yaffs-archive] Re: YAFFS partial fix for disk full condition
Charles Manning wrote:
> Hi yaffsers
>
> I have just checked in a fix for the looping when disk full problem.
> Basically, yaffs_fs.c was not reporting back ENOSPC to Linux. Bad, bad...
>
> There is a remaining issue though that you still get funny directory entries
> called /mnt/yaffs/objnnn. These names are created from the objectId on the
> fly by yaffs when it detects a directory entry but can't find an associated
> chunk on NAND to get a real name. Fixing this is a bit more than a 30 minute
> turnaround. I'll put it on the todo.
>
> Thanx to Christian Gan for pointing out the issue.
>
> Sidebar: This is where having both a WinCE and Linux version pays off. Over
> the last few weeks I've been pounding disk full hard on a WinCE box. Since
> yaffs_guts is portable, I had a good hunch therefore that the problem was in
> yaffs_fs.c returning the correct failure code.
>
> -- Charles
>


I've tested the disk full problem:
two problems remains:

1) when the disk is almost full, the GC seems to select block 1, 2 and 3 again and again

    block 1:    352 times
    block 2:    287 times
    block 3:    313 times
    block 4-125:     55 times
    block 126:    141 times
    block 127:     10 times
    Is this an artefact of my worload or is it a real problem ?
    I can't see the code for the infrequent random block selection, is it implemented ?


2) after the write finally return -ENOSPC, the deletion of the file cause an Linux kernel oops.
    I will investigate this tomorrow.



Luc Van Oostenryck







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