• Lou Langholtz's avatar
    [PATCH] fix nbd driver for 2.5 block layer · d35d0b25
    Lou Langholtz authored
    This makes NBD work with the new linux 2.5 block layer design.
    Specifically, it fixes memory corruption that results from module
    removal and possible memory corruption from sending or receiving disk
    data from the server.
    
    It essentially rolls together the changes from two of the last patchlets
    that I emailed: the fix for module removal & the fix for incorrect
    struct bio usage.  I believe it's wisest to roll these both together
    into this one patch since they both deal with making NBD work better
    with the 2.5 linux block layer design and without either of which, it's
    possible that NBD will corrupt memory.
    
    Other changes I'd like to see introduced (like in the earlier jumbo
    patch) meanwhile are feature enhancements so they can wait.  This patch
    also should address all the very helpful concerns that have been raised
    so far.  Particularly:
    
    1. that the very first submitted NBD patch was broken down [Andrew]
    2. that only 1 spinlock is used for all the NBD request_queue structures
       used [Jens,Al]
    3. that kmap() is used in case of highmem pages [Jens]
    4. that the allocation of request_queue is dynamic and seperate from
       other allocated objects [Al]
    d35d0b25
nbd.c 16.8 KB