diff options
| -rw-r--r-- | drivers/mtd/ubi/ubi.h | 16 | ||||
| -rw-r--r-- | drivers/mtd/ubi/vmt.c | 12 |
2 files changed, 9 insertions, 19 deletions
diff --git a/drivers/mtd/ubi/ubi.h b/drivers/mtd/ubi/ubi.h index 3cf1aa1a0240..90cdcad83cbb 100644 --- a/drivers/mtd/ubi/ubi.h +++ b/drivers/mtd/ubi/ubi.h | |||
| @@ -144,7 +144,6 @@ struct ubi_volume_desc; | |||
| 144 | * @readers: number of users holding this volume in read-only mode | 144 | * @readers: number of users holding this volume in read-only mode |
| 145 | * @writers: number of users holding this volume in read-write mode | 145 | * @writers: number of users holding this volume in read-write mode |
| 146 | * @exclusive: whether somebody holds this volume in exclusive mode | 146 | * @exclusive: whether somebody holds this volume in exclusive mode |
| 147 | * @checked: if this static volume was checked | ||
| 148 | * | 147 | * |
| 149 | * @reserved_pebs: how many physical eraseblocks are reserved for this volume | 148 | * @reserved_pebs: how many physical eraseblocks are reserved for this volume |
| 150 | * @vol_type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME) | 149 | * @vol_type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME) |
| @@ -152,21 +151,22 @@ struct ubi_volume_desc; | |||
| 152 | * @used_ebs: how many logical eraseblocks in this volume contain data | 151 | * @used_ebs: how many logical eraseblocks in this volume contain data |
| 153 | * @last_eb_bytes: how many bytes are stored in the last logical eraseblock | 152 | * @last_eb_bytes: how many bytes are stored in the last logical eraseblock |
| 154 | * @used_bytes: how many bytes of data this volume contains | 153 | * @used_bytes: how many bytes of data this volume contains |
| 155 | * @upd_marker: non-zero if the update marker is set for this volume | ||
| 156 | * @corrupted: non-zero if the volume is corrupted (static volumes only) | ||
| 157 | * @alignment: volume alignment | 154 | * @alignment: volume alignment |
| 158 | * @data_pad: how many bytes are not used at the end of physical eraseblocks to | 155 | * @data_pad: how many bytes are not used at the end of physical eraseblocks to |
| 159 | * satisfy the requested alignment | 156 | * satisfy the requested alignment |
| 160 | * @name_len: volume name length | 157 | * @name_len: volume name length |
| 161 | * @name: volume name | 158 | * @name: volume name |
| 162 | * | 159 | * |
| 163 | * @updating: whether the volume is being updated | ||
| 164 | * @upd_ebs: how many eraseblocks are expected to be updated | 160 | * @upd_ebs: how many eraseblocks are expected to be updated |
| 165 | * @upd_bytes: how many bytes are expected to be received | 161 | * @upd_bytes: how many bytes are expected to be received |
| 166 | * @upd_received: how many update bytes were already received | 162 | * @upd_received: how many update bytes were already received |
| 167 | * @upd_buf: update buffer which is used to collect update data | 163 | * @upd_buf: update buffer which is used to collect update data |
| 168 | * | 164 | * |
| 169 | * @eba_tbl: EBA table of this volume (LEB->PEB mapping) | 165 | * @eba_tbl: EBA table of this volume (LEB->PEB mapping) |
| 166 | * @checked: %1 if this static volume was checked | ||
| 167 | * @corrupted: %1 if the volume is corrupted (static volumes only) | ||
| 168 | * @upd_marker: %1 if the update marker is set for this volume | ||
| 169 | * @updating: %1 if the volume is being updated | ||
| 170 | * | 170 | * |
| 171 | * @gluebi_desc: gluebi UBI volume descriptor | 171 | * @gluebi_desc: gluebi UBI volume descriptor |
| 172 | * @gluebi_refcount: reference count of the gluebi MTD device | 172 | * @gluebi_refcount: reference count of the gluebi MTD device |
| @@ -189,7 +189,6 @@ struct ubi_volume { | |||
| 189 | int readers; | 189 | int readers; |
| 190 | int writers; | 190 | int writers; |
| 191 | int exclusive; | 191 | int exclusive; |
| 192 | int checked; | ||
| 193 | 192 | ||
| 194 | int reserved_pebs; | 193 | int reserved_pebs; |
| 195 | int vol_type; | 194 | int vol_type; |
| @@ -197,20 +196,21 @@ struct ubi_volume { | |||
| 197 | int used_ebs; | 196 | int used_ebs; |
| 198 | int last_eb_bytes; | 197 | int last_eb_bytes; |
| 199 | long long used_bytes; | 198 | long long used_bytes; |
| 200 | int upd_marker; | ||
| 201 | int corrupted; | ||
| 202 | int alignment; | 199 | int alignment; |
| 203 | int data_pad; | 200 | int data_pad; |
| 204 | int name_len; | 201 | int name_len; |
| 205 | char name[UBI_VOL_NAME_MAX+1]; | 202 | char name[UBI_VOL_NAME_MAX+1]; |
| 206 | 203 | ||
| 207 | int updating; | ||
| 208 | int upd_ebs; | 204 | int upd_ebs; |
| 209 | long long upd_bytes; | 205 | long long upd_bytes; |
| 210 | long long upd_received; | 206 | long long upd_received; |
| 211 | void *upd_buf; | 207 | void *upd_buf; |
| 212 | 208 | ||
| 213 | int *eba_tbl; | 209 | int *eba_tbl; |
| 210 | int checked:1; | ||
| 211 | int corrupted:1; | ||
| 212 | int upd_marker:1; | ||
| 213 | int updating:1; | ||
| 214 | 214 | ||
| 215 | #ifdef CONFIG_MTD_UBI_GLUEBI | 215 | #ifdef CONFIG_MTD_UBI_GLUEBI |
| 216 | /* Gluebi-related stuff may be compiled out */ | 216 | /* Gluebi-related stuff may be compiled out */ |
diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c index 177227e1f80d..221ce70be569 100644 --- a/drivers/mtd/ubi/vmt.c +++ b/drivers/mtd/ubi/vmt.c | |||
| @@ -526,7 +526,6 @@ int ubi_resize_volume(struct ubi_volume_desc *desc, int reserved_pebs) | |||
| 526 | } | 526 | } |
| 527 | spin_unlock(&ubi->volumes_lock); | 527 | spin_unlock(&ubi->volumes_lock); |
| 528 | 528 | ||
| 529 | |||
| 530 | /* Reserve physical eraseblocks */ | 529 | /* Reserve physical eraseblocks */ |
| 531 | pebs = reserved_pebs - vol->reserved_pebs; | 530 | pebs = reserved_pebs - vol->reserved_pebs; |
| 532 | if (pebs > 0) { | 531 | if (pebs > 0) { |
| @@ -746,11 +745,6 @@ static void paranoid_check_volume(struct ubi_device *ubi, int vol_id) | |||
| 746 | goto fail; | 745 | goto fail; |
| 747 | } | 746 | } |
| 748 | 747 | ||
| 749 | if (vol->upd_marker != 0 && vol->upd_marker != 1) { | ||
| 750 | ubi_err("bad upd_marker"); | ||
| 751 | goto fail; | ||
| 752 | } | ||
| 753 | |||
| 754 | if (vol->upd_marker && vol->corrupted) { | 748 | if (vol->upd_marker && vol->corrupted) { |
| 755 | dbg_err("update marker and corrupted simultaneously"); | 749 | dbg_err("update marker and corrupted simultaneously"); |
| 756 | goto fail; | 750 | goto fail; |
| @@ -785,7 +779,7 @@ static void paranoid_check_volume(struct ubi_device *ubi, int vol_id) | |||
| 785 | 779 | ||
| 786 | n = (long long)vol->used_ebs * vol->usable_leb_size; | 780 | n = (long long)vol->used_ebs * vol->usable_leb_size; |
| 787 | if (vol->vol_type == UBI_DYNAMIC_VOLUME) { | 781 | if (vol->vol_type == UBI_DYNAMIC_VOLUME) { |
| 788 | if (vol->corrupted != 0) { | 782 | if (vol->corrupted) { |
| 789 | ubi_err("corrupted dynamic volume"); | 783 | ubi_err("corrupted dynamic volume"); |
| 790 | goto fail; | 784 | goto fail; |
| 791 | } | 785 | } |
| @@ -802,10 +796,6 @@ static void paranoid_check_volume(struct ubi_device *ubi, int vol_id) | |||
| 802 | goto fail; | 796 | goto fail; |
| 803 | } | 797 | } |
| 804 | } else { | 798 | } else { |
| 805 | if (vol->corrupted != 0 && vol->corrupted != 1) { | ||
| 806 | ubi_err("bad corrupted"); | ||
| 807 | goto fail; | ||
| 808 | } | ||
| 809 | if (vol->used_ebs < 0 || vol->used_ebs > vol->reserved_pebs) { | 799 | if (vol->used_ebs < 0 || vol->used_ebs > vol->reserved_pebs) { |
| 810 | ubi_err("bad used_ebs"); | 800 | ubi_err("bad used_ebs"); |
| 811 | goto fail; | 801 | goto fail; |
