Message ID | d05a46053f82b1b716cad4178c91242ed515b166.1455556900.git.dsterba@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Nice fix. thanks Reviewed-by: Anand Jain <anand.jain@oracle.com> On 02/16/2016 01:34 AM, David Sterba wrote: > Signed-off-by: David Sterba <dsterba@suse.com> > --- > fs/btrfs/volumes.c | 15 +++++++++++++++ > fs/btrfs/volumes.h | 2 +- > 2 files changed, 16 insertions(+), 1 deletion(-) > > diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c > index ae94e06f3e61..a67249582a6f 100644 > --- a/fs/btrfs/volumes.c > +++ b/fs/btrfs/volumes.c > @@ -118,6 +118,21 @@ const u64 btrfs_raid_group[BTRFS_NR_RAID_TYPES] = { > [BTRFS_RAID_RAID6] = BTRFS_BLOCK_GROUP_RAID6, > }; > > +/* > + * Table to convert BTRFS_RAID_* to the error code if minimum number of devices > + * condition is not met. Zero means there's no corresponding > + * BTRFS_ERROR_DEV_*_NOT_MET value. > + */ > +const int btrfs_raid_mindev_error[BTRFS_NR_RAID_TYPES] = { > + [BTRFS_RAID_RAID10] = BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET, > + [BTRFS_RAID_RAID1] = BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET, > + [BTRFS_RAID_DUP] = 0, > + [BTRFS_RAID_RAID0] = 0, > + [BTRFS_RAID_SINGLE] = 0, > + [BTRFS_RAID_RAID5] = BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET, > + [BTRFS_RAID_RAID6] = BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET, > +}; > + > static int init_first_rw_device(struct btrfs_trans_handle *trans, > struct btrfs_root *root, > struct btrfs_device *device); > diff --git a/fs/btrfs/volumes.h b/fs/btrfs/volumes.h > index c73d027e2f8b..a13a538cb01e 100644 > --- a/fs/btrfs/volumes.h > +++ b/fs/btrfs/volumes.h > @@ -340,7 +340,7 @@ struct btrfs_raid_attr { > }; > > extern const struct btrfs_raid_attr btrfs_raid_array[BTRFS_NR_RAID_TYPES]; > - > +extern const int btrfs_raid_mindev_error[BTRFS_NR_RAID_TYPES]; > extern const u64 btrfs_raid_group[BTRFS_NR_RAID_TYPES]; > > struct map_lookup { > -- 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/volumes.c b/fs/btrfs/volumes.c index ae94e06f3e61..a67249582a6f 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -118,6 +118,21 @@ const u64 btrfs_raid_group[BTRFS_NR_RAID_TYPES] = { [BTRFS_RAID_RAID6] = BTRFS_BLOCK_GROUP_RAID6, }; +/* + * Table to convert BTRFS_RAID_* to the error code if minimum number of devices + * condition is not met. Zero means there's no corresponding + * BTRFS_ERROR_DEV_*_NOT_MET value. + */ +const int btrfs_raid_mindev_error[BTRFS_NR_RAID_TYPES] = { + [BTRFS_RAID_RAID10] = BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET, + [BTRFS_RAID_RAID1] = BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET, + [BTRFS_RAID_DUP] = 0, + [BTRFS_RAID_RAID0] = 0, + [BTRFS_RAID_SINGLE] = 0, + [BTRFS_RAID_RAID5] = BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET, + [BTRFS_RAID_RAID6] = BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET, +}; + static int init_first_rw_device(struct btrfs_trans_handle *trans, struct btrfs_root *root, struct btrfs_device *device); diff --git a/fs/btrfs/volumes.h b/fs/btrfs/volumes.h index c73d027e2f8b..a13a538cb01e 100644 --- a/fs/btrfs/volumes.h +++ b/fs/btrfs/volumes.h @@ -340,7 +340,7 @@ struct btrfs_raid_attr { }; extern const struct btrfs_raid_attr btrfs_raid_array[BTRFS_NR_RAID_TYPES]; - +extern const int btrfs_raid_mindev_error[BTRFS_NR_RAID_TYPES]; extern const u64 btrfs_raid_group[BTRFS_NR_RAID_TYPES]; struct map_lookup {
Signed-off-by: David Sterba <dsterba@suse.com> --- fs/btrfs/volumes.c | 15 +++++++++++++++ fs/btrfs/volumes.h | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-)