Charles Manning wrote:
> I don't know what this will do to robustness and I'm interested to know what
> people experience.
>
> IMHO: If you want robustness (eg killing power without doing a umount), stick
> with the uncached configuration.
>
> -- Charles
>
>
> On Wed, 21 Aug 2002 11:54, Charles Manning wrote:
>
>>Hi Yaffsers
>>
>>Files checked in: yaffs_fs.c, Makefile.
>>
>>I have added support for generic read/write which uses Linux's disk
>>caching. This should (??has the potential to??) improve performance on
>>unaligned writes.
>>
>>This feature is compile-time selectable (CONFIG_YAFFS_GENERIC_RW). If you
>>comment out the define in the Makefile you get direct read/write. You get
>>to play & choose.
>>
>>Enjoy.
>>
>>-- Charles
>>
Yaffsers,
I have a bit played with it today and I have found that it have the same correctness
robustness as the direct way.
One minor problem is that when a file written his content is not put in the cache.
The following patchlet for yaffs_commit_write() solve it.
--- yaffs-20020821/yaffs_fs.c Wed Aug 21 22:03:04 2002
+++ yaffs/yaffs_fs.c Thu Aug 22 22:34:35 2002
@@ -320,27 +320,31 @@ static int yaffs_prepare_write(struct fi
static int yaffs_commit_write(struct file *f, struct page *pg, unsigned offset, unsigned to)
{
void *addr = page_address(pg) + offset;
loff_t pos = (((loff_t)pg->index) << PAGE_CACHE_SHIFT) + offset;
int nBytes = to - offset;
int nWritten;
unsigned spos = pos;
unsigned saddr = addr;
T((KERN_DEBUG"yaffs_commit_write addr %x pos %x nBytes %d\n",saddr,spos,nBytes));
nWritten = yaffs_file_write(f,addr, nBytes, &pos);
if(nWritten != nBytes)
{
T((KERN_DEBUG"yaffs_commit_write not same size nWritten %d nBytes %d\n",nWritten,nBytes));
SetPageError(pg);
ClearPageUptodate(pg);
}
+ else
+ {
+ SetPageUptodate(pg);
+ }
T((KERN_DEBUG"yaffs_commit_write returning %d\n",nWritten));
return nWritten;
}
---------------------------------------------------------------------------------------
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.