[Pkg-lustre-svn-commit] r332 - in /trunk/debian: changelog patches/00list patches/bug12704-fix-2tb-ost-corruption.dpatch

pwinnertz-guest at users.alioth.debian.org pwinnertz-guest at users.alioth.debian.org
Wed Sep 19 09:01:52 UTC 2007


Author: pwinnertz-guest
Date: Wed Sep 19 09:01:51 2007
New Revision: 332

URL: http://svn.debian.org/wsvn/pkg-lustre/?sc=1&rev=332
Log:
Added fix for file corruption on 32 bit systems

Added:
    trunk/debian/patches/bug12704-fix-2tb-ost-corruption.dpatch
Modified:
    trunk/debian/changelog
    trunk/debian/patches/00list

Modified: trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-lustre/trunk/debian/changelog?rev=332&op=diff
==============================================================================
--- trunk/debian/changelog (original)
+++ trunk/debian/changelog Wed Sep 19 09:01:51 2007
@@ -2,6 +2,8 @@
 
   * Added several patches from upstream bugzilla to fix some
     smaller bugs.
+  * Added patch to fix file system corruption on large 32bit 
+    OST nodes. (large = bigger than 2TB)
   * Added 2.6.23 to the list of supported kernels
     + FIXME: ldiskfs doesn't build & both are not yet tested
 

Modified: trunk/debian/patches/00list
URL: http://svn.debian.org/wsvn/pkg-lustre/trunk/debian/patches/00list?rev=332&op=diff
==============================================================================
--- trunk/debian/patches/00list (original)
+++ trunk/debian/patches/00list Wed Sep 19 09:01:51 2007
@@ -20,6 +20,7 @@
 2.6.21-sysctl.dpatch
 bug12691-fixtypos.dpatch
 bug12567-fix-ldlm_cli_enqueue-errormsg.dpatch
+bug12704-fix-2tb-ost-corruption.dpatch
 
 # Debian patches
 autogen-run.dpatch

Added: trunk/debian/patches/bug12704-fix-2tb-ost-corruption.dpatch
URL: http://svn.debian.org/wsvn/pkg-lustre/trunk/debian/patches/bug12704-fix-2tb-ost-corruption.dpatch?rev=332&op=file
==============================================================================
--- trunk/debian/patches/bug12704-fix-2tb-ost-corruption.dpatch (added)
+++ trunk/debian/patches/bug12704-fix-2tb-ost-corruption.dpatch Wed Sep 19 09:01:51 2007
@@ -1,0 +1,48 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Patch from upstream bts to fix file corruption on osts with > 2TB 
+## DP: fs on 32bit systems
+
+ at DPATCH@
+diff -u -p -r1.176.2.168 ChangeLog
+--- ./lustre/ChangeLog	12 Sep 2007 16:42:12 -0000	1.176.2.168
++++ ./lustre/ChangeLog	12 Sep 2007 20:35:22 -0000
+@@ -14,6 +14,17 @@ tbd         Cluster File Systems, Inc. <
+              to the value of /sys/block/{dev}/queue/max_hw_sectors_kb
+              in mount_lustre.
+ 
++Severity   : critical
++Frequency  : Always for filesystems larger than 2TB on 32-bit systems.
++Bugzilla   : 13547, 13627
++Description: Data corruption for OSTs that are formatted larger than 2TB
++             on 32-bit servers.
++Details    : When generating the bio request for lustre file writes the
++	     sector number would overflow a temporary variable before being
++	     used for the IO.  The data reads correctly from Lustre (which
++	     will overflow in a similar manner) but other file data or
++	     filesystem metadata may be corrupted in some cases.
++
+ --------------------------------------------------------------------------------
+ 
+ 2007-09-27         Cluster File Systems, Inc. <info at clusterfs.com>
+diff -u -p -r1.41.12.8 filter_io_26.c
+--- ./lustre/obdfilter/filter_io_26.c	3 Sep 2007 06:05:48 -0000	1.41.12.8
++++ ./lustre/obdfilter/filter_io_26.c	12 Sep 2007 20:35:22 -0000
+@@ -297,12 +297,13 @@ int filter_do_bio(struct obd_export *exp
+                                 continue;
+                         }
+ 
+-                        sector = blocks[block_idx + i] << sector_bits;
++                        sector = (sector_t)blocks[block_idx + i] << sector_bits;
+ 
+                         /* Additional contiguous file blocks? */
+                         while (i + nblocks < blocks_per_page &&
+-                               (sector + nblocks*(blocksize>>9)) ==
+-                               (blocks[block_idx + i + nblocks] << sector_bits))
++                               (sector + (nblocks << sector_bits)) ==
++                               ((sector_t)blocks[block_idx + i + nblocks] <<
++                                sector_bits))
+                                 nblocks++;
+ 
+ #ifdef HAVE_PAGE_CONSTANT




More information about the Pkg-lustre-svn-commit mailing list