mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-30 16:13:54 +08:00
ubi: Introduce vol_ignored()
This makes the logic more easy to follow. Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
parent
d139d300a9
commit
243a4f8126
@ -803,6 +803,20 @@ out_unlock:
|
||||
return err;
|
||||
}
|
||||
|
||||
static bool vol_ignored(int vol_id)
|
||||
{
|
||||
switch (vol_id) {
|
||||
case UBI_LAYOUT_VOLUME_ID:
|
||||
return true;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MTD_UBI_FASTMAP
|
||||
return ubi_is_fm_vol(vol_id);
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* scan_peb - scan and process UBI headers of a PEB.
|
||||
* @ubi: UBI device description object
|
||||
@ -995,17 +1009,15 @@ static int scan_peb(struct ubi_device *ubi, struct ubi_attach_info *ai,
|
||||
*vid = vol_id;
|
||||
if (sqnum)
|
||||
*sqnum = be64_to_cpu(vidh->sqnum);
|
||||
if (vol_id > UBI_MAX_VOLUMES && vol_id != UBI_LAYOUT_VOLUME_ID) {
|
||||
if (vol_id > UBI_MAX_VOLUMES && !vol_ignored(vol_id)) {
|
||||
int lnum = be32_to_cpu(vidh->lnum);
|
||||
|
||||
/* Unsupported internal volume */
|
||||
switch (vidh->compat) {
|
||||
case UBI_COMPAT_DELETE:
|
||||
if (vol_id != UBI_FM_SB_VOLUME_ID
|
||||
&& vol_id != UBI_FM_DATA_VOLUME_ID) {
|
||||
ubi_msg(ubi, "\"delete\" compatible internal volume %d:%d found, will remove it",
|
||||
vol_id, lnum);
|
||||
}
|
||||
ubi_msg(ubi, "\"delete\" compatible internal volume %d:%d found, will remove it",
|
||||
vol_id, lnum);
|
||||
|
||||
err = add_to_list(ai, pnum, vol_id, lnum,
|
||||
ec, 1, &ai->erase);
|
||||
if (err)
|
||||
|
@ -1105,4 +1105,19 @@ static inline int idx2vol_id(const struct ubi_device *ubi, int idx)
|
||||
return idx;
|
||||
}
|
||||
|
||||
/**
|
||||
* ubi_is_fm_vol - check whether a volume ID is a Fastmap volume.
|
||||
* @vol_id: volume ID
|
||||
*/
|
||||
static inline bool ubi_is_fm_vol(int vol_id)
|
||||
{
|
||||
switch (vol_id) {
|
||||
case UBI_FM_SB_VOLUME_ID:
|
||||
case UBI_FM_DATA_VOLUME_ID:
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif /* !__UBI_UBI_H__ */
|
||||
|
Loading…
Reference in New Issue
Block a user