• Rafael J. Wysocki's avatar
    [PATCH] swsusp: use partition device and offset to identify swap areas · 915bae9e
    Rafael J. Wysocki authored
    The Linux kernel handles swap files almost in the same way as it handles swap
    partitions and there are only two differences between these two types of swap
    areas:
    
    (1) swap files need not be contiguous,
    
    (2) the header of a swap file is not in the first block of the partition
        that holds it.  From the swsusp's point of view (1) is not a problem,
        because it is already taken care of by the swap-handling code, but (2) has
        to be taken into consideration.
    
    In principle the location of a swap file's header may be determined with the
    help of appropriate filesystem driver.  Unfortunately, however, it requires
    the filesystem holding the swap file to be mounted, and if this filesystem is
    journaled, it cannot be mounted during a resume from disk.  For this reason we
    need some other means by which swap areas can be identified.
    
    For example, to identify a swap area we can use the partition that holds the
    area and the offset from the beginning of this partition at which the swap
    header is located.
    
    The following patch allows swsusp to identify swap areas this way.  It changes
    swap_type_of() so that it takes an additional argument representing an offset
    of the swap header within the partition represented by its first argument.
    Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Acked-by: default avatarPavel Machek <pavel@ucw.cz>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    915bae9e
swapfile.c 43.5 KB