|
@@ -409,6 +409,12 @@ static int nilfs_store_disk_layout(struct the_nilfs *nilfs,
|
|
|
nilfs->ns_first_data_block = le64_to_cpu(sbp->s_first_data_block);
|
|
|
nilfs->ns_r_segments_percentage =
|
|
|
le32_to_cpu(sbp->s_r_segments_percentage);
|
|
|
+ if (nilfs->ns_r_segments_percentage < 1 ||
|
|
|
+ nilfs->ns_r_segments_percentage > 99) {
|
|
|
+ printk(KERN_ERR "NILFS: invalid reserved segments percentage.\n");
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
+
|
|
|
nilfs_set_nsegments(nilfs, le64_to_cpu(sbp->s_nsegments));
|
|
|
nilfs->ns_crc_seed = le32_to_cpu(sbp->s_crc_seed);
|
|
|
return 0;
|