Hi,

On Fri, Apr 08, 2005 at 06:55:50AM +0200, [EMAIL PROTECTED] wrote:
> 
> Cc: <[EMAIL PROTECTED]>, <reiserfs-list@namesys.com>, <[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/

Reply via email to