> Date: Wed, 15 Oct 2008 18:03:13 +1100
> To: options@xxxxxxxxxxxxxxxxx, unrecognized@xxxxxxxxxxxxxxxxx,
> with@xxxxxxxxxxxxxxxxx, rw@xxxxxxxxxxxxxxxxx,
> remount@xxxxxxxxxxxxxxxxx, fix@xxxxxxxxxxxxxxxxx,
> XFS@xxxxxxxxxxxxxxxxx
I don't think that made it to the right place ... :)
(stable@xxxxxxxxxxxxxxx)
-Eric
Tim Shimmin wrote:
> Hi Linus,
>
> Please include the following patch for 2.6.27.1 stable release as
> suggested by Christoph Hellwig and Eric Sandeen.
> It fixes a regression in the recent remount recoding
> where remounting say from ro to rw allows the xfs flags to
> be out of sync with the vfs flags, resulting
> in failures for some programs such as touch (which end up calling
> xfs_setattr).
> The fix is a very minor and clear.
>
> Thanks,
> Tim.
>
> Date: Sun, 12 Oct 2008 14:30:44 +0200
> From: Christoph Hellwig <hch@xxxxxx>
> To: xfs@xxxxxxxxxxx
> Subject: [PATCH] fix remount rw with unrecognized options
>
> When we skip unrecognized options in xfs_fs_remount we should just break
> out of the switch and not return because otherwise we may skip clearing
> the xfs-internal read-only flag. This will only show up on some
> operations like touch because most read-only checks are done by the VFS
> which thinks this filesystem is r/w. Eventually we should replace the
> XFS read-only flag with a helper that always checks the VFS flag to make
> sure they can never get out of sync.
>
> Bug reported and fix verified by Marcel Beister on #xfs.
> Bug fix verified by updated xfstests/189.
>
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> Acked-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
> Signed-off-by: Timothy Shimmin <tes@xxxxxxx>
>
> Index: mainline/fs/xfs/linux-2.6/xfs_super.c
> ===================================================================
> --- mainline.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-15
> 17:59:26.542652847 +1100
> +++ mainline/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:45.376217172
> +1100
> @@ -1323,7 +1323,7 @@ xfs_fs_remount(
> "XFS: mount option \"%s\" not supported for remount\n", p);
> return -EINVAL;
> #else
> - return 0;
> + break;
> #endif
> }
> }
>
>
|