Module Name: src Committed By: andvar Date: Mon Jul 19 21:04:39 UTC 2021
Modified Files: src/sys/ufs/chfs: chfs_build.c chfs_write.c Log Message: Release mutexes in few more places on failure path. Reviewed them in chfs code after fixing PR kern/56242. ok riastradh To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/ufs/chfs/chfs_build.c \ src/sys/ufs/chfs/chfs_write.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/chfs/chfs_build.c diff -u src/sys/ufs/chfs/chfs_build.c:1.5 src/sys/ufs/chfs/chfs_build.c:1.6 --- src/sys/ufs/chfs/chfs_build.c:1.5 Fri Oct 19 12:44:39 2012 +++ src/sys/ufs/chfs/chfs_build.c Mon Jul 19 21:04:39 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: chfs_build.c,v 1.5 2012/10/19 12:44:39 ttoth Exp $ */ +/* $NetBSD: chfs_build.c,v 1.6 2021/07/19 21:04:39 andvar Exp $ */ /*- * Copyright (c) 2010 Department of Software Engineering, @@ -252,8 +252,10 @@ chfs_build_filesystem(struct chfs_mount if (chmp->chm_nextblock) { err = chfs_close_eraseblock(chmp, chmp->chm_nextblock); - if (err) + if (err) { + mutex_exit(&chmp->chm_lock_mountfields); return err; + } } chmp->chm_nextblock = &chmp->chm_blocks[i]; } else { @@ -261,8 +263,10 @@ chfs_build_filesystem(struct chfs_mount * dirty and put it on a list */ err = chfs_close_eraseblock(chmp, &chmp->chm_blocks[i]); - if (err) + if (err) { + mutex_exit(&chmp->chm_lock_mountfields); return err; + } } break; case CHFS_BLK_STATE_ALLDIRTY: Index: src/sys/ufs/chfs/chfs_write.c diff -u src/sys/ufs/chfs/chfs_write.c:1.5 src/sys/ufs/chfs/chfs_write.c:1.6 --- src/sys/ufs/chfs/chfs_write.c:1.5 Fri Oct 19 12:44:39 2012 +++ src/sys/ufs/chfs/chfs_write.c Mon Jul 19 21:04:39 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: chfs_write.c,v 1.5 2012/10/19 12:44:39 ttoth Exp $ */ +/* $NetBSD: chfs_write.c,v 1.6 2021/07/19 21:04:39 andvar Exp $ */ /*- * Copyright (c) 2010 Department of Software Engineering, @@ -438,8 +438,10 @@ chfs_do_link(struct chfs_inode *ip, stru /* update vnode information */ error = chfs_write_flash_vnode(chmp, ip, ALLOC_NORMAL); - if (error) + if (error) { + mutex_exit(&chmp->chm_lock_mountfields); return error; + } /* write out the new dirent */ error = chfs_write_flash_dirent(chmp,