Re: [patch 1/1] reiserfs: make resize option auto-get new device size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, Apr 08, 2005 at 06:55:50AM +0200, [email protected] wrote:
> 
> Cc: <[email protected]>, <[email protected]>, <[email protected]>
> 
> It's trivial for the resize option to auto-get the underlying device size, while
> it's harder for the user. I've copied the code from jfs.
> 
> Since of the different reiserfs option parser (which does not use the superior
> match_token used by almost every other filesystem), I've had to use the
> "resize=auto" and not "resize" option to specify this behaviour. Changing the
> option parser to the kernel one wouldn't be bad but I've no time to do this
> cleanup in this moment.

do people really need it?

user-level utility reisize_reiserfs, being called w/o size argument,
calculates the device size and uses resize mount option with correct value. 

> Btw, the mount(8) man page should be updated to include this option. Cc the
> relevant people, please (I hope I cc'ed the right people).
> 
> Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[email protected]>
> ---
> 
>  linux-2.6.11-paolo/fs/reiserfs/super.c |   21 ++++++++++++++-------
>  1 files changed, 14 insertions(+), 7 deletions(-)
> 
> diff -puN fs/reiserfs/super.c~reiserfs-resize-option-like-jfs-auto-get fs/reiserfs/super.c
> --- linux-2.6.11/fs/reiserfs/super.c~reiserfs-resize-option-like-jfs-auto-get	2005-04-07 20:37:58.000000000 +0200
> +++ linux-2.6.11-paolo/fs/reiserfs/super.c	2005-04-08 01:01:18.000000000 +0200
> @@ -889,12 +889,18 @@ static int reiserfs_parse_options (struc
>  	    char * p;
>  	    
>  	    p = NULL;
> -	    /* "resize=NNN" */
> -	    *blocks = simple_strtoul (arg, &p, 0);
> -	    if (*p != '\0') {
> -		/* NNN does not look like a number */
> -		reiserfs_warning (s, "reiserfs_parse_options: bad value %s", arg);
> -		return 0;
> +	    /* "resize=NNN" or "resize=auto" */
> +
> +	    if (!strcmp(arg, "auto")) {
> +		    /* From JFS code, to auto-get the size.*/
> +		    *blocks = s->s_bdev->bd_inode->i_size >> s->s_blocksize_bits;
> +	    } else {
> +		    *blocks = simple_strtoul (arg, &p, 0);
> +		    if (*p != '\0') {
> +			/* NNN does not look like a number */
> +			reiserfs_warning (s, "reiserfs_parse_options: bad value %s", arg);
> +			return 0;
> +		    }
>  	    }
>  	}
>  
> @@ -903,7 +909,8 @@ static int reiserfs_parse_options (struc
>  		unsigned long val = simple_strtoul (arg, &p, 0);
>  		/* commit=NNN (time in seconds) */
>  		if ( *p != '\0' || val >= (unsigned int)-1) {
> -			reiserfs_warning (s, "reiserfs_parse_options: bad value %s", arg);			return 0;
> +			reiserfs_warning (s, "reiserfs_parse_options: bad value %s", arg);
> +			return 0;
>  		}
>  		*commit_max_age = (unsigned int)val;
>  	}
> _

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux