• Dan Streetman's avatar
    mm/zswap: provide unique zpool name · 32a4e169
    Dan Streetman authored
    Instead of using "zswap" as the name for all zpools created, add an
    atomic counter and use "zswap%x" with the counter number for each zpool
    created, to provide a unique name for each new zpool.
    
    As zsmalloc, one of the zpool implementations, requires/expects a unique
    name for each pool created, zswap should provide a unique name.  The
    zsmalloc pool creation does not fail if a new pool with a conflicting
    name is created, unless CONFIG_ZSMALLOC_STAT is enabled; in that case,
    zsmalloc pool creation fails with -ENOMEM.  Then zswap will be unable to
    change its compressor parameter if its zpool is zsmalloc; it also will
    be unable to change its zpool parameter back to zsmalloc, if it has any
    existing old zpool using zsmalloc with page(s) in it.  Attempts to
    change the parameters will result in failure to create the zpool.  This
    changes zswap to provide a unique name for each zpool creation.
    
    Fixes: f1c54846 ("zswap: dynamic pool creation")
    Signed-off-by: default avatarDan Streetman <ddstreet@ieee.org>
    Reported-by: default avatarSergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Reviewed-by: default avatarSergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Dan Streetman <dan.streetman@canonical.com>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    32a4e169
zswap.c 32.2 KB