On Thu, 06/23 16:37, Eric Blake wrote: > The raw block driver was blindly copying all limits from bs->file, > even though: 1. the main bdrv_refresh_limits() already does this > for many of the limits, and 2. blindly copying from the children > can weaken any stricter limits that were already inherited from > the backing chain during the main bdrv_refresh_limits(). Also, > a future patch is about to move .request_alignment into > BlockLimits, and that is a limit that should NOT be copied from > other layers in the BDS chain. > > Thus, we can completely drop raw_refresh_limits(), and rely on > the block layer setting up the proper limits. > > Signed-off-by: Eric Blake <[email protected]> > > --- > v3: new patch, split out from 'block: Split bdrv_merge_limits()...' > --- > block/raw_bsd.c | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/block/raw_bsd.c b/block/raw_bsd.c > index 7f63791..5855e84 100644 > --- a/block/raw_bsd.c > +++ b/block/raw_bsd.c > @@ -1,6 +1,6 @@ > /* BlockDriver implementation for "raw" > * > - * Copyright (C) 2010, 2013, Red Hat, Inc. > + * Copyright (C) 2010-2016 Red Hat, Inc. > * Copyright (C) 2010, Blue Swirl <[email protected]> > * Copyright (C) 2009, Anthony Liguori <[email protected]> > * > @@ -150,11 +150,6 @@ static int raw_get_info(BlockDriverState *bs, > BlockDriverInfo *bdi) > return bdrv_get_info(bs->file->bs, bdi); > } > > -static void raw_refresh_limits(BlockDriverState *bs, Error **errp) > -{ > - bs->bl = bs->file->bs->bl; > -} > - > static int raw_truncate(BlockDriverState *bs, int64_t offset) > { > return bdrv_truncate(bs->file->bs, offset); > @@ -252,7 +247,6 @@ BlockDriver bdrv_raw = { > .bdrv_getlength = &raw_getlength, > .has_variable_length = true, > .bdrv_get_info = &raw_get_info, > - .bdrv_refresh_limits = &raw_refresh_limits, > .bdrv_probe_blocksizes = &raw_probe_blocksizes, > .bdrv_probe_geometry = &raw_probe_geometry, > .bdrv_media_changed = &raw_media_changed, > -- > 2.5.5 >
Reviewed-by: Fam Zheng <[email protected]>
