xfs
[Top] [All Lists]

Re: Linux 2.4.17-xfs vs previous XFS versions and certain non-us charact

To: Håkan Lindqvist <lindqvist@xxxxxxxxxx>
Subject: Re: Linux 2.4.17-xfs vs previous XFS versions and certain non-us characters in filenames
From: Stephen Lord <lord@xxxxxxx>
Date: Sun, 27 Jan 2002 11:13:15 -0600
Cc: Andi Kleen <ak@xxxxxxx>, utz lehmann <xfs@xxxxxxxxxx>, Linux XFS Mailing List <linux-xfs@xxxxxxxxxxx>
References: <1012101803.1045.28.camel@steelnest> <1012102374.1045.35.camel@steelnest> <3C536F44.1020301@xxxxxxx> <20020127152120.A1490@xxxxxxxxxx> <20020127154745.A20990@xxxxxxxxxxxxx> <1012143898.923.1.camel@steelnest>
Sender: owner-linux-xfs@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.7) Gecko/20011226
Hekan Lindqvist wrote:

Andi and Utz, I love you guys! :)

(This patch made things work just fine again! *hint hint*)


Thanks a lot everyone!

/Hekan


On Sun, 2002-01-27 at 15:47, Andi Kleen wrote:

On Sun, Jan 27, 2002 at 03:21:20PM +0100, utz lehmann wrote:

Maybe this cause it?

TAKE - remove use of -funsigned-char from xfs
http://oss.sgi.com/projects/xfs/mail_archive/0201/msg00611.html

Looks very likely. Try this patch:

Index: linux/fs/xfs/xfs_da_btree.c
===================================================================
RCS file: /cvs/linux-2.4-xfs/linux/fs/xfs/xfs_da_btree.c,v
retrieving revision 1.119
diff -u -u -r1.119 xfs_da_btree.c
--- linux/fs/xfs/xfs_da_btree.c 2001/07/02 18:15:34     1.119
+++ linux/fs/xfs/xfs_da_btree.c 2002/01/27 15:44:38
@@ -1592,7 +1592,7 @@
 * This is implemented with some source-level loop unrolling.
 */
xfs_dahash_t
-xfs_da_hashname(char *name, int namelen)
+xfs_da_hashname(unsigned char *name, int namelen)
{
        xfs_dahash_t hash;

Index: linux/fs/xfs/xfs_da_btree.h
===================================================================
RCS file: /cvs/linux-2.4-xfs/linux/fs/xfs/xfs_da_btree.h,v
retrieving revision 1.40
diff -u -u -r1.40 xfs_da_btree.h
--- linux/fs/xfs/xfs_da_btree.h 2000/09/25 05:42:07     1.40
+++ linux/fs/xfs/xfs_da_btree.h 2002/01/27 15:44:38
@@ -322,7 +322,7 @@
int     xfs_da_shrink_inode(xfs_da_args_t *args, xfs_dablk_t dead_blkno,
                                          xfs_dabuf_t *dead_buf);

-uint xfs_da_hashname(char *name_string, int name_length);
+uint xfs_da_hashname(unsigned char *name_string, int name_length);
uint xfs_da_log2_roundup(uint i);
xfs_da_state_t *xfs_da_state_alloc(void);
void xfs_da_state_free(xfs_da_state_t *state);



-Andi


Woops, sorry, I forgot about the unsigned char change,  since I use English
characters with the top bit set did not occur to me. I will take a look through the other obvious places and see what else I can come up with. You can work around this by putting -f unsigned-char back into the Makefiles in fs/xfs and fs/xfs/linux,
just add it to the EXTRA_CFLAGS definition.

Steve




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