Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 38650
b: refs/heads/master
c: ed38650
h: refs/heads/master
v: v3
  • Loading branch information
Steven Whitehouse committed Apr 7, 2006
1 parent 7648edc commit d26ef76
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b09e593d799560f1a0782c20ac5900058390a26f
refs/heads/master: ed3865079b573ef55dc13ab0bfb242ed5ebab4c1
17 changes: 12 additions & 5 deletions trunk/fs/gfs2/dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -776,9 +776,9 @@ static struct gfs2_dirent *gfs2_dirent_search(struct inode *inode,
goto got_dent;
leaf = (struct gfs2_leaf *)bh->b_data;
ln = be64_to_cpu(leaf->lf_next);
brelse(bh);
if (!ln)
break;
brelse(bh);
error = get_leaf(ip, ln, &bh);
} while(!error);

Expand All @@ -789,9 +789,11 @@ static struct gfs2_dirent *gfs2_dirent_search(struct inode *inode,
if (error)
return ERR_PTR(error);
dent = gfs2_dirent_scan(inode, bh->b_data, bh->b_size, scan, name, NULL);
brelse(bh);

got_dent:
if (unlikely(IS_ERR(dent))) {
brelse(bh);
bh = NULL;
}
*pbh = bh;
return dent;
}
Expand Down Expand Up @@ -1475,6 +1477,7 @@ int gfs2_dir_search(struct inode *dir, const struct qstr *name,
brelse(bh);
return 0;
}
brelse(bh);
return -ENOENT;
}

Expand Down Expand Up @@ -1616,6 +1619,7 @@ int gfs2_dir_del(struct gfs2_inode *dip, const struct qstr *name)
previous entry otherwise */
dent = gfs2_dirent_search(dip->i_vnode, name, gfs2_dirent_prev, &bh);
if (!dent) {
brelse(bh);
gfs2_consist_inode(dip);
return -EIO;
}
Expand All @@ -1636,8 +1640,8 @@ int gfs2_dir_del(struct gfs2_inode *dip, const struct qstr *name)
if (!entries)
gfs2_consist_inode(dip);
leaf->lf_entries = cpu_to_be16(--entries);
brelse(bh);
}
brelse(bh);

error = gfs2_meta_inode_buffer(dip, &bh);
if (error)
Expand Down Expand Up @@ -1676,6 +1680,7 @@ int gfs2_dir_mvino(struct gfs2_inode *dip, const struct qstr *filename,

dent = gfs2_dirent_search(dip->i_vnode, filename, gfs2_dirent_find, &bh);
if (!dent) {
brelse(bh);
gfs2_consist_inode(dip);
return -EIO;
}
Expand Down Expand Up @@ -1955,8 +1960,10 @@ int gfs2_diradd_alloc_required(struct inode *inode,
struct buffer_head *bh;

dent = gfs2_dirent_search(inode, name, gfs2_dirent_find_space, &bh);
if (!dent)
if (!dent) {
brelse(bh);
return 1;
}
if (IS_ERR(dent))
return PTR_ERR(dent);
brelse(bh);
Expand Down
2 changes: 1 addition & 1 deletion trunk/fs/gfs2/log.c
Original file line number Diff line number Diff line change
Expand Up @@ -196,14 +196,14 @@ int gfs2_log_reserve(struct gfs2_sbd *sdp, unsigned int blks)

void gfs2_log_release(struct gfs2_sbd *sdp, unsigned int blks)
{
up_read(&sdp->sd_log_flush_lock);

gfs2_log_lock(sdp);
sdp->sd_log_blks_free += blks;
/* printk(KERN_INFO "released %u blocks (%u left)\n", blks, sdp->sd_log_blks_free); */
gfs2_assert_withdraw(sdp,
sdp->sd_log_blks_free <= sdp->sd_jdesc->jd_blocks);
gfs2_log_unlock(sdp);
up_read(&sdp->sd_log_flush_lock);
}

static uint64_t log_bmap(struct gfs2_sbd *sdp, unsigned int lbn)
Expand Down

0 comments on commit d26ef76

Please sign in to comment.