xfs
[Top] [All Lists]

Re: corruption bug in 2.6.17

To: Nathan Scott <nscott@xxxxxxxxxx>
Subject: Re: corruption bug in 2.6.17
From: Justin Piszcz <jpiszcz@xxxxxxxxxxxxxxx>
Date: Tue, 5 Jun 2007 19:01:15 -0400 (EDT)
Cc: Christian Kujau <lists@xxxxxxxxxxxxxxx>, "Raz Ben-Jehuda(caro)" <raziebe@xxxxxxxxx>, xfs@xxxxxxxxxxx
In-reply-to: <1181084327.3176.4.camel@xxxxxxxxxxxxxx>
References: <5d96567b0706021407q4455b60asd9d23ef82cb90b55@xxxxxxxxxxxxxx> <alpine.DEB.0.99.0706022300140.16496@xxxxxxxxxxxxxxxxxx> <5d96567b0706050127y7f5eap7b92cddb5cdae02d@xxxxxxxxxxxxxx> <alpine.DEB.0.99.0706052217320.21004@foobar-g4> <1181084327.3176.4.camel@xxxxxxxxxxxxxx>
Sender: xfs-bounce@xxxxxxxxxxx


On Wed, 6 Jun 2007, Nathan Scott wrote:

On Tue, 2007-06-05 at 22:24 +0200, Christian Kujau wrote:
...
  2) generate some IO on the xfs-mounted partition...and wait until
the
     fs shut down.

The problem was actually related to a particular form of btree
dir2 transition - so, certain combinations of file names in a
relatively large directory with size changes would trigger it.

"generate some IO" is a bit too vague to be helpful.

cheers.

--
Nathan



The patch that fixed it:

--- linux-2.6.17.6.orig/fs/xfs/xfs_dir2_node.c
+++ linux-2.6.17.6/fs/xfs/xfs_dir2_node.c
@@ -970,7 +970,7 @@ xfs_dir2_leafn_remove(
                        /*
                         * One less used entry in the free table.
                         */
-                       free->hdr.nused = cpu_to_be32(-1);
+                       be32_add(&free->hdr.nused, -1);
                        xfs_dir2_free_log_header(tp, fbp);
                        /*
                         * If this was the last entry in the table, we can



<Prev in Thread] Current Thread [Next in Thread>