changeset 280:c28a53b1d08f

Change yaffs_DeleteFile to yaffs_DeleteObject and improve symlink handling
author charles
date Thu, 05 Mar 2009 01:47:17 +0000
parents d76290a0b1ed
children 6d11517ae07f
files direct/yaffsfs.c
diffstat 1 files changed, 14 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/direct/yaffsfs.c
+++ b/direct/yaffsfs.c
@@ -630,7 +630,7 @@ int yaffs_close(int fd)
 		h->obj->inUse--;
 		if(h->obj->inUse <= 0 && h->obj->unlinked)
 		{
-			yaffs_DeleteFile(h->obj);
+			yaffs_DeleteObject(h->obj);
 		}
 		yaffsfs_PutHandle(fd);
 		retVal = 0;
@@ -1849,14 +1849,19 @@ int yaffs_symlink(const YCHAR *oldpath, 
 
 	yaffsfs_Lock();
 	parent = yaffsfs_FindDirectory(NULL,newpath,&name,0);
-	obj = yaffs_MknodSymLink(parent,name,mode,0,0,oldpath);
-	if(obj)
-	{
-		retVal = 0;
-	}
-	else
-	{
-		yaffsfs_SetError(-ENOSPC); // just assume no space for now
+	if(parent){
+		obj = yaffs_MknodSymLink(parent,name,mode,0,0,oldpath);
+		if(obj)
+		{
+			retVal = 0;
+		}
+		else
+		{
+			yaffsfs_SetError(-ENOSPC); // just assume no space for now
+			retVal = -1;
+		}
+	} else {
+		yaffsfs_SetError(-EINVAL);
 		retVal = -1;
 	}