Signed-off-by: Charles Manning <cdhmanning@gmail.com>
if( writeRequested && !(obj->yst_mode & S_IWRITE))
openDenied = 1;
if( writeRequested && !(obj->yst_mode & S_IWRITE))
openDenied = 1;
+ if( !errorReported && writeRequested &&
+ obj->my_dev->read_only){
+ openDenied = 1;
+ yaffsfs_SetError(-EROFS);
+ errorReported = 1;
+ }
+
if(openDenied && !errorReported ) {
/* Error if the file exists but permissions are refused. */
yaffsfs_SetError(-EACCES);
if(openDenied && !errorReported ) {
/* Error if the file exists but permissions are refused. */
yaffsfs_SetError(-EACCES);
if(!obj && dir && !errorReported && (oflag & O_CREAT)) {
/* Let's see if we can create this file if it does not exist. */
if(dir->my_dev->read_only){
if(!obj && dir && !errorReported && (oflag & O_CREAT)) {
/* Let's see if we can create this file if it does not exist. */
if(dir->my_dev->read_only){
- yaffsfs_SetError(-EINVAL);
+ yaffsfs_SetError(-EROFS);
errorReported = 1;
} else
obj = yaffs_create_file(dir,name,mode,0,0);
errorReported = 1;
} else
obj = yaffs_create_file(dir,name,mode,0,0);
else if(!obj_dir || !lnk_dir || !obj)
yaffsfs_SetError(-ENOENT);
else if(obj->my_dev->read_only)
else if(!obj_dir || !lnk_dir || !obj)
yaffsfs_SetError(-ENOENT);
else if(obj->my_dev->read_only)
- yaffsfs_SetError(-EINVAL);
+ yaffsfs_SetError(-EROFS);
else if(lnk)
yaffsfs_SetError(-EEXIST);
else if(lnk_dir->my_dev != obj->my_dev)
else if(lnk)
yaffsfs_SetError(-EEXIST);
else if(lnk_dir->my_dev != obj->my_dev)