Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753247AbbHRUGP (ORCPT ); Tue, 18 Aug 2015 16:06:15 -0400 Received: from mail-qg0-f47.google.com ([209.85.192.47]:34589 "EHLO mail-qg0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751479AbbHRUGN (ORCPT ); Tue, 18 Aug 2015 16:06:13 -0400 From: Dan Streetman To: Seth Jennings , Andrew Morton Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Sergey Senozhatsky , kbuild test robot , Dan Streetman Subject: [PATCH 1/2] zpool: define and use max type length Date: Tue, 18 Aug 2015 16:06:00 -0400 Message-Id: <1439928361-31294-1-git-send-email-ddstreet@ieee.org> X-Mailer: git-send-email 2.1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2976 Lines: 101 Add ZPOOL_MAX_TYPE_NAME define, and change zpool_driver *type field to type[ZPOOL_MAX_TYPE_NAME]. Remove redundant type field from struct zpool and use zpool->driver->type instead. The define will be used by zswap for its zpool param type name length. Signed-off-by: Dan Streetman --- include/linux/zpool.h | 5 +++-- mm/zpool.c | 11 ++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/include/linux/zpool.h b/include/linux/zpool.h index 42f8ec9..cf70312 100644 --- a/include/linux/zpool.h +++ b/include/linux/zpool.h @@ -41,7 +41,7 @@ bool zpool_has_pool(char *type); struct zpool *zpool_create_pool(char *type, char *name, gfp_t gfp, const struct zpool_ops *ops); -char *zpool_get_type(struct zpool *pool); +const char *zpool_get_type(struct zpool *pool); void zpool_destroy_pool(struct zpool *pool); @@ -60,6 +60,7 @@ void zpool_unmap_handle(struct zpool *pool, unsigned long handle); u64 zpool_get_total_size(struct zpool *pool); +#define ZPOOL_MAX_TYPE_NAME 64 /** * struct zpool_driver - driver implementation for zpool @@ -78,7 +79,7 @@ u64 zpool_get_total_size(struct zpool *pool); * with zpool. */ struct zpool_driver { - char *type; + char type[ZPOOL_MAX_TYPE_NAME]; struct module *owner; atomic_t refcount; struct list_head list; diff --git a/mm/zpool.c b/mm/zpool.c index 8f670d3..8a0ef86 100644 --- a/mm/zpool.c +++ b/mm/zpool.c @@ -18,8 +18,6 @@ #include struct zpool { - char *type; - struct zpool_driver *driver; void *pool; const struct zpool_ops *ops; @@ -79,7 +77,7 @@ static struct zpool_driver *zpool_get_driver(char *type) spin_lock(&drivers_lock); list_for_each_entry(driver, &drivers_head, list) { - if (!strcmp(driver->type, type)) { + if (!strncmp(driver->type, type, ZPOOL_MAX_TYPE_NAME)) { bool got = try_module_get(driver->owner); if (got) @@ -174,7 +172,6 @@ struct zpool *zpool_create_pool(char *type, char *name, gfp_t gfp, return NULL; } - zpool->type = driver->type; zpool->driver = driver; zpool->pool = driver->create(name, gfp, ops, zpool); zpool->ops = ops; @@ -208,7 +205,7 @@ struct zpool *zpool_create_pool(char *type, char *name, gfp_t gfp, */ void zpool_destroy_pool(struct zpool *zpool) { - pr_debug("destroying pool type %s\n", zpool->type); + pr_debug("destroying pool type %s\n", zpool->driver->type); spin_lock(&pools_lock); list_del(&zpool->list); @@ -228,9 +225,9 @@ void zpool_destroy_pool(struct zpool *zpool) * * Returns: The type of zpool. */ -char *zpool_get_type(struct zpool *zpool) +const char *zpool_get_type(struct zpool *zpool) { - return zpool->type; + return zpool->driver->type; } /** -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/