Whamcloud - gitweb
Check "sbi->s_mb_history" before using it.
authorfanyong <fanyong>
Thu, 30 Aug 2007 03:57:04 +0000 (03:57 +0000)
committerfanyong <fanyong>
Thu, 30 Aug 2007 03:57:04 +0000 (03:57 +0000)
b=12876
i=adilger
i=huanghua

lustre/kernel_patches/patches/ext3-mballoc3-core.patch

index a6033d1..9853b69 100644 (file)
@@ -183,7 +183,7 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c
 ===================================================================
 --- linux-2.6.9-full.orig/fs/ext3/mballoc.c    2007-02-13 18:39:59.640066087 +0300
 +++ linux-2.6.9-full/fs/ext3/mballoc.c 2007-03-29 00:28:40.000000000 +0400
 ===================================================================
 --- linux-2.6.9-full.orig/fs/ext3/mballoc.c    2007-02-13 18:39:59.640066087 +0300
 +++ linux-2.6.9-full/fs/ext3/mballoc.c 2007-03-29 00:28:40.000000000 +0400
-@@ -0,0 +1,4342 @@
+@@ -0,0 +1,4343 @@
 +/*
 + * Copyright (c) 2003-2006, Cluster File Systems, Inc, info@clusterfs.com
 + * Written by Alex Tomas <alex@clusterfs.com>
 +/*
 + * Copyright (c) 2003-2006, Cluster File Systems, Inc, info@clusterfs.com
 + * Written by Alex Tomas <alex@clusterfs.com>
@@ -2361,7 +2361,8 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c
 +      spin_lock_init(&sbi->s_mb_history_lock);
 +      i = sbi->s_mb_history_max * sizeof(struct ext3_mb_history);
 +      sbi->s_mb_history = kmalloc(i, GFP_KERNEL);
 +      spin_lock_init(&sbi->s_mb_history_lock);
 +      i = sbi->s_mb_history_max * sizeof(struct ext3_mb_history);
 +      sbi->s_mb_history = kmalloc(i, GFP_KERNEL);
-+      memset(sbi->s_mb_history, 0, i);
++      if (likely(sbi->s_mb_history != NULL))
++              memset(sbi->s_mb_history, 0, i);
 +      /* if we can't allocate history, then we simple won't use it */
 +}
 +
 +      /* if we can't allocate history, then we simple won't use it */
 +}
 +
@@ -2371,7 +2372,7 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c
 +      struct ext3_sb_info *sbi = EXT3_SB(ac->ac_sb);
 +      struct ext3_mb_history h;
 +
 +      struct ext3_sb_info *sbi = EXT3_SB(ac->ac_sb);
 +      struct ext3_mb_history h;
 +
-+      if (likely(sbi->s_mb_history == NULL))
++      if (unlikely(sbi->s_mb_history == NULL))
 +              return;
 +
 +      if (!(ac->ac_op & sbi->s_mb_history_filter))
 +              return;
 +
 +      if (!(ac->ac_op & sbi->s_mb_history_filter))