Re: [md PATCH 02/36] md/bad-block-log: add sysfs interface for accessing bad-block-log.

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

 



2011-07-26 (화), 12:29 +1000, NeilBrown:
> On Sat, 23 Jul 2011 00:43:22 +0900 Namhyung Kim <namhyung@xxxxxxxxx> wrote:
> 
> > NeilBrown <neilb@xxxxxxx> writes:
> > 
> > > This can show the log (providing it fits in one page) and
> > > allows bad blocks to be 'acknowledged' meaning that they
> > > have safely been recorded in metadata.
> > >
> > > Clearing bad blocks is not allowed via sysfs (except for
> > > code testing).  A bad block can only be cleared when
> > > a write to the block succeeds.
> > >
> > > Signed-off-by: NeilBrown <neilb@xxxxxxx>
> > > ---
> > >
> > >  drivers/md/md.c |  127 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> > >  1 files changed, 127 insertions(+), 0 deletions(-)
> > >
> 
> > > +static ssize_t
> > > +badblocks_store(struct badblocks *bb, const char *page, size_t len, int unack)
> > > +{
> > > +	unsigned long long sector;
> > > +	int length;
> > > +	char newline;
> > > +#ifdef DO_DEBUG
> > > +	/* Allow clearing via sysfs *only* for testing/debugging.
> > > +	 * Normally only a successful write may clear a badblock
> > > +	 */
> > > +	int clear = 0;
> > > +	if (page[0] == '-') {
> > > +		clear = 1;
> > > +		page++;
> > > +	}
> > > +#endif /* DO_DEBUG */
> > > +
> > > +	switch (sscanf(page, "%llu %d%c", &sector, &length, &newline)) {
> > 
> > What if user provides negative 'length' here? Should we check that case?
> > 
> 
> good point.  I've added an appropriate test.
> 
> Thanks,
> NeilBrown
> 
> diff --git a/drivers/md/md.c b/drivers/md/md.c
> index 5de0c84..9ba76c7 100644
> --- a/drivers/md/md.c
> +++ b/drivers/md/md.c
> @@ -7844,6 +7844,8 @@ badblocks_store(struct badblocks *bb, const char *page, size_t len, int unack)
>  		if (newline != '\n')
>  			return -EINVAL;
>  	case 2:
> +		if (length <= 0)
> +			return -EINVAL;
>  		break;
>  	default:
>  		return -EINVAL;

Reviewed-by: Namhyung Kim <namhyung@xxxxxxxxx>

Thanks.


-- 
Regards,
Namhyung Kim


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


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux