Re: [PATCH] xfs: Keep sb_bad_features2 consistent with sb_features2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu 18-12-14 08:22:55, Dave Chinner wrote:
> On Wed, Dec 17, 2014 at 09:27:26PM +0100, Jan Kara wrote:
> > Currently when we modify sb_features2, we store the same value also in
> > sb_bad_features2. However in most places we forget to mark field
> > sb_bad_features2 for logging and thus it can happen that a change to it
> > is lost. This results in an inconsistent sb_features2 and
> > sb_bad_features2 fields e.g. after xfstests test xfs/187.
> > 
> > Fix the problem by changing XFS_SB_FEATURES2 to actually mean both
> > sb_features2 and sb_bad_features2 fields since this is always what we
> > want to log. This isn't ideal because the fact that XFS_SB_FEATURES2
> > means two fields could cause some problem in future however the code is
> > hopefully less error prone that it is now.
> 
> Actually, I have patches that fix this differently that I'm planning
> to push for the 3.20 cycle.  They get rid of the "update random SB
> fields" problem altogether simply by logging and updating the entire
> SB every time.
> 
> http://oss.sgi.com/archives/xfs/2014-09/msg00448.html
  OK, thanks for info.

								Honza
> 
> > Signed-off-by: Jan Kara <jack@xxxxxxx>
> > ---
> >  fs/xfs/libxfs/xfs_format.h | 10 +++++-----
> >  fs/xfs/xfs_mount.c         |  5 ++---
> >  2 files changed, 7 insertions(+), 8 deletions(-)
> > 
> > diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
> > index fbd6da263571..476273287aaf 100644
> > --- a/fs/xfs/libxfs/xfs_format.h
> > +++ b/fs/xfs/libxfs/xfs_format.h
> > @@ -304,8 +304,8 @@ typedef enum {
> >  #define XFS_SB_ICOUNT		XFS_SB_MVAL(ICOUNT)
> >  #define XFS_SB_IFREE		XFS_SB_MVAL(IFREE)
> >  #define XFS_SB_FDBLOCKS		XFS_SB_MVAL(FDBLOCKS)
> > -#define XFS_SB_FEATURES2	XFS_SB_MVAL(FEATURES2)
> > -#define XFS_SB_BAD_FEATURES2	XFS_SB_MVAL(BAD_FEATURES2)
> > +#define XFS_SB_FEATURES2	(XFS_SB_MVAL(FEATURES2) | \
> > +				 XFS_SB_MVAL(BAD_FEATURES2))
> 
> That doesn't guarantee that both fields are updated together, just
> that the'll get logged and written together. The code still has to
> ensure both fields are updated beforehand. I have a patch to address
> this as well, and will post them soon.
> 
> Cheers,
> 
> Dave.
> -- 
> Dave Chinner
> david@xxxxxxxxxxxxx
-- 
Jan Kara <jack@xxxxxxx>
SUSE Labs, CR

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs




[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux