From 775f73cda6c1a5b12c1f59861d88175bfb997659 Mon Sep 17 00:00:00 2001 From: Bob Peterson Date: Thu, 12 Jul 2007 16:58:50 -0500 Subject: [PATCH] --- yaml --- r: 64024 b: refs/heads/master c: 24c7387333c77b602ece7ecd6a85fc94f8f16d8c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/gfs2/rgrp.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 040d71d36e1a..ee529f23bac1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bdcb88562ca90e6cfac13130e147c63aaa4f9e41 +refs/heads/master: 24c7387333c77b602ece7ecd6a85fc94f8f16d8c diff --git a/trunk/fs/gfs2/rgrp.c b/trunk/fs/gfs2/rgrp.c index e4e040625153..bb58e69fd977 100644 --- a/trunk/fs/gfs2/rgrp.c +++ b/trunk/fs/gfs2/rgrp.c @@ -863,16 +863,19 @@ static struct inode *try_rgrp_unlink(struct gfs2_rgrpd *rgd, u64 *last_unlinked) u64 no_addr; for(;;) { + if (goal >= rgd->rd_data) + break; goal = rgblk_search(rgd, goal, GFS2_BLKST_UNLINKED, GFS2_BLKST_UNLINKED); if (goal == 0) - return 0; + break; no_addr = goal + rgd->rd_data0; - if (no_addr <= *last_unlinked) + goal++; + if (no_addr < *last_unlinked) continue; *last_unlinked = no_addr; inode = gfs2_inode_lookup(rgd->rd_sbd->sd_vfs, DT_UNKNOWN, - no_addr, -1); + no_addr, -1); if (!IS_ERR(inode)) return inode; }