Whamcloud - gitweb
Branch b1_8
authorjohann <johann>
Tue, 22 Sep 2009 22:24:17 +0000 (22:24 +0000)
committerjohann <johann>
Tue, 22 Sep 2009 22:24:17 +0000 (22:24 +0000)
b=19763
i=girish
i=dmitry

reduce quotacheck time on empty filesystem by skipping uninit group.

lustre/ChangeLog
lustre/lvfs/fsfilt_ext3.c

index 7cc1ca7..7865254 100644 (file)
@@ -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.
index dd2227e..49e48a4 100644 (file)
@@ -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) {