Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Nov 2017 12:38:42 +0000 (UTC)
From:      Emmanuel Vadot <manu@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r326394 - head/sys/fs/devfs
Message-ID:  <201711301238.vAUCcgrC091396@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: manu
Date: Thu Nov 30 12:38:42 2017
New Revision: 326394
URL: https://svnweb.freebsd.org/changeset/base/326394

Log:
  devfs: Avoid a malloc/free if we just need to increment the refcount
  
  MFC after:	1 week
  Sponsored by:	Gandi.net

Modified:
  head/sys/fs/devfs/devfs_dir.c

Modified: head/sys/fs/devfs/devfs_dir.c
==============================================================================
--- head/sys/fs/devfs/devfs_dir.c	Thu Nov 30 12:22:15 2017	(r326393)
+++ head/sys/fs/devfs/devfs_dir.c	Thu Nov 30 12:38:42 2017	(r326394)
@@ -98,19 +98,18 @@ devfs_dir_ref(const char *dir)
 	if (*dir == '\0')
 		return;
 
-	dle_new = malloc(sizeof(*dle), M_DEVFS4, M_WAITOK);
-	dle_new->dir = strdup(dir, M_DEVFS4);
-	dle_new->refcnt = 1;
-
 	mtx_lock(&dirlist_mtx);
 	dle = devfs_dir_findent_locked(dir);
 	if (dle != NULL) {
 		dle->refcnt++;
 		mtx_unlock(&dirlist_mtx);
-		free(dle_new->dir, M_DEVFS4);
-		free(dle_new, M_DEVFS4);
 		return;
 	}
+
+	dle_new = malloc(sizeof(*dle), M_DEVFS4, M_WAITOK);
+	dle_new->dir = strdup(dir, M_DEVFS4);
+	dle_new->refcnt = 1;
+
 	LIST_INSERT_HEAD(&devfs_dirlist, dle_new, link);
 	mtx_unlock(&dirlist_mtx);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711301238.vAUCcgrC091396>