From patchwork Wed Mar 6 11:51:47 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wang Shilong X-Patchwork-Id: 2224891 Return-Path: X-Original-To: patchwork-linux-btrfs@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id CF59E3FCF6 for ; Wed, 6 Mar 2013 11:51:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757508Ab3CFLvx (ORCPT ); Wed, 6 Mar 2013 06:51:53 -0500 Received: from mail-pb0-f52.google.com ([209.85.160.52]:51824 "EHLO mail-pb0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757462Ab3CFLvw (ORCPT ); Wed, 6 Mar 2013 06:51:52 -0500 Received: by mail-pb0-f52.google.com with SMTP id ma3so5921176pbc.39 for ; Wed, 06 Mar 2013 03:51:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer:mime-version :content-type:content-transfer-encoding; bh=WeVrywB0bavuznjNgPBXxJz/lbXosB7ZjyUXwS0p++4=; b=Tmir8HISkZSom9FqcPMmRgghDz6zNw6FLnElWYfqtGeesCzdMqO+Av9JG+B0AKXwiA icE6MfriQJaoagUNOXw2I5Fhwl5V6/Fg7SLhgjJdY+QjOtFd0Cf3KsmRfQl1T+M0BLzI GW2TWtDunLe8617iBJFpspBa15Mu2XcmeQ6Txc+qe0EFvcjR8QW+BmtUnAQnSz6CSdf0 DtQcNJT51ucD196chYzUcQqTGHplCcFtVc5FzU/jcb/9GUk8k1ozEK8GMTHMp/2G5F+R KsdVi+iv5hrDP+W4r0PD1Nr+ZYBOMClphcpw4h/nYmvsinmiWpmi88mEa7ONRbXrEvWO Vhmg== X-Received: by 10.68.134.100 with SMTP id pj4mr45462476pbb.12.1362570712256; Wed, 06 Mar 2013 03:51:52 -0800 (PST) Received: from localhost.localdomain ([183.209.137.242]) by mx.google.com with ESMTPS id ti8sm12099747pbc.12.2013.03.06.03.51.50 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 06 Mar 2013 03:51:51 -0800 (PST) From: Wang Shilong To: linux-btrfs@vger.kernel.org Cc: sensille@gmx.net, wangshilong1991@gmail.com Subject: [PATCH] Btrfs: return as soon as possible when edquot happens Date: Wed, 6 Mar 2013 19:51:47 +0800 Message-Id: <1362570707-1995-1-git-send-email-wangshilong1991@gmail.com> X-Mailer: git-send-email 1.7.11.7 MIME-Version: 1.0 Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org From: Wang Shilong If one of qgroup fails to reserve firstly, we should return immediately, it is unnecessary to continue check. Signed-off-by: Wang Shilong --- fs/btrfs/qgroup.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index aee4b1c..5471e47 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c @@ -1525,21 +1525,23 @@ int btrfs_qgroup_reserve(struct btrfs_root *root, u64 num_bytes) if ((qg->lim_flags & BTRFS_QGROUP_LIMIT_MAX_RFER) && qg->reserved + qg->rfer + num_bytes > - qg->max_rfer) + qg->max_rfer) { ret = -EDQUOT; + goto out; + } if ((qg->lim_flags & BTRFS_QGROUP_LIMIT_MAX_EXCL) && qg->reserved + qg->excl + num_bytes > - qg->max_excl) + qg->max_excl) { ret = -EDQUOT; + goto out; + } list_for_each_entry(glist, &qg->groups, next_group) { ulist_add(ulist, glist->group->qgroupid, (uintptr_t)glist->group, GFP_ATOMIC); } } - if (ret) - goto out; /* * no limits exceeded, now record the reservation into all qgroups