svn commit: r250897 - head/sys/ufs/ffs
Kirk McKusick
mckusick at FreeBSD.org
Wed May 22 00:57:23 UTC 2013
Author: mckusick
Date: Wed May 22 00:57:22 2013
New Revision: 250897
URL: http://svnweb.freebsd.org/changeset/base/250897
Log:
Add missing buffer releases (brelse) after bread calls that return
an error. One could argue that returning a buffer even when it is
not valid is incorrect, but bread has always returned a buffer
valid or not.
Reviewed by: kib
MFC after: 2 weeks
Modified:
head/sys/ufs/ffs/ffs_softdep.c
Modified: head/sys/ufs/ffs/ffs_softdep.c
==============================================================================
--- head/sys/ufs/ffs/ffs_softdep.c Wed May 22 00:54:57 2013 (r250896)
+++ head/sys/ufs/ffs/ffs_softdep.c Wed May 22 00:57:22 2013 (r250897)
@@ -9362,13 +9362,16 @@ clear_unlinked_inodedep(inodedep)
if (idp && (idp->id_state & UNLINKNEXT))
pino = idp->id_ino;
FREE_LOCK(&lk);
- if (pino == 0)
+ if (pino == 0) {
bp = getblk(ump->um_devvp, btodb(fs->fs_sblockloc),
(int)fs->fs_sbsize, 0, 0, 0);
- else
+ } else {
error = bread(ump->um_devvp,
fsbtodb(fs, ino_to_fsba(fs, pino)),
(int)fs->fs_bsize, NOCRED, &bp);
+ if (error)
+ brelse(bp);
+ }
ACQUIRE_LOCK(&lk);
if (error)
break;
@@ -13183,6 +13186,7 @@ softdep_inode_append(ip, cred, wkhd)
error = bread(ip->i_devvp, fsbtodb(fs, ino_to_fsba(fs, ip->i_number)),
(int)fs->fs_bsize, cred, &bp);
if (error) {
+ bqrelse(bp);
softdep_freework(wkhd);
return;
}
More information about the svn-src-head
mailing list