• Alasdair G Kergon's avatar
    [PATCH] dm snapshot: unify chunk_size · c51c2752
    Alasdair G Kergon authored
    Persistent snapshots currently store a private copy of the chunk size.
    Userspace also supplies the chunk size when loading a snapshot.  Ensure
    consistency by only storing the chunk_size in one place instead of two.
    
    Currently the two sizes will differ if the chunk size supplied by userspace
    does not match the chunk size an existing snapshot actually uses.  Amongst
    other problems, this causes an incorrect 'percentage full' to be reported.
    
    The patch ensures consistency by only storing the chunk_size in one place,
    removing it from struct pstore.  Some initialisation is delayed until the
    correct chunk_size is known.  If read_header() discovers that the wrong chunk
    size was supplied, the 'area' buffer (which the header already got read into)
    is reinitialised to the correct size.
    
    [akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled]
    Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    c51c2752
dm-snap.c 27.6 KB