[dm-devel] Patchset 2.4.20-dm-9

Joe Thornber joe at fib011235813.fsnet.co.uk
Tue Feb 25 08:53:02 UTC 2003


http://people.sistina.com/~thornber/patches/2.4-stable/2.4.20/2.4.20-dm-9.tar.bz2

Changes since 2.4.20-dm-8
-------------------------

Revision 48:
  In snapshot_ctr(), if the call to register_snapshot() fails, we need to unlock
  the origin's filesystem (if the VFS-lock patch has been applied).
  
  [Kevin Corry]

Revision 49:
  In persistent_prepare(), when incrementing the next_free field and checking
  for the location for the next metadata area, it doesn't seem to account for
  the header chunk at the beginning of the cow device.
  
  For example: 
     chunk_size = 32 (16k)
     exceptions_per_area = 1024
     stride = 1025
  
     The header is chunk 0, the first metadata area is chunk 1, and the first
     data area is chunks 2 through 1025. When next_free equals 1024 (the second-
     to-last data chunk in the first area), it will be incremented to 1025, then
     mod'd with stride to get 0, and then incremented again to 1026. This
     effectively skips the last data chunk in the first data area and sets
     next_free to the chunk for the second metadata area. I'm guessing this
     will eventually look like data corruption if the snapshot tries to read
     data from that chunk, since it will eventually be overwritten by metadata.
  
  This patch corrects this by checking for a mod value of 1, instead of 0.
  Another possible solution would be to change the prefix-increment to a
  postfix-increment.  [Kevin Corry]




More information about the dm-devel mailing list