Message ID | 1461980039-25200-1-git-send-email-ashish.samant@oracle.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Fri, 29 Apr 2016 18:33:59 -0700 Ashish Samant <ashish.samant@oracle.com> wrote: > pagev array in scrub_block{} is of size SCRUB_MAX_PAGES_PER_BLOCK. > page_index should be checked with the same to trigger BUG_ON(). > > Signed-off-by: Ashish Samant <ashish.samant@oracle.com> > --- > fs/btrfs/scrub.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c > index 4678f03..376a6dd 100644 > --- a/fs/btrfs/scrub.c > +++ b/fs/btrfs/scrub.c > @@ -1350,7 +1350,7 @@ static int scrub_setup_recheck_block(struct scrub_block *original_sblock, > recover->bbio = bbio; > recover->map_length = mapped_length; > > - BUG_ON(page_index >= SCRUB_PAGES_PER_RD_BIO); > + BUG_ON(page_index >= SCRUB_MAX_PAGES_PER_BLOCK); > > nmirrors = min(scrub_nr_raid_mirrors(bbio), BTRFS_MAX_MIRRORS); > Hello I am trying to implement a user-space IOCTL option to change the RAID Stripe Size. I have run into an issue in the code included here, specifically in line 64 of scrub.c. #define SCRUB_MAX_PAGES_PER_BLOCK 16 /* 64k per node/leaf/sector */ This line should become a user-space variable if SCRUB_MAX_PAGES_PER_BLOCK is related in any way to the definition of BTrFS Stripe Length (defined in volume.h) being equal to a product of Super_blk and RAID Stripe Length, as it was before mid-December before the patch "http://article.gmane.org/gmane.comp.file-systems.btrfs/51221/" modified it. If SCRUB_MAX_PAGES_PER_BLOCK is related to Super_blk, then it too will need to be changed from a macro to something that is runtime configurable. Could those more familiar with the code base let me know. Thanks -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Apr 29, 2016 at 06:33:59PM -0700, Ashish Samant wrote: > pagev array in scrub_block{} is of size SCRUB_MAX_PAGES_PER_BLOCK. > page_index should be checked with the same to trigger BUG_ON(). > > Signed-off-by: Ashish Samant <ashish.samant@oracle.com> Reviewed-by: David Sterba <dsterba@suse.com> -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c index 4678f03..376a6dd 100644 --- a/fs/btrfs/scrub.c +++ b/fs/btrfs/scrub.c @@ -1350,7 +1350,7 @@ static int scrub_setup_recheck_block(struct scrub_block *original_sblock, recover->bbio = bbio; recover->map_length = mapped_length; - BUG_ON(page_index >= SCRUB_PAGES_PER_RD_BIO); + BUG_ON(page_index >= SCRUB_MAX_PAGES_PER_BLOCK); nmirrors = min(scrub_nr_raid_mirrors(bbio), BTRFS_MAX_MIRRORS);
pagev array in scrub_block{} is of size SCRUB_MAX_PAGES_PER_BLOCK. page_index should be checked with the same to trigger BUG_ON(). Signed-off-by: Ashish Samant <ashish.samant@oracle.com> --- fs/btrfs/scrub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)