diff -rup -X dontdiff linux/fs/reiserfs/super.c linux.patched/fs/reiserfs/super.c --- linux/fs/reiserfs/super.c Mon Nov 26 19:55:39 2001 +++ linux.patched/fs/reiserfs/super.c Mon Nov 26 19:56:47 2001 @@ -500,12 +500,24 @@ static int reiserfs_remount (struct supe struct reiserfs_super_block * rs; struct reiserfs_transaction_handle th ; unsigned long blocks; - unsigned long mount_options; + unsigned long mount_options = 0; rs = SB_DISK_SUPER_BLOCK (s); if (!parse_options(data, &mount_options, &blocks)) return 0; + +#define SET_OPT( opt, bits, super ) \ + if( ( bits ) & ( 1 << ( opt ) ) ) \ + ( super ) -> u.reiserfs_sb.s_mount_opt |= ( 1 << ( opt ) ) + + /* set options in the super-block bitmask */ + SET_OPT( NOTAIL, mount_options, s ); + SET_OPT( REISERFS_NO_BORDER, mount_options, s ); + SET_OPT( REISERFS_NO_UNHASHED_RELOCATION, mount_options, s ); + SET_OPT( REISERFS_HASHED_RELOCATION, mount_options, s ); + SET_OPT( REISERFS_TEST4, mount_options, s ); +#undef SET_OPT if(blocks) { int rc = reiserfs_resize(s, blocks); .