summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/ufs/ffs/ffs_softdep.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index 963313a..f6ee661 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -6835,6 +6835,13 @@ softdep_setup_freeblocks(ip, length, flags)
ip->i_number, length);
KASSERT(length == 0, ("softdep_setup_freeblocks: non-zero length"));
fs = ip->i_fs;
+ if ((error = bread(ip->i_devvp,
+ fsbtodb(fs, ino_to_fsba(fs, ip->i_number)),
+ (int)fs->fs_bsize, NOCRED, &bp)) != 0) {
+ brelse(bp);
+ softdep_error("softdep_setup_freeblocks", error);
+ return;
+ }
freeblks = newfreeblks(mp, ip);
extblocks = 0;
datablocks = 0;
@@ -6871,12 +6878,6 @@ softdep_setup_freeblocks(ip, length, flags)
* to delete its dependencies below. Once the dependencies are gone
* the buffer can be safely released.
*/
- if ((error = bread(ip->i_devvp,
- fsbtodb(fs, ino_to_fsba(fs, ip->i_number)),
- (int)fs->fs_bsize, NOCRED, &bp)) != 0) {
- brelse(bp);
- softdep_error("softdep_setup_freeblocks", error);
- }
if (ump->um_fstype == UFS1) {
dp1 = ((struct ufs1_dinode *)bp->b_data +
ino_to_fsbo(fs, ip->i_number));
OpenPOWER on IntegriCloud