Merge branch 'linux-next' of git://git.infradead.org/ubi-2.6
* 'linux-next' of git://git.infradead.org/ubi-2.6: UBI: do not oops when erroneous PEB is scheduled for scrubbing UBI: fix kconfig unmet dependency UBI: fix forward compatibility UBI: eliminate update of list_for_each_entry loop cursor
This commit is contained in:
commit
78f220a84f
|
@ -6,7 +6,7 @@ config MTD_UBI_DEBUG
|
|||
depends on SYSFS
|
||||
depends on MTD_UBI
|
||||
select DEBUG_FS
|
||||
select KALLSYMS_ALL
|
||||
select KALLSYMS_ALL if KALLSYMS && DEBUG_KERNEL
|
||||
help
|
||||
This option enables UBI debugging.
|
||||
|
||||
|
|
|
@ -798,18 +798,18 @@ static int rename_volumes(struct ubi_device *ubi,
|
|||
goto out_free;
|
||||
}
|
||||
|
||||
re = kzalloc(sizeof(struct ubi_rename_entry), GFP_KERNEL);
|
||||
if (!re) {
|
||||
re1 = kzalloc(sizeof(struct ubi_rename_entry), GFP_KERNEL);
|
||||
if (!re1) {
|
||||
err = -ENOMEM;
|
||||
ubi_close_volume(desc);
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
re->remove = 1;
|
||||
re->desc = desc;
|
||||
list_add(&re->list, &rename_list);
|
||||
re1->remove = 1;
|
||||
re1->desc = desc;
|
||||
list_add(&re1->list, &rename_list);
|
||||
dbg_msg("will remove volume %d, name \"%s\"",
|
||||
re->desc->vol->vol_id, re->desc->vol->name);
|
||||
re1->desc->vol->vol_id, re1->desc->vol->name);
|
||||
}
|
||||
|
||||
mutex_lock(&ubi->device_mutex);
|
||||
|
|
|
@ -843,7 +843,7 @@ static int process_eb(struct ubi_device *ubi, struct ubi_scan_info *si,
|
|||
case UBI_COMPAT_DELETE:
|
||||
ubi_msg("\"delete\" compatible internal volume %d:%d"
|
||||
" found, will remove it", vol_id, lnum);
|
||||
err = add_to_list(si, pnum, ec, &si->corr);
|
||||
err = add_to_list(si, pnum, ec, &si->erase);
|
||||
if (err)
|
||||
return err;
|
||||
return 0;
|
||||
|
|
|
@ -1212,7 +1212,8 @@ int ubi_wl_scrub_peb(struct ubi_device *ubi, int pnum)
|
|||
retry:
|
||||
spin_lock(&ubi->wl_lock);
|
||||
e = ubi->lookuptbl[pnum];
|
||||
if (e == ubi->move_from || in_wl_tree(e, &ubi->scrub)) {
|
||||
if (e == ubi->move_from || in_wl_tree(e, &ubi->scrub) ||
|
||||
in_wl_tree(e, &ubi->erroneous)) {
|
||||
spin_unlock(&ubi->wl_lock);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue