From: Vyacheslav Dubeyko <slava@xxxxxxxxxxx> Subject: [PATCH 05/14] hfsplus: implement "norecovery" mount option support The patch implements support of "norecovery" mount option. Such option is usefull in the case of necessity to mount a HFS+ journaled volume in READ-ONLY mode without journal replay. Signed-off-by: Vyacheslav Dubeyko <slava@xxxxxxxxxxx> CC: Al Viro <viro@xxxxxxxxxxxxxxxxxx> CC: Christoph Hellwig <hch@xxxxxxxxxxxxx> CC: Hin-Tak Leung <htl10@xxxxxxxxxxxxxxxxxxxxx> --- Documentation/filesystems/hfsplus.txt | 4 ++++ fs/hfsplus/hfsplus_fs.h | 1 + fs/hfsplus/options.c | 8 +++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Documentation/filesystems/hfsplus.txt b/Documentation/filesystems/hfsplus.txt index af1628a..c8a4b32 100644 --- a/Documentation/filesystems/hfsplus.txt +++ b/Documentation/filesystems/hfsplus.txt @@ -50,6 +50,10 @@ When mounting an HFSPlus filesystem, the following options are accepted: nls=cccc Encoding to use when presenting file names. + norecovery + Don't load the journal on mounting. Note that this forces + mount of inconsistent filesystem, which can lead to + various problems. References ========== diff --git a/fs/hfsplus/hfsplus_fs.h b/fs/hfsplus/hfsplus_fs.h index 8a6003c..7d353eb 100644 --- a/fs/hfsplus/hfsplus_fs.h +++ b/fs/hfsplus/hfsplus_fs.h @@ -221,6 +221,7 @@ struct hfsplus_sb_info { #define HFSPLUS_SB_HFSX 3 #define HFSPLUS_SB_CASEFOLD 4 #define HFSPLUS_SB_NOBARRIER 5 +#define HFSPLUS_SB_NORECOVERY 6 static inline struct hfsplus_sb_info *HFSPLUS_SB(struct super_block *sb) { diff --git a/fs/hfsplus/options.c b/fs/hfsplus/options.c index 968eab5..71f4287 100644 --- a/fs/hfsplus/options.c +++ b/fs/hfsplus/options.c @@ -24,7 +24,7 @@ enum { opt_part, opt_session, opt_nls, opt_nodecompose, opt_decompose, opt_barrier, opt_nobarrier, - opt_force, opt_err + opt_force, opt_norecovery, opt_err }; static const match_table_t tokens = { @@ -41,6 +41,7 @@ static const match_table_t tokens = { { opt_barrier, "barrier" }, { opt_nobarrier, "nobarrier" }, { opt_force, "force" }, + { opt_norecovery, "norecovery" }, { opt_err, NULL } }; @@ -196,6 +197,9 @@ int hfsplus_parse_options(char *input, struct hfsplus_sb_info *sbi) case opt_force: set_bit(HFSPLUS_SB_FORCE, &sbi->flags); break; + case opt_norecovery: + set_bit(HFSPLUS_SB_NORECOVERY, &sbi->flags); + break; default: return 0; } @@ -235,5 +239,7 @@ int hfsplus_show_options(struct seq_file *seq, struct dentry *root) seq_printf(seq, ",nodecompose"); if (test_bit(HFSPLUS_SB_NOBARRIER, &sbi->flags)) seq_printf(seq, ",nobarrier"); + if (test_bit(HFSPLUS_SB_NORECOVERY, &sbi->flags)) + seq_printf(seq, ",norecovery"); return 0; } -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html