Moved the logic from bfs_close() to bfs_free_cookie() - apparently, doing
anything in bfs_close() does not really makes sense. Thanks to Ingo for pointing this out. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7429 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1346,6 +1346,18 @@ static int
|
|||||||
bfs_close(void *_ns, void *_node, void *_cookie)
|
bfs_close(void *_ns, void *_node, void *_cookie)
|
||||||
{
|
{
|
||||||
FUNCTION();
|
FUNCTION();
|
||||||
|
if (_ns == NULL || _node == NULL || _cookie == NULL)
|
||||||
|
return B_BAD_VALUE;
|
||||||
|
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
bfs_free_cookie(void *_ns, void *_node, void *_cookie)
|
||||||
|
{
|
||||||
|
FUNCTION();
|
||||||
|
|
||||||
if (_ns == NULL || _node == NULL || _cookie == NULL)
|
if (_ns == NULL || _node == NULL || _cookie == NULL)
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
|
|
||||||
@@ -1391,26 +1403,6 @@ bfs_close(void *_ns, void *_node, void *_cookie)
|
|||||||
notify_listener(B_STAT_CHANGED, volume->ID(), 0, 0, inode->ID(), NULL);
|
notify_listener(B_STAT_CHANGED, volume->ID(), 0, 0, inode->ID(), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
return B_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
|
||||||
bfs_free_cookie(void *_ns, void *_node, void *_cookie)
|
|
||||||
{
|
|
||||||
FUNCTION();
|
|
||||||
|
|
||||||
if (_ns == NULL || _node == NULL || _cookie == NULL)
|
|
||||||
return B_BAD_VALUE;
|
|
||||||
|
|
||||||
file_cookie *cookie = (file_cookie *)_cookie;
|
|
||||||
|
|
||||||
Volume *volume = (Volume *)_ns;
|
|
||||||
Inode *inode = (Inode *)_node;
|
|
||||||
|
|
||||||
if (cookie != NULL)
|
|
||||||
free(cookie);
|
|
||||||
|
|
||||||
if (inode->Flags() & INODE_NO_CACHE) {
|
if (inode->Flags() & INODE_NO_CACHE) {
|
||||||
volume->Pool().ReleaseBuffers();
|
volume->Pool().ReleaseBuffers();
|
||||||
inode->Node()->flags &= HOST_ENDIAN_TO_BFS_INT32(~INODE_NO_CACHE);
|
inode->Node()->flags &= HOST_ENDIAN_TO_BFS_INT32(~INODE_NO_CACHE);
|
||||||
@@ -1418,6 +1410,7 @@ bfs_free_cookie(void *_ns, void *_node, void *_cookie)
|
|||||||
// non-permanent flag which will be removed when the inode is loaded
|
// non-permanent flag which will be removed when the inode is loaded
|
||||||
// into memory.
|
// into memory.
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inode->Flags() & INODE_CHKBFS_RUNNING) {
|
if (inode->Flags() & INODE_CHKBFS_RUNNING) {
|
||||||
// "chkbfs" exited abnormally, so we have to stop it here...
|
// "chkbfs" exited abnormally, so we have to stop it here...
|
||||||
FATAL(("check process was aborted!\n"));
|
FATAL(("check process was aborted!\n"));
|
||||||
|
|||||||
Reference in New Issue
Block a user