Module Name: src Committed By: maya Date: Thu Apr 6 03:21:01 UTC 2017
Modified Files: src/sys/ufs/lfs: lfs_inode.h lfs_segment.c lfs_subr.c Log Message: don't guard lfs_sbactive or lfs_log with splbio, lfs_lock is plenty. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/ufs/lfs/lfs_inode.h cvs rdiff -u -r1.268 -r1.269 src/sys/ufs/lfs/lfs_segment.c cvs rdiff -u -r1.91 -r1.92 src/sys/ufs/lfs/lfs_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/ufs/lfs/lfs_inode.h diff -u src/sys/ufs/lfs/lfs_inode.h:1.18 src/sys/ufs/lfs/lfs_inode.h:1.19 --- src/sys/ufs/lfs/lfs_inode.h:1.18 Thu Apr 6 02:38:08 2017 +++ src/sys/ufs/lfs/lfs_inode.h Thu Apr 6 03:21:01 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_inode.h,v 1.18 2017/04/06 02:38:08 maya Exp $ */ +/* $NetBSD: lfs_inode.h,v 1.19 2017/04/06 03:21:01 maya Exp $ */ /* from NetBSD: ulfs_inode.h,v 1.5 2013/06/06 00:51:50 dholland Exp */ /* from NetBSD: inode.h,v 1.72 2016/06/03 15:36:03 christos Exp */ @@ -238,10 +238,8 @@ extern int lfs_lognum; extern struct lfs_log_entry lfs_log[LFS_LOGLENGTH]; # define LFS_BWRITE_LOG(bp) lfs_bwrite_log((bp), __FILE__, __LINE__) # define LFS_ENTER_LOG(theop, thefile, theline, lbn, theflags, thepid) do {\ - int _s; \ \ mutex_enter(&lfs_lock); \ - _s = splbio(); \ lfs_log[lfs_lognum].op = theop; \ lfs_log[lfs_lognum].file = thefile; \ lfs_log[lfs_lognum].line = (theline); \ @@ -249,7 +247,6 @@ extern struct lfs_log_entry lfs_log[LFS_ lfs_log[lfs_lognum].block = (lbn); \ lfs_log[lfs_lognum].flags = (theflags); \ lfs_lognum = (lfs_lognum + 1) % LFS_LOGLENGTH; \ - splx(_s); \ mutex_exit(&lfs_lock); \ } while (0) Index: src/sys/ufs/lfs/lfs_segment.c diff -u src/sys/ufs/lfs/lfs_segment.c:1.268 src/sys/ufs/lfs/lfs_segment.c:1.269 --- src/sys/ufs/lfs/lfs_segment.c:1.268 Thu Apr 6 03:15:03 2017 +++ src/sys/ufs/lfs/lfs_segment.c Thu Apr 6 03:21:01 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_segment.c,v 1.268 2017/04/06 03:15:03 maya Exp $ */ +/* $NetBSD: lfs_segment.c,v 1.269 2017/04/06 03:21:01 maya Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.268 2017/04/06 03:15:03 maya Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.269 2017/04/06 03:21:01 maya Exp $"); #ifdef DEBUG # define vndebug(vp, str) do { \ @@ -2384,7 +2384,6 @@ lfs_writesuper(struct lfs *fs, daddr_t d { struct buf *bp; struct vnode *devvp = VTOI(fs->lfs_ivnode)->i_devvp; - int s; ASSERT_MAYBE_SEGLOCK(fs); if (fs->lfs_is64) { @@ -2398,13 +2397,11 @@ lfs_writesuper(struct lfs *fs, daddr_t d * So, block here if a superblock write is in progress. */ mutex_enter(&lfs_lock); - s = splbio(); while (fs->lfs_sbactive) { mtsleep(&fs->lfs_sbactive, PRIBIO+1, "lfs sb", 0, &lfs_lock); } fs->lfs_sbactive = daddr; - splx(s); mutex_exit(&lfs_lock); /* Set timestamp of this version of the superblock */ Index: src/sys/ufs/lfs/lfs_subr.c diff -u src/sys/ufs/lfs/lfs_subr.c:1.91 src/sys/ufs/lfs/lfs_subr.c:1.92 --- src/sys/ufs/lfs/lfs_subr.c:1.91 Thu Apr 6 03:12:48 2017 +++ src/sys/ufs/lfs/lfs_subr.c Thu Apr 6 03:21:01 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_subr.c,v 1.91 2017/04/06 03:12:48 maya Exp $ */ +/* $NetBSD: lfs_subr.c,v 1.92 2017/04/06 03:21:01 maya Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_subr.c,v 1.91 2017/04/06 03:12:48 maya Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_subr.c,v 1.92 2017/04/06 03:21:01 maya Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -378,7 +378,7 @@ lfs_unmark_dirop(struct lfs *fs) static void lfs_auto_segclean(struct lfs *fs) { - int i, error, s, waited; + int i, error, waited; ASSERT_SEGLOCK(fs); /* @@ -398,11 +398,9 @@ lfs_auto_segclean(struct lfs *fs) /* Make sure the sb is written before we clean */ mutex_enter(&lfs_lock); - s = splbio(); while (waited == 0 && fs->lfs_sbactive) mtsleep(&fs->lfs_sbactive, PRIBIO+1, "lfs asb", 0, &lfs_lock); - splx(s); mutex_exit(&lfs_lock); waited = 1;