[haiku-bugs] Re: [Haiku] #8889: Wrong data read from discarded block if transaction isn't flushed

  • From: "axeld" <trac@xxxxxxxxxxxx>
  • Date: Wed, 15 Aug 2012 18:25:56 -0000

#8889: Wrong data read from discarded block if transaction isn't flushed
-----------------------------+----------------------------
   Reporter:  ahenriksson    |      Owner:  axeld
       Type:  enhancement    |     Status:  new
   Priority:  normal         |  Milestone:  R1
  Component:  System/Kernel  |    Version:  R1/Development
 Resolution:                 |   Keywords:  block cache
 Blocked By:                 |   Blocking:
Has a Patch:  1              |   Platform:  All
-----------------------------+----------------------------
Changes (by axeld):

 * priority:  high => normal
 * type:  bug => enhancement
 * milestone:  R1/alpha4 => R1


Comment:

 AFAICT you are misusing block_cache_discard(): what the function tries to
 achieve is that the on disk block will not be written to anymore
 afterwards. While the block is removed when it is no longer used, it
 doesn't mean it's actually being removed. You are not supposed to mess
 with the disk directly when you are using the block cache -- you can't
 assume to find the actual on disk contents of that block after it has been
 discarded. From the POV of the block cache, the contents of that block are
 known to be irrelevant now.

 The current functionality is needed only to make sure that the file cache
 and the block cache do not interfere with each other.

 What is it that you are trying to do here? Why do you need to mess with
 the contents of the disk directly? In any case, if you need that
 functionality, you would need to add it.

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/8889#comment:4>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: