summaryrefslogtreecommitdiff
path: root/fs/jffs2/jffs2_fs_sb.h
diff options
context:
space:
mode:
authorAndres Salomon <dilinger@queued.net>2011-10-16 18:15:16 -0700
committerArtem Bityutskiy <artem.bityutskiy@intel.com>2011-10-19 17:22:20 +0300
commit92abc475d8de1c29373f6d96ed63d8ecaa199d25 (patch)
tree44f4d9d04fd04ccee9877e28d8fff5e472bba7d2 /fs/jffs2/jffs2_fs_sb.h
parent23b1a99b87f3fc9e4242b98b2af3c9bed210f048 (diff)
downloadlwn-92abc475d8de1c29373f6d96ed63d8ecaa199d25.tar.gz
lwn-92abc475d8de1c29373f6d96ed63d8ecaa199d25.zip
jffs2: implement mount option parsing and compression overriding
Currently jffs2 has compile-time constants (and .config options) controlling whether or not the various compression/decompression drivers are built in and enabled. This is fine for embedded systems, but it clashes with distribution kernels. Distro kernels tend to turn on everything; this causes OpenFirmware to fall over, as it understands ZLIB-compressed inodes. Booting a kernel that has LZO compression enabled, writing to the boot partition, and then rebooting causes OFW to fail to read the kernel from the filesystem. This is because LZO compression has priority when writing new data to jffs2, if LZO is enabled. This patch adds mount option parsing, and a single supported option ("compr=none"). This adds the flexibility of being able to specify which compressor overrides on a per-superblock basis. For now, we can simply disable compression; additional flexibility coming soon. v2: kill some printks, and implement show_options as suggested by Artem Bityutskiy. Signed-off-by: Andres Salomon <dilinger@queued.net> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
Diffstat (limited to 'fs/jffs2/jffs2_fs_sb.h')
-rw-r--r--fs/jffs2/jffs2_fs_sb.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/jffs2/jffs2_fs_sb.h b/fs/jffs2/jffs2_fs_sb.h
index 0bc6a6c80a56..55a0c1dceadf 100644
--- a/fs/jffs2/jffs2_fs_sb.h
+++ b/fs/jffs2/jffs2_fs_sb.h
@@ -29,6 +29,11 @@
struct jffs2_inodirty;
+struct jffs2_mount_opts {
+ bool override_compr;
+ unsigned int compr;
+};
+
/* A struct for the overall file system control. Pointers to
jffs2_sb_info structs are named `c' in the source code.
Nee jffs_control
@@ -126,6 +131,7 @@ struct jffs2_sb_info {
#endif
struct jffs2_summary *summary; /* Summary information */
+ struct jffs2_mount_opts mount_opts;
#ifdef CONFIG_JFFS2_FS_XATTR
#define XATTRINDEX_HASHSIZE (57)