+ mm-zswap-delay-the-initialization-of-zswap-v9.patch added to mm-unstable branch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled
     Subject: mm-zswap-delay-the-initialization-of-zswap-v9
has been added to the -mm mm-unstable branch.  Its filename is
     mm-zswap-delay-the-initialization-of-zswap-v9.patch

This patch will shortly appear at
     https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-zswap-delay-the-initialization-of-zswap-v9.patch

This patch will later appear in the mm-unstable branch at
    git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

Before you just go and hit "reply", please:
   a) Consider who else should be cc'ed
   b) Prefer to cc a suitable mailing list as well
   c) Ideally: find the original patch on the mailing list and do a
      reply-to-all to that, adding suitable additional cc's

*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***

The -mm tree is included into linux-next via the mm-everything
branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
and is updated there every 2-3 working days

------------------------------------------------------
From: Liu Shixin <liushixin2@xxxxxxxxxx>
Subject: mm-zswap-delay-the-initialization-of-zswap-v9
Date: Tue, 11 Apr 2023 17:36:32 +0800

fix some pattern problem suggested by Christoph

Link: https://lkml.kernel.org/r/20230411093632.822290-4-liushixin2@xxxxxxxxxx
Signed-off-by: Liu Shixin <liushixin2@xxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Cc: Dan Streetman <ddstreet@xxxxxxxx>
Cc: Nathan Chancellor <nathan@xxxxxxxxxx>
Cc: Seth Jennings <sjenning@xxxxxxxxxx>
Cc: Vitaly Wool <vitaly.wool@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 mm/zswap.c |   29 ++++++++++++++++++-----------
 1 file changed, 18 insertions(+), 11 deletions(-)

--- a/mm/zswap.c~mm-zswap-delay-the-initialization-of-zswap-v9
+++ a/mm/zswap.c
@@ -760,13 +760,22 @@ static void zswap_pool_put(struct zswap_
 * param callbacks
 **********************************/
 
+static bool zswap_pool_changed(const char *s, const struct kernel_param *kp)
+{
+	/* no change required */
+	if (!strcmp(s, *(char **)kp->arg) && zswap_has_pool)
+		return false;
+	return true;
+}
+
 /* val must be a null-terminated string */
 static int __zswap_param_set(const char *val, const struct kernel_param *kp,
 			     char *type, char *compressor)
 {
 	struct zswap_pool *pool, *put_pool = NULL;
 	char *s = strstrip((char *)val);
-	int ret;
+	int ret = 0;
+	bool new_pool = false;
 
 	mutex_lock(&zswap_init_lock);
 	switch (zswap_init_state) {
@@ -775,22 +784,20 @@ static int __zswap_param_set(const char
 		 * don't create a pool; that's done during init.
 		 */
 		ret = param_set_charp(s, kp);
-		mutex_unlock(&zswap_init_lock);
-		return ret;
+		break;
 	case ZSWAP_INIT_SUCCEED:
-		/* no change required */
-		if (!strcmp(s, *(char **)kp->arg) && zswap_has_pool) {
-			mutex_unlock(&zswap_init_lock);
-			return 0;
-		}
+		new_pool = zswap_pool_changed(s, kp);
 		break;
 	case ZSWAP_INIT_FAILED:
 		pr_err("can't set param, initialization failed\n");
-		mutex_unlock(&zswap_init_lock);
-		return -ENODEV;
+		ret = -ENODEV;
 	}
 	mutex_unlock(&zswap_init_lock);
 
+	/* no need to create a new pool, return directly */
+	if (!new_pool)
+		return ret;
+
 	if (!type) {
 		if (!zpool_has_pool(s)) {
 			pr_err("zpool %s not available\n", s);
@@ -881,7 +888,7 @@ static int zswap_enabled_param_set(const
 {
 	int ret = -ENODEV;
 
-	/*if this is load-time (pre-init) param setting, only set param.*/
+	/* if this is load-time (pre-init) param setting, only set param. */
 	if (system_state != SYSTEM_RUNNING)
 		return param_set_bool(val, kp);
 
_

Patches currently in -mm which might be from liushixin2@xxxxxxxxxx are

mm-zswap-remove-zswap_entry_cache_createdestroy-helper-function.patch
mm-zswap-replace-zswap_init_started-failed-with-zswap_init_state.patch
mm-zswap-delay-the-initialization-of-zswap.patch
mm-zswap-delay-the-initialization-of-zswap-v9.patch




[Index of Archives]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux