浏览代码

[GFS2] Fix bz 234168 (ignoring rgrp flags)

Ths following patch makes GFS2 use the rgrp flags properly. Although
there are also separate flags for both data and metadata as well, I've
not implemented these as there seems little use for them. On the
otherhand, the "noalloc" flag is generally useful for future changes we
might which to make, so this ensures that we interpret it correctly.

In addition I fixed the comment above the function which was incorrect.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Steven Whitehouse 18 年之前
父节点
当前提交
a43a49066d
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      fs/gfs2/rgrp.c

+ 3 - 2
fs/gfs2/rgrp.c

@@ -698,8 +698,6 @@ struct gfs2_alloc *gfs2_alloc_get(struct gfs2_inode *ip)
  * @al: the struct gfs2_alloc structure describing the reservation
  * @al: the struct gfs2_alloc structure describing the reservation
  *
  *
  * If there's room for the requested blocks to be allocated from the RG:
  * If there's room for the requested blocks to be allocated from the RG:
- *   Sets the $al_reserved_data field in @al.
- *   Sets the $al_reserved_meta field in @al.
  *   Sets the $al_rgd field in @al.
  *   Sets the $al_rgd field in @al.
  *
  *
  * Returns: 1 on success (it fits), 0 on failure (it doesn't fit)
  * Returns: 1 on success (it fits), 0 on failure (it doesn't fit)
@@ -710,6 +708,9 @@ static int try_rgrp_fit(struct gfs2_rgrpd *rgd, struct gfs2_alloc *al)
 	struct gfs2_sbd *sdp = rgd->rd_sbd;
 	struct gfs2_sbd *sdp = rgd->rd_sbd;
 	int ret = 0;
 	int ret = 0;
 
 
+	if (rgd->rd_rg.rg_flags & GFS2_RGF_NOALLOC)
+		return 0;
+
 	spin_lock(&sdp->sd_rindex_spin);
 	spin_lock(&sdp->sd_rindex_spin);
 	if (rgd->rd_free_clone >= al->al_requested) {
 	if (rgd->rd_free_clone >= al->al_requested) {
 		al->al_rgd = rgd;
 		al->al_rgd = rgd;