* [PATCH] 2.4 reiserfs 64bit and bigendian bugfixes
@ 2002-02-11 14:02 Oleg Drokin on behalf of Hans Reiser
0 siblings, 0 replies; only message in thread
From: Oleg Drokin on behalf of Hans Reiser @ 2002-02-11 14:02 UTC (permalink / raw)
To: marcelo, linux-kernel, reiserfs-dev
[-- Attachment #1: Type: text/plain, Size: 137 bytes --]
Hello!
This patch solves known reiserfs 64bit issues. Also erroneous
le64_to_cpu converted to correct cpu_to_le64.
Bye,
Oleg
[-- Attachment #2: 64bit_and_bigendian_fixes.diff --]
[-- Type: text/plain, Size: 5879 bytes --]
diff -uNr linux-2.4.18-pre9.orig/fs/reiserfs/journal.c linux-2.4.18-pre9/fs/reiserfs/journal.c
--- linux-2.4.18-pre9.orig/fs/reiserfs/journal.c Mon Feb 11 15:23:32 2002
+++ linux-2.4.18-pre9/fs/reiserfs/journal.c Mon Feb 11 15:24:38 2002
@@ -793,7 +793,7 @@
while(cn) {
if (cn->blocknr != 0) {
if (debug) {
- printk("block %lu, bh is %d, state %d\n", cn->blocknr, cn->bh ? 1: 0,
+ printk("block %lu, bh is %d, state %ld\n", cn->blocknr, cn->bh ? 1: 0,
cn->state) ;
}
fake_bh.b_blocknr = cn->blocknr ;
diff -uNr linux-2.4.18-pre9.orig/fs/reiserfs/procfs.c linux-2.4.18-pre9/fs/reiserfs/procfs.c
--- linux-2.4.18-pre9.orig/fs/reiserfs/procfs.c Mon Feb 11 15:23:29 2002
+++ linux-2.4.18-pre9/fs/reiserfs/procfs.c Mon Feb 11 15:24:38 2002
@@ -79,7 +79,7 @@
struct super_block *sb;
char *format;
- sb = procinfo_prologue( ( kdev_t ) ( int ) data );
+ sb = procinfo_prologue( ( kdev_t ) ( long ) data );
if( sb == NULL )
return -ENOENT;
if ( sb->u.reiserfs_sb.s_properties & (1 << REISERFS_3_6) ) {
@@ -143,7 +143,7 @@
struct reiserfs_sb_info *r;
int len = 0;
- sb = procinfo_prologue( ( kdev_t ) ( int ) data );
+ sb = procinfo_prologue( ( kdev_t ) ( long ) data );
if( sb == NULL )
return -ENOENT;
r = &sb->u.reiserfs_sb;
@@ -223,7 +223,7 @@
int len = 0;
int level;
- sb = procinfo_prologue( ( kdev_t ) ( int ) data );
+ sb = procinfo_prologue( ( kdev_t ) ( long ) data );
if( sb == NULL )
return -ENOENT;
r = &sb->u.reiserfs_sb;
@@ -302,7 +302,7 @@
struct reiserfs_sb_info *r = &sb->u.reiserfs_sb;
int len = 0;
- sb = procinfo_prologue( ( kdev_t ) ( int ) data );
+ sb = procinfo_prologue( ( kdev_t ) ( long ) data );
if( sb == NULL )
return -ENOENT;
r = &sb->u.reiserfs_sb;
@@ -343,7 +343,7 @@
int hash_code;
int len = 0;
- sb = procinfo_prologue( ( kdev_t ) ( int ) data );
+ sb = procinfo_prologue( ( kdev_t ) ( long ) data );
if( sb == NULL )
return -ENOENT;
sb_info = &sb->u.reiserfs_sb;
@@ -396,7 +396,7 @@
int len = 0;
int exact;
- sb = procinfo_prologue( ( kdev_t ) ( int ) data );
+ sb = procinfo_prologue( ( kdev_t ) ( long ) data );
if( sb == NULL )
return -ENOENT;
sb_info = &sb->u.reiserfs_sb;
@@ -447,7 +447,7 @@
struct reiserfs_super_block *rs;
int len = 0;
- sb = procinfo_prologue( ( kdev_t ) ( int ) data );
+ sb = procinfo_prologue( ( kdev_t ) ( long ) data );
if( sb == NULL )
return -ENOENT;
r = &sb->u.reiserfs_sb;
@@ -464,7 +464,7 @@
"s_journal_max_commit_age: \t%i\n"
"s_journal_max_trans_age: \t%i\n"
/* incore fields */
- "j_state: \t%i\n"
+ "j_state: \t%li\n"
"j_trans_id: \t%lu\n"
"j_mount_id: \t%lu\n"
"j_start: \t%lu\n"
@@ -588,7 +588,7 @@
{
return ( sb->u.reiserfs_sb.procdir ) ? create_proc_read_entry
( name, 0, sb->u.reiserfs_sb.procdir, func,
- ( void * ) ( int ) sb -> s_dev ) : NULL;
+ ( void * ) ( long ) sb -> s_dev ) : NULL;
}
void reiserfs_proc_unregister( struct super_block *sb, const char *name )
diff -uNr linux-2.4.18-pre9.orig/include/linux/reiserfs_fs.h linux-2.4.18-pre9/include/linux/reiserfs_fs.h
--- linux-2.4.18-pre9.orig/include/linux/reiserfs_fs.h Mon Feb 11 15:23:29 2002
+++ linux-2.4.18-pre9/include/linux/reiserfs_fs.h Mon Feb 11 15:53:07 2002
@@ -236,9 +236,9 @@
__u64 linear;
} __attribute__ ((__packed__)) offset_v2_esafe_overlay;
-static inline __u16 offset_v2_k_type( struct offset_v2 *v2 )
+static inline __u16 offset_v2_k_type( const struct offset_v2 *v2 )
{
- offset_v2_esafe_overlay tmp = *(offset_v2_esafe_overlay *)v2;
+ offset_v2_esafe_overlay tmp = *(const offset_v2_esafe_overlay *)v2;
tmp.linear = le64_to_cpu( tmp.linear );
return tmp.offset_v2.k_type;
}
@@ -248,12 +248,12 @@
offset_v2_esafe_overlay *tmp = (offset_v2_esafe_overlay *)v2;
tmp->linear = le64_to_cpu(tmp->linear);
tmp->offset_v2.k_type = type;
- tmp->linear = le64_to_cpu(tmp->linear);
+ tmp->linear = cpu_to_le64(tmp->linear);
}
-static inline loff_t offset_v2_k_offset( struct offset_v2 *v2 )
+static inline loff_t offset_v2_k_offset( const struct offset_v2 *v2 )
{
- offset_v2_esafe_overlay tmp = *(offset_v2_esafe_overlay *)v2;
+ offset_v2_esafe_overlay tmp = *(const offset_v2_esafe_overlay *)v2;
tmp.linear = le64_to_cpu( tmp.linear );
return tmp.offset_v2.k_offset;
}
@@ -262,7 +262,7 @@
offset_v2_esafe_overlay *tmp = (offset_v2_esafe_overlay *)v2;
tmp->linear = le64_to_cpu(tmp->linear);
tmp->offset_v2.k_offset = offset;
- tmp->linear = le64_to_cpu(tmp->linear);
+ tmp->linear = cpu_to_le64(tmp->linear);
}
#else
# define offset_v2_k_type(v2) ((v2)->k_type)
diff -uNr linux-2.4.18-pre9.orig/include/linux/reiserfs_fs_sb.h linux-2.4.18-pre9/include/linux/reiserfs_fs_sb.h
--- linux-2.4.18-pre9.orig/include/linux/reiserfs_fs_sb.h Mon Feb 11 15:23:32 2002
+++ linux-2.4.18-pre9/include/linux/reiserfs_fs_sb.h Mon Feb 11 15:52:02 2002
@@ -201,7 +201,7 @@
struct buffer_head *bh ; /* real buffer head */
kdev_t dev ; /* dev of real buffer head */
unsigned long blocknr ; /* block number of real buffer head, == 0 when buffer on disk */
- int state ;
+ long state ;
struct reiserfs_journal_list *jlist ; /* journal list this cnode lives in */
struct reiserfs_journal_cnode *next ; /* next in transaction list */
struct reiserfs_journal_cnode *prev ; /* prev in transaction list */
@@ -264,7 +264,7 @@
struct reiserfs_journal_cnode *j_last ; /* newest journal block */
struct reiserfs_journal_cnode *j_first ; /* oldest journal block. start here for traverse */
- int j_state ;
+ long j_state ;
unsigned long j_trans_id ;
unsigned long j_mount_id ;
unsigned long j_start ; /* start of current waiting commit (index into j_ap_blocks) */
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-02-11 14:03 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-02-11 14:02 [PATCH] 2.4 reiserfs 64bit and bigendian bugfixes Oleg Drokin on behalf of Hans Reiser
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.