From a931c76b3a46d1884e985a3bfc82b947521dab97 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sun, 8 Jan 2017 17:14:10 -0500 Subject: Do some debug and preparatory work for ramcache and playlist The file system rework introduced incompatibility between dircache and the tagcache ramcache and playlist dircache path caching. This update makes changes to filesystem code to reintegrate all that. It also fixes a couple bugs that were found when vetting all the code. The filestream cache was being reset without regard to the stream even if it was shared in write mode (made work of .playlist_control). Better handling of unmounting gives files a better go at force-closing them without risk to disk integrity. Did some miscellaneous pedantic changes. Improved efficiency of testing a file's existence (a little) since the path parser will be shared between file code and parsing for the sake of finding dircache references, not duplicated as before. This commit doesn't reenable said items just for the sake of keeping changes separate and related. Plan for the next is to enable dircache again for the playlists (easy peasy) and reenable tagcache ramcache but *without* the dircache path caching because it's rather substantial to change in itself. The ramcache will still function without dircache. Change-Id: I7e2a9910b866251fa8333e1275f72fcfc8425d2d --- firmware/common/dir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'firmware/common/dir.c') diff --git a/firmware/common/dir.c b/firmware/common/dir.c index da798c71d5..59f7bd747a 100644 --- a/firmware/common/dir.c +++ b/firmware/common/dir.c @@ -56,7 +56,7 @@ static struct dirstr_desc * get_dirstr(DIR *dirp) { errnum = EFAULT; } - else if (dir->stream.flags == FV_NONEXIST) + else if (dir->stream.flags & FD_NONEXIST) { DEBUGF("dir #%d: nonexistant device\n", (int)(dir - open_streams)); errnum = ENXIO; -- cgit v1.2.3