From: Eric Sandeen <sandeen@redhat.com>
To: Josef Bacik <josef@toxicpanda.com>,
linux-btrfs@vger.kernel.org, kernel-team@fb.com
Subject: Re: [PATCH] btrfs: indicate iversion option in show_options
Date: Wed, 29 Jul 2020 10:42:59 -0700 [thread overview]
Message-ID: <48ad9fc0-dbdd-60f3-c1ab-f0152f6e3230@redhat.com> (raw)
In-Reply-To: <20200729164656.7153-1-josef@toxicpanda.com>
On 7/29/20 9:46 AM, Josef Bacik wrote:
> Eric reported a problem where if you did
>
> mount -o remount /some/btrfs/fs
>
> you would lose SB_I_VERSION on the mountpoint. After a very convoluted
> search I discovered this is because the remount infrastructure doesn't
> just say "change these things specifically", but it actually depends on
> userspace to tell it fucking everything that needs to be set on the
> mountpoint. This led to the fucking horrifying discovery that
> util-linux actually has to parse /proc/mounts to figure out what the
> fuck is set on the mount point in order to preserve any of the options
> it's not actually fucking with, so in this case iversion. If we don't
> indicate iversion is set, then we get iversion cleared on the mount,
> because util-linux doesn't pass in MS_I_VERSION as it's mount flags.
>
> So work around this fucking insanity by spitting out iversion in
> /proc/mounts so we get the correct flags passed to us in remount.
Hmmm:
# mount -o loop,noiversion btrfsfile mnt
# grep btrfs /proc/mounts
/dev/loop0 /tmp/mnt btrfs rw,seclabel,relatime,iversion,space_cache,subvolid=5,subvol=/ 0 0
#
> Reported-by: Eric Sandeen <sandeen@redhat.com>
> Signed-off-by: Josef Bacik <josef@toxicpanda.com>
> ---
> fs/btrfs/super.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
> index aa73422b0678..fe64aa2f5c7a 100644
> --- a/fs/btrfs/super.c
> +++ b/fs/btrfs/super.c
> @@ -1427,6 +1427,10 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry)
> seq_puts(seq, ",discard=async");
> if (!(info->sb->s_flags & SB_POSIXACL))
> seq_puts(seq, ",noacl");
> + if (info->sb->s_flags & SB_I_VERSION)
> + seq_puts(seq, ",iversion");
> + else
> + seq_puts(seq, ",noiversion");
> if (btrfs_test_opt(info, SPACE_CACHE))
> seq_puts(seq, ",space_cache");
> else if (btrfs_test_opt(info, FREE_SPACE_TREE))
>
next prev parent reply other threads:[~2020-07-29 17:43 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-29 16:46 [PATCH] btrfs: indicate iversion option in show_options Josef Bacik
2020-07-29 17:42 ` Eric Sandeen [this message]
2020-07-29 17:47 ` Josef Bacik
2020-07-29 17:49 ` Eric Sandeen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48ad9fc0-dbdd-60f3-c1ab-f0152f6e3230@redhat.com \
--to=sandeen@redhat.com \
--cc=josef@toxicpanda.com \
--cc=kernel-team@fb.com \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox