Message ID | 79C58B25-8ECF-432B-AE90-2194921DB797@live.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] hfsplus: Add module parameter to enable force writes | expand |
Hi Aditya, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on akpm-mm/mm-everything] [also build test WARNING on linus/master v6.1-rc7 next-20221202] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Aditya-Garg/hfsplus-Add-module-parameter-to-enable-force-writes/20221203-151143 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything patch link: https://lore.kernel.org/r/79C58B25-8ECF-432B-AE90-2194921DB797%40live.com patch subject: [PATCH v2] hfsplus: Add module parameter to enable force writes reproduce: # https://github.com/intel-lab-lkp/linux/commit/dfb483e3c16e562d768f9bddc63252f1cccb0275 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Aditya-Garg/hfsplus-Add-module-parameter-to-enable-force-writes/20221203-151143 git checkout dfb483e3c16e562d768f9bddc63252f1cccb0275 make menuconfig # enable CONFIG_COMPILE_TEST, CONFIG_WARN_MISSING_DOCUMENTS, CONFIG_WARN_ABI_ERRORS make htmldocs If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> Documentation/filesystems/hfsplus.rst:65: WARNING: Unexpected indentation. vim +65 Documentation/filesystems/hfsplus.rst 60 61 force_journaled_rw=n, force_locked_rw=n 62 Used to force enable writes on volumes marked as journaled/locked. 63 Its risky to use them as they may cause data corruption. 64 Accepted values: > 65 0 (default): Disables writes 66 1: Enables writes 67 68
> On 04-Dec-2022, at 6:35 AM, kernel test robot <lkp@intel.com> wrote: > > Hi Aditya, > > Thank you for the patch! Perhaps something to improve: > > [auto build test WARNING on akpm-mm/mm-everything] > [also build test WARNING on linus/master v6.1-rc7 next-20221202] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > url: https://github.com/intel-lab-lkp/linux/commits/Aditya-Garg/hfsplus-Add-module-parameter-to-enable-force-writes/20221203-151143 > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything > patch link: https://lore.kernel.org/r/79C58B25-8ECF-432B-AE90-2194921DB797%40live.com > patch subject: [PATCH v2] hfsplus: Add module parameter to enable force writes > reproduce: > # https://github.com/intel-lab-lkp/linux/commit/dfb483e3c16e562d768f9bddc63252f1cccb0275 > git remote add linux-review https://github.com/intel-lab-lkp/linux > git fetch --no-tags linux-review Aditya-Garg/hfsplus-Add-module-parameter-to-enable-force-writes/20221203-151143 > git checkout dfb483e3c16e562d768f9bddc63252f1cccb0275 > make menuconfig > # enable CONFIG_COMPILE_TEST, CONFIG_WARN_MISSING_DOCUMENTS, CONFIG_WARN_ABI_ERRORS > make htmldocs > > If you fix the issue, kindly add following tag where applicable > | Reported-by: kernel test robot <lkp@intel.com> > > All warnings (new ones prefixed by >>): > >>> Documentation/filesystems/hfsplus.rst:65: WARNING: Unexpected indentation. > Do I need to fix this or should I consider it as a false positive?
On Sun, Dec 04, 2022 at 06:43:43AM +0000, Aditya Garg wrote: > > > > On 04-Dec-2022, at 6:35 AM, kernel test robot <lkp@intel.com> wrote: > > > > Hi Aditya, > > > > Thank you for the patch! Perhaps something to improve: > > > > [auto build test WARNING on akpm-mm/mm-everything] > > [also build test WARNING on linus/master v6.1-rc7 next-20221202] > > [If your patch is applied to the wrong git tree, kindly drop us a note. > > And when submitting patch, we suggest to use '--base' as documented in > > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > > > url: https://github.com/intel-lab-lkp/linux/commits/Aditya-Garg/hfsplus-Add-module-parameter-to-enable-force-writes/20221203-151143 > > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything > > patch link: https://lore.kernel.org/r/79C58B25-8ECF-432B-AE90-2194921DB797%40live.com > > patch subject: [PATCH v2] hfsplus: Add module parameter to enable force writes > > reproduce: > > # https://github.com/intel-lab-lkp/linux/commit/dfb483e3c16e562d768f9bddc63252f1cccb0275 > > git remote add linux-review https://github.com/intel-lab-lkp/linux > > git fetch --no-tags linux-review Aditya-Garg/hfsplus-Add-module-parameter-to-enable-force-writes/20221203-151143 > > git checkout dfb483e3c16e562d768f9bddc63252f1cccb0275 > > make menuconfig > > # enable CONFIG_COMPILE_TEST, CONFIG_WARN_MISSING_DOCUMENTS, CONFIG_WARN_ABI_ERRORS > > make htmldocs > > > > If you fix the issue, kindly add following tag where applicable > > | Reported-by: kernel test robot <lkp@intel.com> > > > > All warnings (new ones prefixed by >>): > > > >>> Documentation/filesystems/hfsplus.rst:65: WARNING: Unexpected indentation. > > > > Do I need to fix this or should I consider it as a false positive? Your patch creates the warning, so yes you need to fix it.
diff --git a/Documentation/filesystems/hfsplus.rst b/Documentation/filesystems/hfsplus.rst index f02f4f5fc..85feca0b0 100644 --- a/Documentation/filesystems/hfsplus.rst +++ b/Documentation/filesystems/hfsplus.rst @@ -46,13 +46,26 @@ When mounting an HFSPlus filesystem, the following options are accepted: Do not decompose file name characters. force - Used to force write access to volumes that are marked as journalled + Used to force write access to volumes that are marked as journaled or locked. Use at your own risk. nls=cccc Encoding to use when presenting file names. +Module Parameters +================= + +The HFSPlus module supports the following module parameters: + + force_journaled_rw=n, force_locked_rw=n + Used to force enable writes on volumes marked as journaled/locked. + Its risky to use them as they may cause data corruption. + Accepted values: + 0 (default): Disables writes + 1: Enables writes + + References ========== diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c index 122ed89eb..91812c4c3 100644 --- a/fs/hfsplus/super.c +++ b/fs/hfsplus/super.c @@ -24,6 +24,16 @@ static void hfsplus_free_inode(struct inode *inode); #include "hfsplus_fs.h" #include "xattr.h" +static unsigned int force_journaled_rw; +module_param(force_journaled_rw, uint, 0644); +MODULE_PARM_DESC(force_journaled_rw, "Force enable writes on Journaled HFS+ volumes. " + "([0] = disabled, 1 = enabled)"); + +static unsigned int force_locked_rw; +module_param(force_locked_rw, uint, 0644); +MODULE_PARM_DESC(force_locked_rw, "Force enable writes on locked HFS+ volumes. " + "([0] = disabled, 1 = enabled)"); + static int hfsplus_system_read_inode(struct inode *inode) { struct hfsplus_vh *vhdr = HFSPLUS_SB(inode->i_sb)->s_vhdr; @@ -346,14 +356,22 @@ static int hfsplus_remount(struct super_block *sb, int *flags, char *data) /* nothing */ } else if (vhdr->attributes & cpu_to_be32(HFSPLUS_VOL_SOFTLOCK)) { - pr_warn("filesystem is marked locked, leaving read-only.\n"); - sb->s_flags |= SB_RDONLY; - *flags |= SB_RDONLY; + if (force_locked_rw) { + pr_warn("filesystem is marked locked, but writes have been force enabled.\n"); + } else { + pr_warn("filesystem is marked locked, leaving read-only.\n"); + sb->s_flags |= SB_RDONLY; + *flags |= SB_RDONLY; + } } else if (vhdr->attributes & cpu_to_be32(HFSPLUS_VOL_JOURNALED)) { - pr_warn("filesystem is marked journaled, leaving read-only.\n"); - sb->s_flags |= SB_RDONLY; - *flags |= SB_RDONLY; + if (force_journaled_rw) { + pr_warn("filesystem is marked journaled, but writes have been force enabled.\n"); + } else { + pr_warn("filesystem is marked journaled, leaving read-only.\n"); + sb->s_flags |= SB_RDONLY; + *flags |= SB_RDONLY; + } } } return 0; @@ -459,12 +477,23 @@ static int hfsplus_fill_super(struct super_block *sb, void *data, int silent) } else if (test_and_clear_bit(HFSPLUS_SB_FORCE, &sbi->flags)) { /* nothing */ } else if (vhdr->attributes & cpu_to_be32(HFSPLUS_VOL_SOFTLOCK)) { - pr_warn("Filesystem is marked locked, mounting read-only.\n"); - sb->s_flags |= SB_RDONLY; + if (force_locked_rw) { + pr_warn("Filesystem is marked locked, but writes have been force enabled.\n"); + } else { + pr_warn("Filesystem is marked locked, mounting read-only.\n"); + sb->s_flags |= SB_RDONLY; + } } else if ((vhdr->attributes & cpu_to_be32(HFSPLUS_VOL_JOURNALED)) && !sb_rdonly(sb)) { - pr_warn("write access to a journaled filesystem is not supported, use the force option at your own risk, mounting read-only.\n"); - sb->s_flags |= SB_RDONLY; + if (force_journaled_rw) { + pr_warn("write access to a journaled filesystem is " + "not supported, but has been force enabled.\n"); + } else { + pr_warn("write access to a journaled filesystem is " + "not supported, use the force option at your " + "own risk, mounting read-only.\n"); + sb->s_flags |= SB_RDONLY; + } } err = -EINVAL;