kernel: bump 4.14 to 4.14.70
Refreshed all patches. Added new patch: - 192-Revert-ubifs-xattr-Don-t-operate-on-deleted-inodes.patch This fixes a bug introduced in upstream 4.14.68 which caused targets using ubifs to produce file-system errors on boot, rendering them useless. Compile-tested on: cns3xxx, imx6, x86_64 Runtime-tested on: cns3xxx, imx6, x86_64 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
@@ -90,7 +90,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
expired_count++;
|
||||
--- a/net/netfilter/nf_conntrack_netlink.c
|
||||
+++ b/net/netfilter/nf_conntrack_netlink.c
|
||||
@@ -1105,6 +1105,14 @@ static const struct nla_policy ct_nla_po
|
||||
@@ -1120,6 +1120,14 @@ static const struct nla_policy ct_nla_po
|
||||
.len = NF_CT_LABELS_MAX_SIZE },
|
||||
};
|
||||
|
||||
@@ -105,7 +105,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
static int ctnetlink_flush_conntrack(struct net *net,
|
||||
const struct nlattr * const cda[],
|
||||
u32 portid, int report)
|
||||
@@ -1117,7 +1125,7 @@ static int ctnetlink_flush_conntrack(str
|
||||
@@ -1132,7 +1140,7 @@ static int ctnetlink_flush_conntrack(str
|
||||
return PTR_ERR(filter);
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
portid, report);
|
||||
kfree(filter);
|
||||
|
||||
@@ -1163,6 +1171,11 @@ static int ctnetlink_del_conntrack(struc
|
||||
@@ -1178,6 +1186,11 @@ static int ctnetlink_del_conntrack(struc
|
||||
|
||||
ct = nf_ct_tuplehash_to_ctrack(h);
|
||||
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
From a99708737f566c70651015332e89d0d3b1eb5529 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
||||
Date: Mon, 17 Sep 2018 10:13:09 +0200
|
||||
Subject: [PATCH] Revert "ubifs: xattr: Don't operate on deleted inodes"
|
||||
|
||||
This reverts commit 8a23348d76a1e7716da6e76383281ac82fc071cf.
|
||||
|
||||
UBIFS wants to assert that xattr operations are only issued on files
|
||||
with positive link count. The said patch made this operations return
|
||||
-ENOENT for unlinked files such that the asserts will no longer trigger.
|
||||
This was wrong since xattr operations are perfectly fine on unlinked
|
||||
files.
|
||||
Instead the assertions need to be fixed/removed.
|
||||
|
||||
Fixes: 11a6fc3dc743 ("ubifs: xattr: Don't operate on deleted inodes")
|
||||
Reported-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
||||
Signed-off-by: Richard Weinberger <richard@nod.at>
|
||||
---
|
||||
fs/ubifs/xattr.c | 24 ------------------------
|
||||
1 file changed, 24 deletions(-)
|
||||
|
||||
--- a/fs/ubifs/xattr.c
|
||||
+++ b/fs/ubifs/xattr.c
|
||||
@@ -152,12 +152,6 @@ static int create_xattr(struct ubifs_inf
|
||||
ui->data_len = size;
|
||||
|
||||
mutex_lock(&host_ui->ui_mutex);
|
||||
-
|
||||
- if (!host->i_nlink) {
|
||||
- err = -ENOENT;
|
||||
- goto out_noent;
|
||||
- }
|
||||
-
|
||||
host->i_ctime = current_time(host);
|
||||
host_ui->xattr_cnt += 1;
|
||||
host_ui->xattr_size += CALC_DENT_SIZE(fname_len(nm));
|
||||
@@ -189,7 +183,6 @@ out_cancel:
|
||||
host_ui->xattr_size -= CALC_XATTR_BYTES(size);
|
||||
host_ui->xattr_names -= fname_len(nm);
|
||||
host_ui->flags &= ~UBIFS_CRYPT_FL;
|
||||
-out_noent:
|
||||
mutex_unlock(&host_ui->ui_mutex);
|
||||
out_free:
|
||||
make_bad_inode(inode);
|
||||
@@ -241,12 +234,6 @@ static int change_xattr(struct ubifs_inf
|
||||
mutex_unlock(&ui->ui_mutex);
|
||||
|
||||
mutex_lock(&host_ui->ui_mutex);
|
||||
-
|
||||
- if (!host->i_nlink) {
|
||||
- err = -ENOENT;
|
||||
- goto out_noent;
|
||||
- }
|
||||
-
|
||||
host->i_ctime = current_time(host);
|
||||
host_ui->xattr_size -= CALC_XATTR_BYTES(old_size);
|
||||
host_ui->xattr_size += CALC_XATTR_BYTES(size);
|
||||
@@ -268,7 +255,6 @@ static int change_xattr(struct ubifs_inf
|
||||
out_cancel:
|
||||
host_ui->xattr_size -= CALC_XATTR_BYTES(size);
|
||||
host_ui->xattr_size += CALC_XATTR_BYTES(old_size);
|
||||
-out_noent:
|
||||
mutex_unlock(&host_ui->ui_mutex);
|
||||
make_bad_inode(inode);
|
||||
out_free:
|
||||
@@ -497,12 +483,6 @@ static int remove_xattr(struct ubifs_inf
|
||||
return err;
|
||||
|
||||
mutex_lock(&host_ui->ui_mutex);
|
||||
-
|
||||
- if (!host->i_nlink) {
|
||||
- err = -ENOENT;
|
||||
- goto out_noent;
|
||||
- }
|
||||
-
|
||||
host->i_ctime = current_time(host);
|
||||
host_ui->xattr_cnt -= 1;
|
||||
host_ui->xattr_size -= CALC_DENT_SIZE(fname_len(nm));
|
||||
@@ -522,7 +502,6 @@ out_cancel:
|
||||
host_ui->xattr_size += CALC_DENT_SIZE(fname_len(nm));
|
||||
host_ui->xattr_size += CALC_XATTR_BYTES(ui->data_len);
|
||||
host_ui->xattr_names += fname_len(nm);
|
||||
-out_noent:
|
||||
mutex_unlock(&host_ui->ui_mutex);
|
||||
ubifs_release_budget(c, &req);
|
||||
make_bad_inode(inode);
|
||||
@@ -562,9 +541,6 @@ static int ubifs_xattr_remove(struct ino
|
||||
|
||||
ubifs_assert(inode_is_locked(host));
|
||||
|
||||
- if (!host->i_nlink)
|
||||
- return -ENOENT;
|
||||
-
|
||||
if (fname_len(&nm) > UBIFS_MAX_NLEN)
|
||||
return -ENAMETOOLONG;
|
||||
|
||||
@@ -15,11 +15,9 @@ Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
include/linux/mtd/mtd.h | 2 ++
|
||||
2 files changed, 40 insertions(+)
|
||||
|
||||
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
|
||||
index e7ea842ba3db..1134bb81d2e5 100644
|
||||
--- a/drivers/mtd/mtdcore.c
|
||||
+++ b/drivers/mtd/mtdcore.c
|
||||
@@ -936,6 +936,44 @@ struct mtd_info *get_mtd_device_nm(const char *name)
|
||||
@@ -922,6 +922,44 @@ out_unlock:
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(get_mtd_device_nm);
|
||||
|
||||
@@ -64,11 +62,9 @@ index e7ea842ba3db..1134bb81d2e5 100644
|
||||
void put_mtd_device(struct mtd_info *mtd)
|
||||
{
|
||||
mutex_lock(&mtd_table_mutex);
|
||||
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
|
||||
index 6cd0f6b7658b..cf7c8030cd8e 100644
|
||||
--- a/include/linux/mtd/mtd.h
|
||||
+++ b/include/linux/mtd/mtd.h
|
||||
@@ -557,6 +557,8 @@ extern struct mtd_info *get_mtd_device(struct mtd_info *mtd, int num);
|
||||
@@ -579,6 +579,8 @@ extern struct mtd_info *get_mtd_device(s
|
||||
extern int __get_mtd_device(struct mtd_info *mtd);
|
||||
extern void __put_mtd_device(struct mtd_info *mtd);
|
||||
extern struct mtd_info *get_mtd_device_nm(const char *name);
|
||||
@@ -77,6 +73,3 @@ index 6cd0f6b7658b..cf7c8030cd8e 100644
|
||||
extern void put_mtd_device(struct mtd_info *mtd);
|
||||
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
||||
@@ -11,9 +11,6 @@ Signed-off-by: Bernhard Frauendienst <kernel@nospam.obeliks.de>
|
||||
1 file changed, 36 insertions(+)
|
||||
create mode 100644 Documentation/devicetree/bindings/mtd/mtd-concat.txt
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/mtd/mtd-concat.txt b/Documentation/devicetree/bindings/mtd/mtd-concat.txt
|
||||
new file mode 100644
|
||||
index 000000000000..2daf3157b163
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/mtd/mtd-concat.txt
|
||||
@@ -0,0 +1,36 @@
|
||||
@@ -53,6 +50,3 @@ index 000000000000..2daf3157b163
|
||||
+ };
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
||||
@@ -41,31 +41,24 @@ Signed-off-by: Bernhard Frauendienst <kernel@nospam.obeliks.de>
|
||||
create mode 100644 drivers/mtd/composite/Makefile
|
||||
create mode 100644 drivers/mtd/composite/virt_concat.c
|
||||
|
||||
diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
|
||||
index 5a2d71729b9a..de18bc568e3e 100644
|
||||
--- a/drivers/mtd/Kconfig
|
||||
+++ b/drivers/mtd/Kconfig
|
||||
@@ -342,4 +342,6 @@ source "drivers/mtd/spi-nor/Kconfig"
|
||||
@@ -377,4 +377,6 @@ source "drivers/mtd/spi-nor/Kconfig"
|
||||
|
||||
source "drivers/mtd/ubi/Kconfig"
|
||||
|
||||
+source "drivers/mtd/composite/Kconfig"
|
||||
+
|
||||
endif # MTD
|
||||
diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
|
||||
index d6f8f625e1ff..a6c5f134c35d 100644
|
||||
--- a/drivers/mtd/Makefile
|
||||
+++ b/drivers/mtd/Makefile
|
||||
@@ -36,3 +36,6 @@ obj-y += chips/ lpddr/ maps/ devices/ nand/ onenand/ tests/
|
||||
@@ -39,3 +39,6 @@ obj-y += chips/ lpddr/ maps/ devices/ n
|
||||
|
||||
obj-$(CONFIG_MTD_SPI_NOR) += spi-nor/
|
||||
obj-$(CONFIG_MTD_UBI) += ubi/
|
||||
+
|
||||
+# Composite drivers must be loaded last
|
||||
+obj-y += composite/
|
||||
diff --git a/drivers/mtd/composite/Kconfig b/drivers/mtd/composite/Kconfig
|
||||
new file mode 100644
|
||||
index 000000000000..0490fc0284bb
|
||||
--- /dev/null
|
||||
+++ b/drivers/mtd/composite/Kconfig
|
||||
@@ -0,0 +1,12 @@
|
||||
@@ -81,9 +74,6 @@ index 000000000000..0490fc0284bb
|
||||
+ used as one device with partitions spanning across device boundaries.
|
||||
+
|
||||
+endmenu
|
||||
diff --git a/drivers/mtd/composite/Makefile b/drivers/mtd/composite/Makefile
|
||||
new file mode 100644
|
||||
index 000000000000..8421a0a30606
|
||||
--- /dev/null
|
||||
+++ b/drivers/mtd/composite/Makefile
|
||||
@@ -0,0 +1,6 @@
|
||||
@@ -93,9 +83,6 @@ index 000000000000..8421a0a30606
|
||||
+#
|
||||
+
|
||||
+obj-$(CONFIG_MTD_VIRT_CONCAT) += virt_concat.o
|
||||
diff --git a/drivers/mtd/composite/virt_concat.c b/drivers/mtd/composite/virt_concat.c
|
||||
new file mode 100644
|
||||
index 000000000000..bfd432188c35
|
||||
--- /dev/null
|
||||
+++ b/drivers/mtd/composite/virt_concat.c
|
||||
@@ -0,0 +1,128 @@
|
||||
@@ -227,6 +214,3 @@ index 000000000000..bfd432188c35
|
||||
+MODULE_LICENSE("GPL v2");
|
||||
+MODULE_AUTHOR("Bernhard Frauendienst <kernel@nospam.obeliks.de>");
|
||||
+MODULE_DESCRIPTION("Virtual concat MTD device driver");
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user