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 SYSFS
|
||||||
depends on MTD_UBI
|
depends on MTD_UBI
|
||||||
select DEBUG_FS
|
select DEBUG_FS
|
||||||
select KALLSYMS_ALL
|
select KALLSYMS_ALL if KALLSYMS && DEBUG_KERNEL
|
||||||
help
|
help
|
||||||
This option enables UBI debugging.
|
This option enables UBI debugging.
|
||||||
|
|
||||||
|
@ -798,18 +798,18 @@ static int rename_volumes(struct ubi_device *ubi,
|
|||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
re = kzalloc(sizeof(struct ubi_rename_entry), GFP_KERNEL);
|
re1 = kzalloc(sizeof(struct ubi_rename_entry), GFP_KERNEL);
|
||||||
if (!re) {
|
if (!re1) {
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
ubi_close_volume(desc);
|
ubi_close_volume(desc);
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
re->remove = 1;
|
re1->remove = 1;
|
||||||
re->desc = desc;
|
re1->desc = desc;
|
||||||
list_add(&re->list, &rename_list);
|
list_add(&re1->list, &rename_list);
|
||||||
dbg_msg("will remove volume %d, name \"%s\"",
|
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);
|
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:
|
case UBI_COMPAT_DELETE:
|
||||||
ubi_msg("\"delete\" compatible internal volume %d:%d"
|
ubi_msg("\"delete\" compatible internal volume %d:%d"
|
||||||
" found, will remove it", vol_id, lnum);
|
" 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)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1212,7 +1212,8 @@ int ubi_wl_scrub_peb(struct ubi_device *ubi, int pnum)
|
|||||||
retry:
|
retry:
|
||||||
spin_lock(&ubi->wl_lock);
|
spin_lock(&ubi->wl_lock);
|
||||||
e = ubi->lookuptbl[pnum];
|
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);
|
spin_unlock(&ubi->wl_lock);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user