From c7dc57457d4b12769f8b5671aec64247f56abefe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 4 Aug 2008 16:04:57 +0000 Subject: [PATCH] * We must call file_cache_disable() with O_NOCACHE also in bfs_create(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26796 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp index abc83527cd..022b407904 100644 --- a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp @@ -810,9 +810,16 @@ bfs_create(fs_volume* _volume, fs_vnode* _directory, const char* name, Transaction transaction(volume, directory->BlockNumber()); + Inode* inode; bool created; status_t status = Inode::Create(transaction, directory, name, - S_FILE | (mode & S_IUMSK), openMode, 0, &created, _vnodeID); + S_FILE | (mode & S_IUMSK), openMode, 0, &created, _vnodeID, &inode); + + // Disable the file cache, if requested? + if (status == B_OK && (openMode & O_NOCACHE) != 0 + && inode->FileCache() != NULL) { + status = file_cache_disable(inode->FileCache()); + } if (status >= B_OK) { transaction.Done();