Re: [vserver] patch for fs/btrfs/super.c in 2.6.32.19

From: Herbert Poetzl <herbert_at_13thfloor.at>
Date: Tue 17 Aug 2010 - 15:02:36 BST
Message-ID: <20100817140236.GO330@MAIL.13thfloor.at>

On Mon, Aug 16, 2010 at 12:45:23PM -0500, Corey Wright wrote:
> the attached patch should replace the patches to fs/btrfs/super.c within
> patch-2.6.32.17-vs2.3.0.36.29.4.diff to allow it to correctly apply to
> 2.6.32.19. after applying the patch the kernel builds (where before it
> stopped with errors about "info" undefined in btrfs_parse_early_options).

> patch-2.6.32.17-vs2.3.0.36.29.4.diff applies to 2.6.32.19 without any
> failures (well, except for patching EXTRAVERSION in Makefile), but patch
> (the application) really messes things up in fs/btrfs/super.c by fuzzing
> the third patch to that file and applying it to the wrong function
> (btrfs_parse_early_options instead of btrfs_parse_options). the addition
> of the Opt_err case at the end of btrfs_parse_options's switch statement
> seems to be what confused patch, though why patch thought
> btrfs_parse_early_options's switch statement was the better match is not
> readily apparent to me.

> last night i looked in http://vserver.13thfloor.at/Experimental/ for a
> patch to 2.6.32.19 and the irc logs for references to "btrfs", but i
> didn't see anything, so i presume this is new and useful.

thanks, will look into it ...

best,
Herbert

> corey
> --
> undefined@pobox.com

> --- linux-2.6.32.19/fs/btrfs/super.c 2010-08-16 10:52:40.000000000 -0500
> +++ linux-2.6.32.19-vs2.3.0.36.29.4/fs/btrfs/super.c 2010-08-16 12:06:46.000000000 -0500
> @@ -67,7 +67,7 @@ enum {
> Opt_max_extent, Opt_max_inline, Opt_alloc_start, Opt_nobarrier,
> Opt_ssd, Opt_nossd, Opt_ssd_spread, Opt_thread_pool, Opt_noacl,
> Opt_compress, Opt_notreelog, Opt_ratio, Opt_flushoncommit,
> - Opt_discard, Opt_err,
> + Opt_tag, Opt_notag, Opt_tagid, Opt_discard, Opt_err,
> };
>
> static match_table_t tokens = {
> @@ -90,6 +90,9 @@ static match_table_t tokens = {
> {Opt_flushoncommit, "flushoncommit"},
> {Opt_ratio, "metadata_ratio=%d"},
> {Opt_discard, "discard"},
> + {Opt_tag, "tag"},
> + {Opt_notag, "notag"},
> + {Opt_tagid, "tagid=%u"},
> {Opt_err, NULL},
> };
>
> @@ -264,6 +267,22 @@ int btrfs_parse_options(struct btrfs_roo
> case Opt_discard:
> btrfs_set_opt(info->mount_opt, DISCARD);
> break;
> +#ifndef CONFIG_TAGGING_NONE
> + case Opt_tag:
> + printk(KERN_INFO "btrfs: use tagging\n");
> + btrfs_set_opt(info->mount_opt, TAGGED);
> + break;
> + case Opt_notag:
> + printk(KERN_INFO "btrfs: disabled tagging\n");
> + btrfs_clear_opt(info->mount_opt, TAGGED);
> + break;
> +#endif
> +#ifdef CONFIG_PROPAGATE
> + case Opt_tagid:
> + /* use args[0] */
> + btrfs_set_opt(info->mount_opt, TAGGED);
> + break;
> +#endif
> case Opt_err:
> printk(KERN_INFO "btrfs: unrecognized mount option "
> "'%s'\n", p);
> @@ -585,6 +604,12 @@ static int btrfs_remount(struct super_bl
> if (ret)
> return -EINVAL;
>
> + if (btrfs_test_opt(root, TAGGED) && !(sb->s_flags & MS_TAGGED)) {
> + printk("btrfs: %s: tagging not permitted on remount.\n",
> + sb->s_id);
> + return -EINVAL;
> + }
> +
> if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))
> return 0;
>
Received on Tue Aug 17 15:47:58 2010

[Next/Previous Months] [Main vserver Project Homepage] [Howto Subscribe/Unsubscribe] [Paul Sladen's vserver stuff]
Generated on Tue 17 Aug 2010 - 15:48:01 BST by hypermail 2.1.8