Re: [RFC] [PATCH] vfs: remount all file-systems R/O on emergencyremount.

From: Marco Stornelli
Date: Fri Aug 24 2012 - 09:57:35 EST


Il 24/08/2012 15:38, Artem Bityutskiy ha scritto:
On Fri, 2012-08-24 at 15:20 +0200, Marco Stornelli wrote:
Il 24/08/2012 09:26, Artem Bityutskiy ha scritto:
From: Artem Bityutskiy <artem.bityutskiy@xxxxxxxxxxxxxxx>

Currently the emergency remount (triggered by Sysrq-u) re-mounting only
those file-systems R/O, which have an associated block device (sb->s_bdev).
This does not work for file-systems like UBIFS and JFFS2 which work on top
of MTD devices (character devices) and always have sb->s_bdev = NULL.

This also does not work for tmpfs.

Most probably the intention was to avoid re-mounting R/O file-systems like
procfs, sysfs, cgroup, and debugfs. However, I do not really see why not
to remount them R/O as well in case of emergency.

This patch removes the 'sb->s_bdev != NULL' check from
'do_emergency_remount()', so _all_ file-systems will be re-mounted R/O.

Tested in Fedora - all file-systems (ext4, ubifs, procfs, sysfs, cgroup, and
debugfs) become R/O on Sysrq-u with this patch.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@xxxxxxxxxxxxxxx>

Does it make sense to remount r/o for example debugfs in this case?
Maybe if there is something wrong I want enable something to catch debug
info. Similar things for other pseudo-fs. Sure, the s_bdev seems a
strong check. We could add a new flag to know if the emergency remount
should be happen. It would give us the fs granularity, and maybe it
could be turned on/off with the mount.

May be. Or may be you are in situation that you really want all
processes top modifying anything in debugfs. This depends on the
"emergency" you deal with. You can always re-mount debugfs back to rw by
hands using something like:

mount -t debufs -o remount,rw none /sys/kernel/debug


Obviously :) Maybe it's the sign that we want let the user decide what to do if the "default behavior" is not ok.

Note: has ubifs got the field s_mtd != null? Maybe to solve the specific problem we could just write (sb->s_bdev != NULL || sb->s_mtd != NULL).

Marco
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/