The following commit has been merged in the master branch:
commit 5fbb4246c7de422cd8ea220d0d75a073a8348821
Author: Patrick Winnertz <win...@debian.org>
Date:   Mon Apr 6 10:46:14 2009 +0200

    Add patch which fixes directory corruption in 1.6.7.
    
    This was announced by Peter jones on lustre-discuss:
      A bug has been identified in 1.6.7 that can cause directory corruptions
      on the MDT. A patch and full details are in bug 18695 -
      https://bugzilla.lustre.org/show_bug.cgi?id=18695
    
      We recommend to anyone running 1.6.7 on the MDS to unmount the MDT, run
      e2fsck against the MDT device and apply the patch from bug 18695 as soon
      as possible.
    
      Please note that the landing that caused the regression was that for
      11063, so anyone running with that patch on an earlier 1.6.x release
      should also follow the above procedure.
    
      This fix will be included in 1.8.0 and we will also create an ad hoc
      1.6.7.1 release to provide this fix as soon as possible. 1.6.7 will be
      withdrawn from the Sun Download Center
    
    Signed-off-by: Patrick Winnertz <win...@debian.org>

diff --git a/debian/patches/add_LASSERTF_in_setattr.dpatch 
b/debian/patches/add_LASSERTF_in_setattr.dpatch
new file mode 100644
index 0000000..d113aed
--- /dev/null
+++ b/debian/patches/add_LASSERTF_in_setattr.dpatch
@@ -0,0 +1,21 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## add_LASSERTF_in_setattr.dpatch by Patrick Winnertz 
<patrick.winne...@credativ.de>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: patch attached to bug #18695
+
+...@dpatch@
+diff -u -p -r1.58.28.34.2.2 fsfilt_ext3.c
+--- ./lustre/lvfs/fsfilt_ext3.c        15 Dec 2008 14:53:27 -0000      
1.58.28.34.2.2
++++ ./lustre/lvfs/fsfilt_ext3.c        3 Apr 2009 22:26:18 -0000
+@@ -503,6 +503,10 @@ static int fsfilt_ext3_setattr(struct de
+         struct inode *inode = dentry->d_inode;
+         int rc = 0;
+ 
++        LASSERTF(!(iattr->ia_valid & ATTR_SIZE) || !S_ISDIR(inode->i_mode),
++                 "changing i_size on directory #%lu (%p) new %lu old %lu\n",
++                 inode->i_ino, inode, iattr->ia_size, i_size_read(inode));
++
+         /* Avoid marking the inode dirty on the superblock list unnecessarily.
+          * We are already writing the inode to disk as part of this
+          * transaction and want to avoid a lot of extra inode writeout
diff --git a/debian/patches/dont_update_i-size-dir.dpatch 
b/debian/patches/dont_update_i-size-dir.dpatch
new file mode 100644
index 0000000..1b4440b
--- /dev/null
+++ b/debian/patches/dont_update_i-size-dir.dpatch
@@ -0,0 +1,20 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## dont_update_i-size-dir.patch by Patrick Winnertz 
<patrick.winne...@credativ.de>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: patch attached to bug #18695
+
+...@dpatch@
+diff -u -p -r1.150.32.42 mds_open.c
+--- ./lustre/mds/mds_open.c    3 Mar 2009 16:10:57 -0000       1.150.32.42
++++ ./lustre/mds/mds_open.c    2 Apr 2009 10:41:12 -0000
+@@ -1470,7 +1470,8 @@ int mds_mfd_close(struct ptlrpc_request 
+                 * rough decision making and will get the proper size later.
+                 * This is NOT guaranteed to be correct with multiple
+                 * writers, but is only needed until SOM is done. b=11063 */
+-               if ((request_body->valid & OBD_MD_FLSIZE) &&
++               if (S_ISREG(inode->i_mode) &&
++                   (request_body->valid & OBD_MD_FLSIZE) &&
+                    (iattr.ia_valid != 0)) {
+                        iattr.ia_size = request_body->size;
+                        iattr.ia_valid |= ATTR_SIZE;

-- 
Lustre Debian Packaging 

_______________________________________________
Pkg-lustre-svn-commit mailing list
Pkg-lustre-svn-commit@lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/pkg-lustre-svn-commit

Reply via email to