This pull request contains updates for both UBI and UBIFS:
- Minor bug fixes and improvements -----BEGIN PGP SIGNATURE----- iQJKBAABCAA0FiEEdgfidid8lnn52cLTZvlZhesYu8EFAlrNLAgWHHJpY2hhcmRA c2lnbWEtc3Rhci5hdAAKCRBm+VmF6xi7wekrD/9iAGatpW5+yMO293T+bYvGcMZP B+s1eFBq5/lBR/n8DpZQ9Mj/bE7hu6mLFf/QD8/18w8s7XQa7PA+VZnWmszitHVu mh/ciVYhxoJHXD3IxGTUkuP8CxmFEWh9VdebfWmEuKva7S2fYxTYEWuk5erjtjRm Wq+yzz0DkIHjm288DzVX1DloqdJHtyYkd6lDX8dS0hFHFDwee2QYIfB/4fmFsYjV H+lwwFo2L+8OY8qlu11Li7VGN38gaNS8YJQoGgpPSRPcEzzL6EBUMdoNBTEVQZgc Jm3VzCzkHxiN2cOJTC3auP2Lwj7NMcoJkB0s5ppFPZatla+m+r5TiiBAAxoZUDYe H1zg94M+X3n9yF8LBQcuu9vwYrcKsA+wHoO2AxHr/ERdY/K6NXQOJFeoKugFliwD 3MlCz/WnQXsZI/6XgG4Lxi/WLReFXY/NPdkFAQWUagdLEKc08+mOnho7tEqVDdqM psVGB4twPkwSgNzjUt9JNu5O5DhVUr91E9zCaFG8GRwkQYDnMC24ehzcILDa2we3 +/kU74F3ncd/Kzt+UTapPjbPpYNreeSmBWUtEmpCtxifCbN7P0YdL1Ew2UcN51/z 4tID+uDybWkwSA4DW/CXHhkBXEpBEVJsAjN9VaF0oobztcdo05cSOYa0BxHVkAnq Pdp1eBwcGSFTLpJUBg== =d8gU -----END PGP SIGNATURE----- Merge tag 'tags/upstream-4.17-rc1' of git://git.infradead.org/linux-ubifs Pull UBI and UBIFS updates from Richard Weinberger: "Minor bug fixes and improvements" * tag 'tags/upstream-4.17-rc1' of git://git.infradead.org/linux-ubifs: ubi: Reject MLC NAND ubifs: Remove useless parameter of lpt_heap_replace ubifs: Constify struct ubifs_lprops in scan_for_leb_for_idx ubifs: remove unnecessary assignment ubi: Fix error for write access ubi: fastmap: Don't flush fastmap work on detach ubifs: Check ubifs_wbuf_sync() return code
This commit is contained in:
commit
77cb51e65d
|
@ -244,7 +244,7 @@ static int ubiblock_open(struct block_device *bdev, fmode_t mode)
|
|||
* in any case.
|
||||
*/
|
||||
if (mode & FMODE_WRITE) {
|
||||
ret = -EPERM;
|
||||
ret = -EROFS;
|
||||
goto out_unlock;
|
||||
}
|
||||
|
||||
|
|
|
@ -854,6 +854,17 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Both UBI and UBIFS have been designed for SLC NAND and NOR flashes.
|
||||
* MLC NAND is different and needs special care, otherwise UBI or UBIFS
|
||||
* will die soon and you will lose all your data.
|
||||
*/
|
||||
if (mtd->type == MTD_MLCNANDFLASH) {
|
||||
pr_err("ubi: refuse attaching mtd%d - MLC NAND is not supported\n",
|
||||
mtd->index);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (ubi_num == UBI_DEV_NUM_AUTO) {
|
||||
/* Search for an empty slot in the @ubi_devices array */
|
||||
for (ubi_num = 0; ubi_num < UBI_MAX_DEVICES; ubi_num++)
|
||||
|
|
|
@ -362,7 +362,6 @@ static void ubi_fastmap_close(struct ubi_device *ubi)
|
|||
{
|
||||
int i;
|
||||
|
||||
flush_work(&ubi->fm_work);
|
||||
return_unused_pool_pebs(ubi, &ubi->fm_pool);
|
||||
return_unused_pool_pebs(ubi, &ubi->fm_wl_pool);
|
||||
|
||||
|
|
|
@ -632,7 +632,7 @@ static int scan_for_idx_cb(struct ubifs_info *c,
|
|||
*/
|
||||
static const struct ubifs_lprops *scan_for_leb_for_idx(struct ubifs_info *c)
|
||||
{
|
||||
struct ubifs_lprops *lprops;
|
||||
const struct ubifs_lprops *lprops;
|
||||
struct scan_data data;
|
||||
int err;
|
||||
|
||||
|
|
|
@ -244,7 +244,6 @@ static void remove_from_lpt_heap(struct ubifs_info *c,
|
|||
/**
|
||||
* lpt_heap_replace - replace lprops in a category heap.
|
||||
* @c: UBIFS file-system description object
|
||||
* @old_lprops: LEB properties to replace
|
||||
* @new_lprops: LEB properties with which to replace
|
||||
* @cat: LEB category
|
||||
*
|
||||
|
@ -254,7 +253,6 @@ static void remove_from_lpt_heap(struct ubifs_info *c,
|
|||
* lprops. This function does that.
|
||||
*/
|
||||
static void lpt_heap_replace(struct ubifs_info *c,
|
||||
struct ubifs_lprops *old_lprops,
|
||||
struct ubifs_lprops *new_lprops, int cat)
|
||||
{
|
||||
struct ubifs_lpt_heap *heap;
|
||||
|
@ -362,7 +360,7 @@ void ubifs_replace_cat(struct ubifs_info *c, struct ubifs_lprops *old_lprops,
|
|||
case LPROPS_DIRTY:
|
||||
case LPROPS_DIRTY_IDX:
|
||||
case LPROPS_FREE:
|
||||
lpt_heap_replace(c, old_lprops, new_lprops, cat);
|
||||
lpt_heap_replace(c, new_lprops, cat);
|
||||
break;
|
||||
case LPROPS_UNCAT:
|
||||
case LPROPS_EMPTY:
|
||||
|
|
|
@ -175,7 +175,6 @@ struct ubifs_scan_leb *ubifs_start_scan(const struct ubifs_info *c, int lnum,
|
|||
void ubifs_end_scan(const struct ubifs_info *c, struct ubifs_scan_leb *sleb,
|
||||
int lnum, int offs)
|
||||
{
|
||||
lnum = lnum;
|
||||
dbg_scan("stop scanning LEB %d at offset %d", lnum, offs);
|
||||
ubifs_assert(offs % c->min_io_size == 0);
|
||||
|
||||
|
|
|
@ -1737,8 +1737,11 @@ static void ubifs_remount_ro(struct ubifs_info *c)
|
|||
|
||||
dbg_save_space_info(c);
|
||||
|
||||
for (i = 0; i < c->jhead_cnt; i++)
|
||||
ubifs_wbuf_sync(&c->jheads[i].wbuf);
|
||||
for (i = 0; i < c->jhead_cnt; i++) {
|
||||
err = ubifs_wbuf_sync(&c->jheads[i].wbuf);
|
||||
if (err)
|
||||
ubifs_ro_mode(c, err);
|
||||
}
|
||||
|
||||
c->mst_node->flags &= ~cpu_to_le32(UBIFS_MST_DIRTY);
|
||||
c->mst_node->flags |= cpu_to_le32(UBIFS_MST_NO_ORPHS);
|
||||
|
@ -1804,8 +1807,11 @@ static void ubifs_put_super(struct super_block *sb)
|
|||
int err;
|
||||
|
||||
/* Synchronize write-buffers */
|
||||
for (i = 0; i < c->jhead_cnt; i++)
|
||||
ubifs_wbuf_sync(&c->jheads[i].wbuf);
|
||||
for (i = 0; i < c->jhead_cnt; i++) {
|
||||
err = ubifs_wbuf_sync(&c->jheads[i].wbuf);
|
||||
if (err)
|
||||
ubifs_ro_mode(c, err);
|
||||
}
|
||||
|
||||
/*
|
||||
* We are being cleanly unmounted which means the
|
||||
|
|
Loading…
Reference in New Issue