[Yaffs] initial value of erased_ok in yaffs_write_new_chunk

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: peterlingoal
Date:  
To: yaffs
Subject: [Yaffs] initial value of erased_ok in yaffs_write_new_chunk
Hi All,

The initial value of erase_ok in function yaffs_write_new_chunk (git
hash: 34292b4, yaffs_guts.c line 497) is 0, which is YAFFS_FAIL, so
any write failure in page other than fist page will be treated as an
unclean erase. I think this is different from the expected logic. This
could be a potential problem because a block is expected to be retired
immediately if WRITE operation fails. Continue using such a block may
lead to content corruption.

Let me confirm my understand of the logic is correct:

if( first page )
    if( not erased_ok )
        skip block
    fi
fi
write page
if( first page )
   verify write
fi
if( write failed )
  if ( erased_ok )   <== eased_ok is by default false, and will only
be updated in first page
     retire block
  else
     skip block
  fi
fi


regards,
Peter