From 2ca1219c7779fb4007e545a8945ccd896b2db9b4 Mon Sep 17 00:00:00 2001 From: Evgeniy Dushistov Date: Sun, 25 Jun 2006 05:47:26 -0700 Subject: [PATCH] --- yaml --- r: 29679 b: refs/heads/master c: 2e006393ba5b599d9c43f94f8d8989e68131433e h: refs/heads/master i: 29677: 93fad0db49de9e97c27ce1c831f45293ebdccfd5 29675: 17ead4caa45ad52813ffca9983b1b0a6d3c95429 29671: 5c4163005120ead529700107310d11841a1ebe82 29663: 7f4d897d096fd04ccdfc4a6761e3643cf1a4b106 v: v3 --- [refs] | 2 +- trunk/fs/ufs/balloc.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 04836ca44407..803331c5125b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 50aa4eb0b978f4a0283471c776ed812269ac8af5 +refs/heads/master: 2e006393ba5b599d9c43f94f8d8989e68131433e diff --git a/trunk/fs/ufs/balloc.c b/trunk/fs/ufs/balloc.c index 62193db34346..ac709e70f646 100644 --- a/trunk/fs/ufs/balloc.c +++ b/trunk/fs/ufs/balloc.c @@ -156,7 +156,7 @@ void ufs_free_blocks(struct inode *inode, unsigned fragment, unsigned count) bit = ufs_dtogd (fragment); if (cgno >= uspi->s_ncg) { ufs_panic (sb, "ufs_free_blocks", "freeing blocks are outside device"); - goto failed; + goto failed_unlock; } end_bit = bit + count; if (end_bit > uspi->s_fpg) { @@ -167,11 +167,11 @@ void ufs_free_blocks(struct inode *inode, unsigned fragment, unsigned count) ucpi = ufs_load_cylinder (sb, cgno); if (!ucpi) - goto failed; + goto failed_unlock; ucg = ubh_get_ucg (UCPI_UBH(ucpi)); if (!ufs_cg_chkmagic(sb, ucg)) { ufs_panic (sb, "ufs_free_blocks", "internal error, bad magic number on cg %u", cgno); - goto failed; + goto failed_unlock; } for (i = bit; i < end_bit; i += uspi->s_fpb) { @@ -210,8 +210,9 @@ void ufs_free_blocks(struct inode *inode, unsigned fragment, unsigned count) UFSD("EXIT\n"); return; -failed: +failed_unlock: unlock_super (sb); +failed: UFSD("EXIT (FAILED)\n"); return; }