Re: [PATCH] reiserfs: enable attrs by default if saf

From: Jens Axboe
Date: Thu Jun 30 2005 - 05:15:35 EST


On Wed, Jun 29 2005, Jeff Mahoney wrote:
>
> The following patch enables attrs by default if the reiserfs_attrs_cleared
> bit is set in the superblock. This allows chattr-type attrs to be used
> without any further action by the user.
>
> Please apply.
>
> Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
>
> diff -ruNpX dontdiff linux-2.6.12-rc6/fs/reiserfs/super.c linux-2.6.12-rc6.devel/fs/reiserfs/super.c
> --- linux-2.6.12-rc6/fs/reiserfs/super.c 2005-06-13 14:34:58.000000000 -0400
> +++ linux-2.6.12-rc6.devel/fs/reiserfs/super.c 2005-06-22 17:34:55.000000000 -0400
> @@ -884,6 +884,8 @@ static void handle_attrs( struct super_b
> reiserfs_warning(s, "reiserfs: cannot support attributes until flag is set in super-block" );
> REISERFS_SB(s) -> s_mount_opt &= ~ ( 1 << REISERFS_ATTRS );
> }
> + } else if (le32_to_cpu( rs -> s_flags ) & reiserfs_attrs_cleared) {
> + REISERFS_SB(s)->s_mount_opt |= REISERFS_ATTRS;
> }
> }

Except rs isn't initialized there, causing a compile warning and a crash
booting the resulting kernel when reiser mounts...

Signed-off-by: Jens Axboe <axboe@xxxxxxx>

diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
--- a/fs/reiserfs/super.c
+++ b/fs/reiserfs/super.c
@@ -1053,10 +1053,9 @@ static void handle_barrier_mode(struct s

static void handle_attrs( struct super_block *s )
{
- struct reiserfs_super_block * rs;
+ struct reiserfs_super_block * rs = SB_DISK_SUPER_BLOCK (s);

if( reiserfs_attrs( s ) ) {
- rs = SB_DISK_SUPER_BLOCK (s);
if( old_format_only(s) ) {
reiserfs_warning(s, "reiserfs: cannot support attributes on 3.5.x disk format" );
REISERFS_SB(s) -> s_mount_opt &= ~ ( 1 << REISERFS_ATTRS );

--
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/