generic/4.0: the ubi patches has been fixed in the 3.19 patchset already
Signed-off-by: Imre Kaloz <kaloz@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44529 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
dd451bf9d6
commit
1d512fb9d5
|
@ -36,7 +36,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
+ /* check for a valid ubi magic */
|
+ /* check for a valid ubi magic */
|
||||||
+ err = mtd_read(mtd, 0, 4, &len, (void *) magic);
|
+ err = mtd_read(mtd, 0, 4, &len, (void *) magic);
|
||||||
+ if (!err && len == 4 && strncmp(magic, "UBI#", 4)) {
|
+ if (!err && len == 4 && strncmp(magic, "UBI#", 4)) {
|
||||||
+ ubi_err("no valid UBI magic found inside mtd%d", mtd->index);
|
+ pr_err("UBI error: no valid UBI magic found inside mtd%d", mtd->index);
|
||||||
+ put_mtd_device(mtd);
|
+ put_mtd_device(mtd);
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
|
@ -47,11 +47,11 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
+ mtd->type == MTD_DATAFLASH ||
|
+ mtd->type == MTD_DATAFLASH ||
|
||||||
+ mtd->type == MTD_MLCNANDFLASH) {
|
+ mtd->type == MTD_MLCNANDFLASH) {
|
||||||
+ mutex_lock(&ubi_devices_mutex);
|
+ mutex_lock(&ubi_devices_mutex);
|
||||||
+ ubi_msg("auto-attach mtd%d", mtd->index);
|
+ pr_notice("UBI: auto-attach mtd%d", mtd->index);
|
||||||
+ err = ubi_attach_mtd_dev(mtd, UBI_DEV_NUM_AUTO, 0, 0);
|
+ err = ubi_attach_mtd_dev(mtd, UBI_DEV_NUM_AUTO, 0, 0);
|
||||||
+ mutex_unlock(&ubi_devices_mutex);
|
+ mutex_unlock(&ubi_devices_mutex);
|
||||||
+ if (err < 0) {
|
+ if (err < 0) {
|
||||||
+ ubi_err("cannot attach mtd%d", mtd->index);
|
+ pr_err("UBI error: cannot attach mtd%d", mtd->index);
|
||||||
+ put_mtd_device(mtd);
|
+ put_mtd_device(mtd);
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
|
|
@ -11,8 +11,8 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
|
||||||
--- a/drivers/mtd/ubi/block.c
|
--- a/drivers/mtd/ubi/block.c
|
||||||
+++ b/drivers/mtd/ubi/block.c
|
+++ b/drivers/mtd/ubi/block.c
|
||||||
@@ -614,6 +614,44 @@ static void __init ubiblock_create_from_
|
@@ -614,6 +614,44 @@ static int __init ubiblock_create_from_p
|
||||||
}
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
+#define UBIFS_NODE_MAGIC 0x06101831
|
+#define UBIFS_NODE_MAGIC 0x06101831
|
||||||
|
@ -46,7 +46,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
+
|
+
|
||||||
+ ret = ubiblock_create(&vi);
|
+ ret = ubiblock_create(&vi);
|
||||||
+ if (ret)
|
+ if (ret)
|
||||||
+ ubi_err("block: can't add '%s' volume, err=%d\n",
|
+ pr_err("UBI error: block: can't add '%s' volume, err=%d\n",
|
||||||
+ vi.name, ret);
|
+ vi.name, ret);
|
||||||
+ /* always break if we get here */
|
+ /* always break if we get here */
|
||||||
+ break;
|
+ break;
|
||||||
|
@ -57,8 +57,8 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
{
|
{
|
||||||
struct ubiblock *next;
|
struct ubiblock *next;
|
||||||
@@ -644,6 +682,10 @@ int __init ubiblock_init(void)
|
@@ -644,6 +682,10 @@ int __init ubiblock_init(void)
|
||||||
*/
|
if (ret)
|
||||||
ubiblock_create_from_param();
|
goto err_remove;
|
||||||
|
|
||||||
+ /* auto-attach "rootfs" volume if existing and non-ubifs */
|
+ /* auto-attach "rootfs" volume if existing and non-ubifs */
|
||||||
+ if (config_enabled(CONFIG_MTD_ROOTFS_ROOT_DEV))
|
+ if (config_enabled(CONFIG_MTD_ROOTFS_ROOT_DEV))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/fs/ubifs/file.c
|
--- a/fs/ubifs/file.c
|
||||||
+++ b/fs/ubifs/file.c
|
+++ b/fs/ubifs/file.c
|
||||||
@@ -1573,6 +1573,10 @@ const struct inode_operations ubifs_syml
|
@@ -1574,6 +1574,10 @@ const struct inode_operations ubifs_syml
|
||||||
.follow_link = ubifs_follow_link,
|
.follow_link = ubifs_follow_link,
|
||||||
.setattr = ubifs_setattr,
|
.setattr = ubifs_setattr,
|
||||||
.getattr = ubifs_getattr,
|
.getattr = ubifs_getattr,
|
||||||
|
@ -11,32 +11,6 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct file_operations ubifs_file_operations = {
|
const struct file_operations ubifs_file_operations = {
|
||||||
--- a/fs/ubifs/journal.c
|
|
||||||
+++ b/fs/ubifs/journal.c
|
|
||||||
@@ -572,6 +572,13 @@ int ubifs_jnl_update(struct ubifs_info *
|
|
||||||
aligned_dlen = ALIGN(dlen, 8);
|
|
||||||
aligned_ilen = ALIGN(ilen, 8);
|
|
||||||
len = aligned_dlen + aligned_ilen + UBIFS_INO_NODE_SZ;
|
|
||||||
+ if (xent) {
|
|
||||||
+ /*
|
|
||||||
+ * Make sure to account for host_ui->data_len in
|
|
||||||
+ * length calculation in case there is extended attribute.
|
|
||||||
+ */
|
|
||||||
+ len += host_ui->data_len;
|
|
||||||
+ }
|
|
||||||
dent = kmalloc(len, GFP_NOFS);
|
|
||||||
if (!dent)
|
|
||||||
return -ENOMEM;
|
|
||||||
@@ -648,7 +655,8 @@ int ubifs_jnl_update(struct ubifs_info *
|
|
||||||
|
|
||||||
ino_key_init(c, &ino_key, dir->i_ino);
|
|
||||||
ino_offs += aligned_ilen;
|
|
||||||
- err = ubifs_tnc_add(c, &ino_key, lnum, ino_offs, UBIFS_INO_NODE_SZ);
|
|
||||||
+ err = ubifs_tnc_add(c, &ino_key, lnum, ino_offs,
|
|
||||||
+ UBIFS_INO_NODE_SZ + host_ui->data_len);
|
|
||||||
if (err)
|
|
||||||
goto out_ro;
|
|
||||||
|
|
||||||
--- a/fs/ubifs/xattr.c
|
--- a/fs/ubifs/xattr.c
|
||||||
+++ b/fs/ubifs/xattr.c
|
+++ b/fs/ubifs/xattr.c
|
||||||
@@ -209,12 +209,12 @@ static int change_xattr(struct ubifs_inf
|
@@ -209,12 +209,12 @@ static int change_xattr(struct ubifs_inf
|
||||||
|
|
Loading…
Reference in New Issue