From db27f2fb5c5d0798e5c854b323a4874f3ea29364 Mon Sep 17 00:00:00 2001 From: johann Date: Tue, 22 Sep 2009 22:24:17 +0000 Subject: [PATCH] Branch b1_8 b=19763 i=girish i=dmitry reduce quotacheck time on empty filesystem by skipping uninit group. --- lustre/ChangeLog | 43 +++++++++++++++++++------------------------ lustre/lvfs/fsfilt_ext3.c | 13 +++++++++++++ 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 7cc1ca7..7865254 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -16,19 +16,11 @@ tbd Sun Microsystems, Inc. more information, please refer to bugzilla 17630. Severity : normal -Bugzilla : 18674 -Frequency : occasionally during network problems -Description: client not allowed to reconnect to OST because of active request -Details : The client also now retries to reconnect to the same server if a - connect request failed with EBUSY or -EAGAIN. The patch has not - been landed in the previous commits. - -Severity : normal Bugzilla : 19526 Description: can't stat file in some situation. -Details : improve initialize osc date when target is added to mds and - ability to resend too big getattr request is client isn't have info - about ost. +Details : improve initialize osc date when target is added to mds and + ability to resend too big getattr request is client isn't have info + about ost. Severity : enhancement Bugzilla : 20539 @@ -38,10 +30,6 @@ Severity : enhancement Bugzilla : 19848 Description: Update kernel to SLES11 2.6.27.29-0.1.1. -Severity : enhancement -Bugzilla : 20200 -Description: Added sanity-quota test to for lfs(1) to work with numeric uid/gid. - Severity : normal Bugzilla : 14951 Description: Improved cleanup procedure for conf-sanity test_46a. @@ -56,13 +44,6 @@ Severity : enhancement Bugzilla : 20200 Description: Enhancement for lfs(1) command to use numeric uid/gid. -Severity : normal -Bugzilla : 18674 -Description: Do not start bulk transfer, if client tried to reconnect. -Details : Do not start bulk transfer, if client tried to reconnect, - but failed due to active rpcs. Check for exp_abort_active_req - has been implemented. - Severity : enhancement Bugzilla : 18539 Description: Communicate OST degraded/readonly state via statfs to MDS @@ -72,7 +53,7 @@ Details : Flags in the statfs returned from OSTs indicate whether the Severity : enhancement Bugzilla : 19808 -Description: Vanilla kernel 2.6.30 patchless support. +Description: Vanilla kernel 2.6.30 patchless client support. Severity : normal Bugzilla : 20122 @@ -167,6 +148,14 @@ Details : abort bulk requests received by the OST once the client has timed request failed with EBUSY or -EAGAIN. Severity : normal +Bugzilla : 18674 +Frequency : occasionally during network problems +Description: client not allowed to reconnect to OST because of active request +Details : The client also now retries to reconnect to the same server if a + connect request failed with EBUSY or -EAGAIN. The patch has not + been landed in the previous commits. + +Severity : normal Frequency : rare, if used wide striped file and one ost in down. Bugzilla : 18382 Descriptoin: don't return error if we created a subset of objects for file. @@ -177,7 +166,7 @@ Details : lov_update_create_set() uses set->set_success as index for created Severity : normal Frequency : rare, only when quota is enabled Bugzilla : 18793 -Descriptoin: OSS complains "too many blocks" and crashes +Description: OSS complains "too many blocks" and crashes Details : In filter_commitrw_write(): 1. lquota_chkquota(); 2. obdo_from_inode(); @@ -186,6 +175,12 @@ Details : In filter_commitrw_write(): lquota_chkquota() and lquota_pending_commit() to use different uid and gid. That is the root of the bug. +Severity : normal +Bugzilla : 19763 +Description: quotacheck performance/scaling issues +Details : reduce quotacheck time on empty filesystem by skipping uninit + group. + ------------------------------------------------------------------------------ TBD Sun Microsystems, Inc. diff --git a/lustre/lvfs/fsfilt_ext3.c b/lustre/lvfs/fsfilt_ext3.c index dd2227e..49e48a4 100644 --- a/lustre/lvfs/fsfilt_ext3.c +++ b/lustre/lvfs/fsfilt_ext3.c @@ -2025,6 +2025,19 @@ static int fsfilt_ext3_quotacheck(struct super_block *sb, /* check quota and update in hash */ for (group = 0; group < sbi->s_groups_count; group++) { + struct ext3_group_desc *desc; + desc = get_group_desc(sb, group); + if (!desc) + GOTO(out, -EIO); + + spin_lock(sb_bgl_lock(sbi, group)); + if (desc->bg_flags & cpu_to_le16(EXT3_BG_INODE_UNINIT)) { + /* no inode in use in this group, just skip it */ + spin_unlock(sb_bgl_lock(sbi, group)); + continue; + } + spin_unlock(sb_bgl_lock(sbi, group)); + ino = group * sbi->s_inodes_per_group + 1; bitmap_bh = ext3_read_inode_bitmap(sb, group); if (!bitmap_bh) { -- 1.8.3.1