summaryrefslogtreecommitdiffstats
path: root/fs/udf
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2008-04-08 13:29:20 +0200
committerJan Kara <jack@suse.cz>2008-04-17 14:28:14 +0200
commit96200be3077c5ede16a90b33aca815b444e66043 (patch)
treec1ee3889fca31d55e973ab2859b19bbbee3a7d22 /fs/udf
parentfa5e08156335d0687c85b4e724db9448fb166601 (diff)
downloadlinux-96200be3077c5ede16a90b33aca815b444e66043.tar.gz
linux-96200be3077c5ede16a90b33aca815b444e66043.tar.bz2
linux-96200be3077c5ede16a90b33aca815b444e66043.zip
udf: Mount filesystem read-only if it has pseudooverwrite partition
As we don't properly support writing to pseudooverwrite partition (we should add entries to VAT and relocate blocks instead of just writing them), mount filesystems with such partition as read-only. Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/udf')
-rw-r--r--fs/udf/super.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/udf/super.c b/fs/udf/super.c
index abdb9b31da46..650f20fe9d62 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -1208,6 +1208,14 @@ static int udf_load_partdesc(struct super_block *sb, sector_t block)
ret = udf_fill_partdesc_info(sb, p, i);
if (ret)
goto out_bh;
+ /*
+ * Mark filesystem read-only if we have a partition with virtual map
+ * since we don't handle writing to it (we overwrite blocks instead of
+ * relocating them).
+ */
+ sb->s_flags |= MS_RDONLY;
+ printk(KERN_NOTICE "UDF-fs: Filesystem marked read-only because "
+ "writing to pseudooverwrite partition is not implemented.\n");
ret = udf_load_vat(sb, i, type1_idx);
out_bh: