Author: manu
Date: Thu Nov 30 14:06:54 2017
New Revision: 326395
URL: https://svnweb.freebsd.org/changeset/base/326395

Log:
  r326394 is calling malloc with M_WAITOK under a lock, revert for now
  
  Reported by:  andrew

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:38:42 2017        
(r326394)
+++ head/sys/fs/devfs/devfs_dir.c       Thu Nov 30 14:06:54 2017        
(r326395)
@@ -98,18 +98,19 @@ 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-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to