this is straightforward.

filesystems only operate on behalf of processes, and these pools
are initted with PR_WAITOK. its reasonable to assume IPL_NONE.

ok?

Index: ufs/ext2fs/ext2fs_vfsops.c
===================================================================
RCS file: /cvs/src/sys/ufs/ext2fs/ext2fs_vfsops.c,v
retrieving revision 1.85
diff -u -p -r1.85 ext2fs_vfsops.c
--- ufs/ext2fs/ext2fs_vfsops.c  14 Mar 2015 03:38:52 -0000      1.85
+++ ufs/ext2fs/ext2fs_vfsops.c  26 Feb 2016 13:35:02 -0000
@@ -95,8 +95,10 @@ ext2fs_init(struct vfsconf *vfsp)
 {
        pool_init(&ext2fs_inode_pool, sizeof(struct inode), 0, 0, PR_WAITOK,
            "ext2inopl", NULL);
+       pool_setipl(&ext2fs_inode_pool, IPL_NONE);
        pool_init(&ext2fs_dinode_pool, sizeof(struct ext2fs_dinode), 0, 0,
            PR_WAITOK, "ext2dinopl", NULL);
+       pool_setipl(&ext2fs_dinode_pool, IPL_NONE);
 
        return (ufs_init(vfsp));
 }
Index: ufs/ffs/ffs_softdep.c
===================================================================
RCS file: /cvs/src/sys/ufs/ffs/ffs_softdep.c,v
retrieving revision 1.131
diff -u -p -r1.131 ffs_softdep.c
--- ufs/ffs/ffs_softdep.c       9 Jan 2015 05:01:57 -0000       1.131
+++ ufs/ffs/ffs_softdep.c       26 Feb 2016 13:35:02 -0000
@@ -1177,32 +1177,46 @@ softdep_initialize(void)
        timeout_set(&proc_waiting_timeout, pause_timer, NULL);
        pool_init(&pagedep_pool, sizeof(struct pagedep), 0, 0, PR_WAITOK,
            "pagedep", NULL);
+       pool_setipl(&pagedep_pool, IPL_NONE);
        pool_init(&inodedep_pool, sizeof(struct inodedep), 0, 0, PR_WAITOK,
            "inodedep", NULL);
+       pool_setipl(&inodedep_pool, IPL_NONE);
        pool_init(&newblk_pool, sizeof(struct newblk), 0, 0, PR_WAITOK,
            "newblk", NULL);
+       pool_setipl(&newblk_pool, IPL_NONE);
        pool_init(&bmsafemap_pool, sizeof(struct bmsafemap), 0, 0, PR_WAITOK,
            "bmsafemap", NULL);
+       pool_setipl(&bmsafemap_pool, IPL_NONE);
        pool_init(&allocdirect_pool, sizeof(struct allocdirect), 0, 0, 
PR_WAITOK,
            "allocdir", NULL);
+       pool_setipl(&allocdirect_pool, IPL_NONE);
        pool_init(&indirdep_pool, sizeof(struct indirdep), 0, 0, PR_WAITOK,
            "indirdep", NULL);
+       pool_setipl(&indirdep_pool, IPL_NONE);
        pool_init(&allocindir_pool, sizeof(struct allocindir), 0, 0, PR_WAITOK,
            "allocindir", NULL);
+       pool_setipl(&allocindir_pool, IPL_NONE);
        pool_init(&freefrag_pool, sizeof(struct freefrag), 0, 0, PR_WAITOK,
            "freefrag", NULL);
+       pool_setipl(&freefrag_pool, IPL_NONE);
        pool_init(&freeblks_pool, sizeof(struct freeblks), 0, 0, PR_WAITOK,
            "freeblks", NULL);
+       pool_setipl(&freeblks_pool, IPL_NONE);
        pool_init(&freefile_pool, sizeof(struct freefile), 0, 0, PR_WAITOK,
            "freefile", NULL);
+       pool_setipl(&freefile_pool, IPL_NONE);
        pool_init(&diradd_pool, sizeof(struct diradd), 0, 0, PR_WAITOK,
            "diradd", NULL);
+       pool_setipl(&diradd_pool, IPL_NONE);
        pool_init(&mkdir_pool, sizeof(struct mkdir), 0, 0, PR_WAITOK,
            "mkdir", NULL);
+       pool_setipl(&mkdir_pool, IPL_NONE);
        pool_init(&dirrem_pool, sizeof(struct dirrem), 0, 0, PR_WAITOK,
            "dirrem", NULL);
+       pool_setipl(&dirrem_pool, IPL_NONE);
        pool_init(&newdirblk_pool, sizeof(struct newdirblk), 0, 0, PR_WAITOK,
            "newdirblk", NULL);
+       pool_setipl(&newdirblk_pool, IPL_NONE);
 }
 
 /*
Index: ufs/ffs/ffs_vfsops.c
===================================================================
RCS file: /cvs/src/sys/ufs/ffs/ffs_vfsops.c,v
retrieving revision 1.150
diff -u -p -r1.150 ffs_vfsops.c
--- ufs/ffs/ffs_vfsops.c        12 Jan 2016 11:41:00 -0000      1.150
+++ ufs/ffs/ffs_vfsops.c        26 Feb 2016 13:35:02 -0000
@@ -1477,11 +1477,14 @@ ffs_init(struct vfsconf *vfsp)
 
        pool_init(&ffs_ino_pool, sizeof(struct inode), 0, 0, PR_WAITOK,
            "ffsino", NULL);
+       pool_setipl(&ffs_ino_pool, IPL_NONE);
        pool_init(&ffs_dinode1_pool, sizeof(struct ufs1_dinode), 0, 0,
            PR_WAITOK, "dino1pl", NULL);
+       pool_setipl(&ffs_dinode1_pool, IPL_NONE);
 #ifdef FFS2
        pool_init(&ffs_dinode2_pool, sizeof(struct ufs2_dinode), 0, 0,
            PR_WAITOK, "dino2pl", NULL);
+       pool_setipl(&ffs_dinode2_pool, IPL_NONE);
 #endif
 
        softdep_initialize();
Index: ufs/ufs/ufs_dirhash.c
===================================================================
RCS file: /cvs/src/sys/ufs/ufs/ufs_dirhash.c,v
retrieving revision 1.33
diff -u -p -r1.33 ufs_dirhash.c
--- ufs/ufs/ufs_dirhash.c       14 Mar 2015 03:38:53 -0000      1.33
+++ ufs/ufs/ufs_dirhash.c       26 Feb 2016 13:35:02 -0000
@@ -1049,6 +1049,7 @@ ufsdirhash_init(void)
 {
        pool_init(&ufsdirhash_pool, DH_NBLKOFF * sizeof(doff_t), 0, 0,
            PR_WAITOK, "dirhash", NULL);
+       pool_setipl(&ufsdirhash_pool, IPL_NONE);
        mtx_init(&ufsdirhash_mtx, IPL_NONE);
        arc4random_buf(&ufsdirhash_key, sizeof(ufsdirhash_key));
        TAILQ_INIT(&ufsdirhash_list);

Reply via email to