aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-3.18/552-ubifs-respect-silent-mount-flag.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/patches-3.18/552-ubifs-respect-silent-mount-flag.patch')
-rw-r--r--target/linux/generic/patches-3.18/552-ubifs-respect-silent-mount-flag.patch122
1 files changed, 0 insertions, 122 deletions
diff --git a/target/linux/generic/patches-3.18/552-ubifs-respect-silent-mount-flag.patch b/target/linux/generic/patches-3.18/552-ubifs-respect-silent-mount-flag.patch
deleted file mode 100644
index 2e43d251dc..0000000000
--- a/target/linux/generic/patches-3.18/552-ubifs-respect-silent-mount-flag.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From 90bea5a3f0bf680b87b90516f3c231997f4b8f3b Mon Sep 17 00:00:00 2001
-From: Daniel Golle <daniel@makrotopia.org>
-Date: Mon, 2 Jun 2014 15:51:10 +0200
-X-Git-Url: http://git.infradead.org/linux-ubifs.git/commitdiff_plain/90bea5a3f0bf680b87b90516f3c231997f4b8f3b
-X-Git-Url: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=90bea5a3f0bf680b87b90516f3c231997f4b8f3b
-Subject: UBIFS: respect MS_SILENT mount flag
-
-When attempting to mount a non-ubifs formatted volume, lots of error
-messages (including a stack dump) are thrown to the kernel log even if
-the MS_SILENT mount flag is set.
-Fix this by introducing adding an additional state-variable in
-struct ubifs_info and suppress error messages in ubifs_read_node if
-MS_SILENT is set.
-
-Signed-off-by: Daniel Golle <daniel@makrotopia.org>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
----
- fs/ubifs/io.c | 18 ++++++++++--------
- fs/ubifs/super.c | 5 +++++
- fs/ubifs/ubifs.h | 11 +++++++++++
- 3 files changed, 26 insertions(+), 8 deletions(-)
-
----
-
---- a/fs/ubifs/io.c
-+++ b/fs/ubifs/io.c
-@@ -988,30 +988,32 @@ int ubifs_read_node(const struct ubifs_i
- return err;
-
- if (type != ch->node_type) {
-- ubifs_err("bad node type (%d but expected %d)",
-- ch->node_type, type);
-+ ubifs_errc(c, "bad node type (%d but expected %d)",
-+ ch->node_type, type);
- goto out;
- }
-
- err = ubifs_check_node(c, buf, lnum, offs, 0, 0);
- if (err) {
-- ubifs_err("expected node type %d", type);
-+ ubifs_errc(c, "expected node type %d", type);
- return err;
- }
-
- l = le32_to_cpu(ch->len);
- if (l != len) {
-- ubifs_err("bad node length %d, expected %d", l, len);
-+ ubifs_errc(c, "bad node length %d, expected %d", l, len);
- goto out;
- }
-
- return 0;
-
- out:
-- ubifs_err("bad node at LEB %d:%d, LEB mapping status %d", lnum, offs,
-- ubi_is_mapped(c->ubi, lnum));
-- ubifs_dump_node(c, buf);
-- dump_stack();
-+ ubifs_errc(c, "bad node at LEB %d:%d, LEB mapping status %d", lnum,
-+ offs, ubi_is_mapped(c->ubi, lnum));
-+ if (!c->probing) {
-+ ubifs_dump_node(c, buf);
-+ dump_stack();
-+ }
- return -EINVAL;
- }
-
---- a/fs/ubifs/super.c
-+++ b/fs/ubifs/super.c
-@@ -1149,6 +1149,9 @@ static int mount_ubifs(struct ubifs_info
- size_t sz;
-
- c->ro_mount = !!(c->vfs_sb->s_flags & MS_RDONLY);
-+ /* Suppress error messages while probing if MS_SILENT is set */
-+ c->probing = !!(c->vfs_sb->s_flags & MS_SILENT);
-+
- err = init_constants_early(c);
- if (err)
- return err;
-@@ -1214,6 +1217,8 @@ static int mount_ubifs(struct ubifs_info
- if (err)
- goto out_free;
-
-+ c->probing = 0;
-+
- /*
- * Make sure the compressor which is set as default in the superblock
- * or overridden by mount options is actually compiled in.
---- a/fs/ubifs/ubifs.h
-+++ b/fs/ubifs/ubifs.h
-@@ -51,6 +51,15 @@
- #define ubifs_warn(fmt, ...) \
- pr_warn("UBIFS warning (pid %d): %s: " fmt "\n", \
- current->pid, __func__, ##__VA_ARGS__)
-+/*
-+ * A variant of 'ubifs_err()' which takes the UBIFS file-sytem description
-+ * object as an argument.
-+ */
-+#define ubifs_errc(c, fmt, ...) \
-+ do { \
-+ if (!(c)->probing) \
-+ ubifs_err(fmt, ##__VA_ARGS__); \
-+ } while (0)
-
- /* UBIFS file system VFS magic number */
- #define UBIFS_SUPER_MAGIC 0x24051905
-@@ -1209,6 +1218,7 @@ struct ubifs_debug_info;
- * @need_recovery: %1 if the file-system needs recovery
- * @replaying: %1 during journal replay
- * @mounting: %1 while mounting
-+ * @probing: %1 while attempting to mount if MS_SILENT mount flag is set
- * @remounting_rw: %1 while re-mounting from R/O mode to R/W mode
- * @replay_list: temporary list used during journal replay
- * @replay_buds: list of buds to replay
-@@ -1441,6 +1451,7 @@ struct ubifs_info {
- unsigned int replaying:1;
- unsigned int mounting:1;
- unsigned int remounting_rw:1;
-+ unsigned int probing:1;
- struct list_head replay_list;
- struct list_head replay_buds;
- unsigned long long cs_sqnum;