From 99a86b3ba4859f536d08c70f6797385fc94f2653 Mon Sep 17 00:00:00 2001 From: Charles Manning Date: Mon, 29 Nov 2010 14:55:36 +1300 Subject: [PATCH] yaffs direct: Fix more EROFS handling Signed-off-by: Charles Manning --- direct/yaffsfs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/direct/yaffsfs.c b/direct/yaffsfs.c index e212d0b..577cb36 100644 --- a/direct/yaffsfs.c +++ b/direct/yaffsfs.c @@ -1092,9 +1092,12 @@ int yaffsfs_do_write(int fd, const void *vbuf, unsigned int nbyte, int isPwrite, /* bad handle */ yaffsfs_SetError(-EBADF); totalWritten = -1; - } else if( h && obj && (!h->writing || obj->my_dev->read_only)){ + } else if(!h->writing){ yaffsfs_SetError(-EINVAL); totalWritten=-1; + } else if(obj->my_dev->read_only){ + yaffsfs_SetError(-EROFS); + totalWritten=-1; } else { if(h->append) startPos = yaffs_get_obj_length(obj); @@ -1316,7 +1319,7 @@ int yaffsfs_DoUnlink(const YCHAR *path,int isDirectory) else if(!obj) yaffsfs_SetError(-ENOENT); else if(obj->my_dev->read_only) - yaffsfs_SetError(-EINVAL); + yaffsfs_SetError(-EROFS); else if(!isDirectory && obj->variant_type == YAFFS_OBJECT_TYPE_DIRECTORY) yaffsfs_SetError(-EISDIR); else if(isDirectory && obj->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY) -- 2.30.2