[PATCH v3] ubifs: respect MS_SILENT mount flag

Brian Norris computersforpeace at gmail.com
Fri May 30 16:20:39 PDT 2014


Hi Daniel,

On Sat, May 31, 2014 at 12:01:56AM +0200, Daniel Golle wrote:
> 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 at makrotopia.org>
> ---
> v3: use state variable in ubifs_info instead of 

Instead of what?? I'm dying to know!

(Just kidding; I can read your previous conversations. Hint: the answer
is "a function argument.")

>  fs/ubifs/io.c    | 14 ++++++++------
>  fs/ubifs/super.c |  4 ++++
>  fs/ubifs/ubifs.h |  9 +++++++++
>  3 files changed, 21 insertions(+), 6 deletions(-)
> 
[...]
> diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h
> index e8c8cfe..6aa1550 100644
> --- a/fs/ubifs/ubifs.h
> +++ b/fs/ubifs/ubifs.h
> @@ -52,6 +52,14 @@
>  	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, ...)                                    \
> +	if (!(c)->probing)                                         \
> +		ubifs_err(fmt, ##__VA_ARGS__)

Nitpick: might you want to wrap the whole condition in do { } while (0),
so that a user can't shoot themselves in the foot with something like:

	if (condition)
		ubifs_errc(c, "hello world");
	else
		do_something_else();

which will expand to the following unexpected code:

	if (condition)
		if (!c->probing)
			ubifs_err("hello world");
		else
			do_something_else();

> +
>  /* UBIFS file system VFS magic number */
>  #define UBIFS_SUPER_MAGIC 0x24051905
>  

Brian



More information about the linux-mtd mailing list