diff options
author | Koen Vandeputte <koen.vandeputte@ncentric.com> | 2018-09-17 11:52:06 +0200 |
---|---|---|
committer | Koen Vandeputte <koen.vandeputte@ncentric.com> | 2018-09-17 15:47:44 +0200 |
commit | 0cda4af005f22f3e9a18a1760d8482be1a45e02a (patch) | |
tree | 35eef68571fbc0af7a152bd59f47fb07f1999b39 /target/linux/generic/pending-4.14 | |
parent | 784d7f0251cfd01e12f55776bf858198ff606e3c (diff) | |
download | upstream-0cda4af005f22f3e9a18a1760d8482be1a45e02a.tar.gz upstream-0cda4af005f22f3e9a18a1760d8482be1a45e02a.tar.bz2 upstream-0cda4af005f22f3e9a18a1760d8482be1a45e02a.zip |
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>
Diffstat (limited to 'target/linux/generic/pending-4.14')
4 files changed, 100 insertions, 33 deletions
diff --git a/target/linux/generic/pending-4.14/192-Revert-ubifs-xattr-Don-t-operate-on-deleted-inodes.patch b/target/linux/generic/pending-4.14/192-Revert-ubifs-xattr-Don-t-operate-on-deleted-inodes.patch new file mode 100644 index 0000000000..cd9a758e37 --- /dev/null +++ b/target/linux/generic/pending-4.14/192-Revert-ubifs-xattr-Don-t-operate-on-deleted-inodes.patch @@ -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; + diff --git a/target/linux/generic/pending-4.14/495-mtd-core-add-get_mtd_device_by_node.patch b/target/linux/generic/pending-4.14/495-mtd-core-add-get_mtd_device_by_node.patch index 32a87d34d5..b9c6bd0125 100644 --- a/target/linux/generic/pending-4.14/495-mtd-core-add-get_mtd_device_by_node.patch +++ b/target/linux/generic/pending-4.14/495-mtd-core-add-get_mtd_device_by_node.patch @@ -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 - diff --git a/target/linux/generic/pending-4.14/496-dt-bindings-add-bindings-for-mtd-concat-devices.patch b/target/linux/generic/pending-4.14/496-dt-bindings-add-bindings-for-mtd-concat-devices.patch index 99fdb0dc0f..01f3b9ec2d 100644 --- a/target/linux/generic/pending-4.14/496-dt-bindings-add-bindings-for-mtd-concat-devices.patch +++ b/target/linux/generic/pending-4.14/496-dt-bindings-add-bindings-for-mtd-concat-devices.patch @@ -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 - diff --git a/target/linux/generic/pending-4.14/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch b/target/linux/generic/pending-4.14/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch index 0c5ac5b8f8..94acc883f3 100644 --- a/target/linux/generic/pending-4.14/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch +++ b/target/linux/generic/pending-4.14/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch @@ -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 - |