X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Fyaffsfs.c;h=b39524719491d87469cdb198a0c6f0e40896690a;hp=914e714b412ec2ef587b6142b779a6dc99c8f09c;hb=751cba724040d777d1768dd5d4997039962d2608;hpb=538f08e54c0d397762caaf029c7c289b8aec76a0 diff --git a/direct/yaffsfs.c b/direct/yaffsfs.c index 914e714..b395247 100644 --- a/direct/yaffsfs.c +++ b/direct/yaffsfs.c @@ -25,7 +25,7 @@ #endif -const char *yaffsfs_c_version="$Id: yaffsfs.c,v 1.8 2006-02-08 22:38:24 charles Exp $"; +const char *yaffsfs_c_version="$Id: yaffsfs.c,v 1.10 2006-03-08 07:59:20 charles Exp $"; // configurationList is the list of devices that are supported static yaffsfs_DeviceConfiguration *yaffsfs_configurationList; @@ -999,13 +999,14 @@ int yaffs_fchmod(int fd, mode_t mode) int yaffs_mkdir(const char *path, mode_t mode) { yaffs_Object *parent = NULL; - yaffs_Object *dir; + yaffs_Object *dir = NULL; char *name; int retVal= -1; yaffsfs_Lock(); parent = yaffsfs_FindDirectory(NULL,path,&name,0); - dir = yaffs_MknodDirectory(parent,name,mode,0,0); + if(parent) + dir = yaffs_MknodDirectory(parent,name,mode,0,0); if(dir) { retVal = 0; @@ -1075,6 +1076,9 @@ int yaffs_unmount(const char *path) { int i; int inUse; + + yaffs_FlushEntireDeviceCache(dev); + for(i = inUse = 0; i < YAFFSFS_N_HANDLES && !inUse; i++) { if(yaffsfs_handle[i].inUse && yaffsfs_handle[i].obj->myDev == dev)