Hi,

On 30/06/17 17:37, Bob Peterson wrote:
Hi,

Before this patch, the congestion status for an rgrp glock was checked
twice: Once before acquiring the glock and once afterward. We only
need to check it once. Since after we've already acquired the glock
is too late to avoid the dlm calls, it makes no sense to do it there.
Therefore the redundant check is removed.

Signed-off-by: Bob Peterson <[email protected]>
It isn't redundant. The first check tries to avoid getting the glock, however it may be wrong since until we get the glock, we won't have up to date stats, so thats why we check it again. It may sound odd to wait for the glock and then decide that we are not going to use it, but for the contention case we don't have any other choice at the moment, since we are unable to set a timeout on DLM operations, which would be the ideal case,

Steve.

---
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 836e38b..7c9b6d2 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -2003,9 +2003,6 @@ int gfs2_inplace_reserve(struct gfs2_inode *ip, struct 
gfs2_alloc_parms *ap)
                                                   &rs->rs_rgd_gh);
                        if (unlikely(error))
                                return error;
-                       if (!gfs2_rs_active(rs) && (loops < 2) &&
-                           gfs2_rgrp_congested(rs->rs_rbm.rgd, loops))
-                               goto skip_rgrp;
                        if (sdp->sd_args.ar_rgrplvb) {
                                error = update_rgrp_lvb(rs->rs_rbm.rgd);
                                if (unlikely(error)) {

Reply via email to