yaffs direct: Fix yaffs_symlink error reporting for EEXIST
[yaffs2.git] / direct / yaffsfs.c
index 753bf4fa63c5d14c5dab03931b8949b53840bbb5..8a0d66cfef80736a7b808e25b1ee2bfe4dc6d467 100644 (file)
@@ -2491,10 +2491,10 @@ int yaffs_symlink(const YCHAR *oldpath, const YCHAR *newpath)
                obj = yaffs_create_symlink(parent,name,mode,0,0,oldpath);
                if(obj)
                        retVal = 0;
-               else{
-                       yaffsfs_SetError(-ENOSPC); /* just assume no space for now */
-                       retVal = -1;
-               }
+               else if (yaffsfs_FindObject(NULL,newpath,0,0, NULL))
+                       yaffsfs_SetError(-EEXIST);
+               else
+                       yaffsfs_SetError(-ENOSPC);
        }
 
        yaffsfs_Unlock();