Re: [PATCH v1 3/3] xfs: Add a testcase to check remount with noattr2 on a v5 xfs

Nirjhar Roy (IBM)
2025-02-13T10:00:55Z

On 2/13/25 03:17, Dave Chinner wrote:
> On Wed, Feb 12, 2025 at 12:39:58PM +0000, Nirjhar Roy (IBM) wrote:
>> This testcase reproduces the following bug:
>> Bug:
>> mount -o remount,noattr2 <device> <mount_point> succeeds
>> unexpectedly on a v5 xfs when CONFIG_XFS_SUPPORT_V4 is set.
> AFAICT, this is expected behaviour. Remount intentionally ignores
> options that cannot be changed.
>
>> Ideally the above mount command should always fail with a v5 xfs
>> filesystem irrespective of whether CONFIG_XFS_SUPPORT_V4 is set
>> or not.
> No, we cannot fail remount when invalid options are passed to the
> kernel by the mount command for historical reasons. i.e. the mount
> command has historically passed invalid options to the kernel on
> remount, but expects the kernel to apply just the new options that
> they understand and ignore the rest without error.
>
> i.e. to keep compatibility with older userspace, we cannot fail a
> remount because userspace passed an option the kernel does not
> understand or cannot change.
>
> Hence, in this case, XFS emits a deprecation warning for the noattr2
> mount option on remount (because it is understood), then ignores
> because it it isn't a valid option that remount can change.

Thank you, Dave, for the background. This was really helpful. So just to
confirm the behavior of mount - remount with noattr2 (or any other
invalid option) should always pass irrespective of whether
CONFIG_XFS_SUPPORT_V4 is set or not, correct?

This is the behavior that I have observed with CONFIG_XFS_SUPPORT_V4=n
on v5 xfs:

$ mount -o "remount,noattr2" /dev/loop0 /mnt1/test
mount: /mnt1/test: mount point not mounted or bad option.
$ echo "$?"
32

With this test, I am also parallelly working on a kernel fix to make the
behavior of remount with noattr2 same irrespective of the
CONFIG_XFS_SUPPORT_V4's value, and I was under the impression that it
should always fail. But, it seems like it should always pass (silently
ignoring the invalid mount options) and the failure when
CONFIG_XFS_SUPPORT_V4=n is a bug. Is my understanding correct?

--NR

>
> -Dave.

--
Nirjhar Roy
Linux Kernel Developer
IBM, Bangalore