kernel-hacking-2024-linux-s.../fs/ubifs
Artem Bityutskiy 2ef13294d2 UBIFS: introduce new flags for RO mounts
Commit 2fde99cb55 "UBIFS: mark VFS SB RO too"
introduced regression. This commit made UBIFS set the 'MS_RDONLY' flag in the
VFS superblock when it switches to R/O mode due to an error. This was done
to make VFS show the R/O UBIFS flag in /proc/mounts.

However, several places in UBIFS relied on the 'MS_RDONLY' flag and assume this
flag can only change when we re-mount. For example, 'ubifs_put_super()'.

This patch introduces new UBIFS flag - 'c->ro_mount' which changes only when
we re-mount, and preserves the way UBIFS was originally mounted (R/W or R/O).
This allows us to de-initialize UBIFS cleanly in 'ubifs_put_super()'.

This patch also changes all 'ubifs_assert(!c->ro_media)' assertions to
'ubifs_assert(!c->ro_media && !c->ro_mount)', because we never should write
anything if the FS was mounter R/O.

All the places where we test for 'MS_RDONLY' flag in the VFS SB were changed
and now we test the 'c->ro_mount' flag instead, because it preserves the
original UBIFS mount type, unlike the 'MS_RDONLY' flag.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2010-09-19 21:07:58 +03:00
..
budget.c writeback: enforce s_umount locking in writeback_inodes_sb 2010-06-11 12:58:07 +02:00
commit.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
compress.c
debug.c UBIFS: introduce list sorting debugging checks 2010-08-30 10:19:09 +03:00
debug.h UBIFS: introduce list sorting debugging checks 2010-08-30 10:19:09 +03:00
dir.c ubifs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:26 -04:00
file.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
find.c
gc.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
io.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
ioctl.c
journal.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
Kconfig Revert "lib: build list_sort() only if needed" 2010-03-07 09:54:44 -08:00
key.h UBIFS: mark unused key objects as invalid 2010-08-30 10:19:08 +03:00
log.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
lprops.c
lpt.c UBIFS: check return code of ubifs_lpt_lookup 2010-09-07 12:09:41 +03:00
lpt_commit.c UBIFS: check return code of pnode_lookup 2010-09-07 12:10:43 +03:00
Makefile
master.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
misc.h UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
orphan.c
recovery.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
replay.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
sb.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
scan.c UBIFS: mark unused key objects as invalid 2010-08-30 10:19:08 +03:00
shrinker.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
super.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
tnc.c UBIFS: mark unused key objects as invalid 2010-08-30 10:19:08 +03:00
tnc_commit.c
tnc_misc.c
ubifs-media.h
ubifs.h UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
xattr.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00