zram/xvmalloc: combine duplicate block delete code
authorRobert Jennings <rcj@linux.vnet.ibm.com>
Fri, 28 Jan 2011 15:01:55 +0000 (09:01 -0600)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 4 Feb 2011 21:29:12 +0000 (13:29 -0800)
commit939b3f0b1415755d534a20f4067e6b367e1e4021
tree73cdbaa2517bc6dcab4621d5de2be09949e48c55
parent2787f959d6c5fb258d964218ac75346019f49ee9
zram/xvmalloc: combine duplicate block delete code

This patch eliminates duplicate code.  The remove_block_head function
is a special case of remove_block which can be contained in remove_block
without confusion.

The portion of code in remove_block_head which was noted as "DEBUG ONLY"
is now mandatory.  Doing this provides consistent management of the double
linked list of blocks under a freelist and makes this consolidation
of delete block code safe.  The first and last blocks will have NULL
pointers in their previous and next page pointers respectively.

Additionally, any time a block is removed from a free list the next and
previous pointers will be set to NULL to avoid misuse outside xvmalloc.

Signed-off-by: Robert Jennings <rcj@linux.vnet.ibm.com>
Reviewed-by: Pekka Enberg <penberg@kernel.org>
Acked-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/zram/xvmalloc.c