xfs
[Top] [All Lists]

Re: [PATCH] XFS fix remount rw with unrecognized options

To: Jianjun Kong <jianjun@xxxxxxxxx>
Subject: Re: [PATCH] XFS fix remount rw with unrecognized options
From: Américo Wang <xiyou.wangcong@xxxxxxxxx>
Date: Thu, 16 Oct 2008 14:59:26 +0100
Cc: Tim Shimmin <tes@xxxxxxx>, stable@xxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :message-id:references:mime-version:content-type:content-disposition :in-reply-to:user-agent; bh=xCPd92PuFibKUgYANscrkBaOs/A1rNrw18iWBU5JeNo=; b=vbVS04OnXSfnUcu8oRrMSUCM/eMvzq7zP0c/nD7dCmW7MOqdQuZHlxTTMX9Bo6996y REpgEvSpcIJFVbRokZjoeX0cIRK0YAduZwnn43rF7LtwuxfCqNklIEjULAkHligJZH1M wd2J8jndfZVZ0WkdtT6NeLZdacbVUThRhAMOw=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=MZcruhpiFtgOjTSorWV2C4Fg1hvaZ/ZOxNfPzmxGIRwvFi6NNsBZu4RwaDq5DSaSs4 ZOHKcKq0NrGddeTOPXaBlwsKwnY94CKz6HH7hmDLDBjseG+0XYn+Ut9b3piex4XLxH2e iUSAFsZxZLTykbcfhYzl9uqa1WlGC43kFH0u4=
In-reply-to: <20081016134112.GA8773@ubuntu>
References: <20081016002926.D912558FA22B@xxxxxxxxxxxxxxxxxxxxxxx> <20081016134112.GA8773@ubuntu>
User-agent: Mutt/1.5.18 (2008-05-17)
On Thu, Oct 16, 2008 at 09:41:12PM +0800, Jianjun Kong wrote:
>On Thu, Oct 16, 2008 at 11:29:26AM +1100, Tim Shimmin wrote:
>>Resending as I mangled sending the mail from home last time. Sorry.
>>
>>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
>>              }
>>      }
>
>
>And the code above "return 0" can not be executed, so delete them.


return 0; is in the removed part... so it's already removed.


>__________________________________________
>#if 0
>                        printk(KERN_INFO
>        "XFS: mount option \"%s\" not supported for remount\n", p);
>                        return -EINVAL;
>#else                                                                          
>                                  
>                        return 0;
>-----------------------------------------
>
>
>Signed-off-by: Jianjun Kong <kongjianjun@xxxxxxxxx>
>---
> fs/xfs/linux-2.6/xfs_super.c |    7 +------
> 1 files changed, 1 insertions(+), 6 deletions(-)
>
>diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
>index e390136..bd5ec81 100644
>--- a/fs/xfs/linux-2.6/xfs_super.c
>+++ b/fs/xfs/linux-2.6/xfs_super.c
>@@ -1318,12 +1318,7 @@ xfs_fs_remount(
>                        * every remount request, and silently ignore all
>                        * options that we can't actually change.
>                        */
>-#if 0
>-                      printk(KERN_INFO
>-      "XFS: mount option \"%s\" not supported for remount\n", p);
>-                      return -EINVAL;
>-#else
>-                      break;
>+                      break 0;


break 0; doesn't make any sense in C...


-- 
"Sometimes the only way to stay sane is to go a little crazy."

<Prev in Thread] Current Thread [Next in Thread>