From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from aserp1040.oracle.com ([141.146.126.69]:48393 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758162AbaDII6V (ORCPT ); Wed, 9 Apr 2014 04:58:21 -0400 Date: Wed, 9 Apr 2014 16:57:56 +0800 From: Liu Bo To: linux-btrfs@vger.kernel.org Cc: Marcel Ritter , Christian Robert , alanqk@gmail.com, Konstantinos Skarlatos , David Sterba , Martin Steigerwald , Josef Bacik , Chris Mason Subject: Re: [PATCH v9 01/16] Btrfs: disable qgroups accounting when quata_enable is 0 Message-ID: <20140409085756.GB23743@localhost.localdomain> Reply-To: bo.li.liu@oracle.com References: <1397027325-27151-1-git-send-email-bo.li.liu@oracle.com> <1397027325-27151-2-git-send-email-bo.li.liu@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <1397027325-27151-2-git-send-email-bo.li.liu@oracle.com> Sender: linux-btrfs-owner@vger.kernel.org List-ID: Sorry, there is a typo in the subject line, thanks cwillu for pointing it out. s/quata/quota/g. -liubo On Wed, Apr 09, 2014 at 03:08:29PM +0800, Liu Bo wrote: > It's unnecessary to do qgroups accounting without enabling quota. > > Signed-off-by: Liu Bo > --- > fs/btrfs/ctree.c | 2 +- > fs/btrfs/delayed-ref.c | 18 ++++++++++++++---- > fs/btrfs/qgroup.c | 3 +++ > 3 files changed, 18 insertions(+), 5 deletions(-) > > diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c > index 88d1b1e..54f3c67 100644 > --- a/fs/btrfs/ctree.c > +++ b/fs/btrfs/ctree.c > @@ -406,7 +406,7 @@ u64 btrfs_get_tree_mod_seq(struct btrfs_fs_info *fs_info, > > tree_mod_log_write_lock(fs_info); > spin_lock(&fs_info->tree_mod_seq_lock); > - if (!elem->seq) { > + if (elem && !elem->seq) { > elem->seq = btrfs_inc_tree_mod_seq_major(fs_info); > list_add_tail(&elem->list, &fs_info->tree_mod_seq_list); > } > diff --git a/fs/btrfs/delayed-ref.c b/fs/btrfs/delayed-ref.c > index 3129964..3ab37b6 100644 > --- a/fs/btrfs/delayed-ref.c > +++ b/fs/btrfs/delayed-ref.c > @@ -656,8 +656,13 @@ add_delayed_tree_ref(struct btrfs_fs_info *fs_info, > ref->is_head = 0; > ref->in_tree = 1; > > - if (need_ref_seq(for_cow, ref_root)) > - seq = btrfs_get_tree_mod_seq(fs_info, &trans->delayed_ref_elem); > + if (need_ref_seq(for_cow, ref_root)) { > + struct seq_list *elem = NULL; > + > + if (fs_info->quota_enabled) > + elem = &trans->delayed_ref_elem; > + seq = btrfs_get_tree_mod_seq(fs_info, elem); > + } > ref->seq = seq; > > full_ref = btrfs_delayed_node_to_tree_ref(ref); > @@ -718,8 +723,13 @@ add_delayed_data_ref(struct btrfs_fs_info *fs_info, > ref->is_head = 0; > ref->in_tree = 1; > > - if (need_ref_seq(for_cow, ref_root)) > - seq = btrfs_get_tree_mod_seq(fs_info, &trans->delayed_ref_elem); > + if (need_ref_seq(for_cow, ref_root)) { > + struct seq_list *elem = NULL; > + > + if (fs_info->quota_enabled) > + elem = &trans->delayed_ref_elem; > + seq = btrfs_get_tree_mod_seq(fs_info, elem); > + } > ref->seq = seq; > > full_ref = btrfs_delayed_node_to_data_ref(ref); > diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c > index 2cf9058..c634b3e 100644 > --- a/fs/btrfs/qgroup.c > +++ b/fs/btrfs/qgroup.c > @@ -1186,6 +1186,9 @@ int btrfs_qgroup_record_ref(struct btrfs_trans_handle *trans, > { > struct qgroup_update *u; > > + if (!trans->root->fs_info->quota_enabled) > + return 0; > + > BUG_ON(!trans->delayed_ref_elem.seq); > u = kmalloc(sizeof(*u), GFP_NOFS); > if (!u) > -- > 1.8.2.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html