+ /* check for a valid ubi magic */
+ err = mtd_read(mtd, 0, 4, &len, (void *) magic);
+ 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);
+ return;
+ }
+ mtd->type == MTD_DATAFLASH ||
+ mtd->type == MTD_MLCNANDFLASH) {
+ 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);
+ mutex_unlock(&ubi_devices_mutex);
+ 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);
+ }
+ }
--- a/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
+
+ ret = ubiblock_create(&vi);
+ 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);
+ /* always break if we get here */
+ break;
{
struct ubiblock *next;
@@ -644,6 +682,10 @@ int __init ubiblock_init(void)
- */
- ubiblock_create_from_param();
+ if (ret)
+ goto err_remove;
+ /* auto-attach "rootfs" volume if existing and non-ubifs */
+ if (config_enabled(CONFIG_MTD_ROOTFS_ROOT_DEV))
--- a/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,
.setattr = ubifs_setattr,
.getattr = ubifs_getattr,
};
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
+++ b/fs/ubifs/xattr.c
@@ -209,12 +209,12 @@ static int change_xattr(struct ubifs_inf