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);
 }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to