bfs_write() called Volume::WriteCachedBlocksIfNecessary() also on uncached
files which might cause troubles with the VM file. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1061 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1178,7 +1178,7 @@ bfs_write(void *_ns, void *_node, void *_cookie, off_t pos, const void *buffer,
|
|||||||
// ToDo: should we better test for a change in the last_modified time only?
|
// ToDo: should we better test for a change in the last_modified time only?
|
||||||
if (cookie->last_size != inode->Size()
|
if (cookie->last_size != inode->Size()
|
||||||
&& system_time() > cookie->last_notification + INODE_NOTIFICATION_INTERVAL) {
|
&& system_time() > cookie->last_notification + INODE_NOTIFICATION_INTERVAL) {
|
||||||
notify_listener(B_STAT_CHANGED,volume->ID(),0,0,inode->ID(),NULL);
|
notify_listener(B_STAT_CHANGED, volume->ID(), 0, 0, inode->ID(), NULL);
|
||||||
cookie->last_size = inode->Size();
|
cookie->last_size = inode->Size();
|
||||||
cookie->last_notification = system_time();
|
cookie->last_notification = system_time();
|
||||||
}
|
}
|
||||||
@@ -1187,7 +1187,8 @@ bfs_write(void *_ns, void *_node, void *_cookie, off_t pos, const void *buffer,
|
|||||||
// It's done here and not in Inode::WriteAt() so that it won't
|
// It's done here and not in Inode::WriteAt() so that it won't
|
||||||
// add to the duration of a transaction - it might even be a
|
// add to the duration of a transaction - it might even be a
|
||||||
// good idea to offload those calls to another thread
|
// good idea to offload those calls to another thread
|
||||||
volume->WriteCachedBlocksIfNecessary();
|
if ((inode->Flags() & INODE_NO_CACHE) == 0)
|
||||||
|
volume->WriteCachedBlocksIfNecessary();
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user