xfs
[Top] [All Lists]

Re: [PATCH 1/2] xfs: fix xfs_mark_inode_dirty during umount

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 1/2] xfs: fix xfs_mark_inode_dirty during umount
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Tue, 30 Aug 2011 02:39:49 -0400
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>, xfs@xxxxxxxxxxx
In-reply-to: <20110830062416.GN3162@dastard>
References: <20110827055731.GA24159@xxxxxxxxxxxxx> <20110827055744.GA28351@xxxxxxxxxxxxx> <20110830062416.GN3162@dastard>
User-agent: Mutt/1.5.21 (2010-09-15)
On Tue, Aug 30, 2011 at 04:24:16PM +1000, Dave Chinner wrote:
> >  xfs_mark_inode_dirty_sync(
> > @@ -82,6 +81,10 @@ xfs_mark_inode_dirty_sync(
> >  
> >     if (!(inode->i_state & (I_WILL_FREE|I_FREEING)))
> >             mark_inode_dirty_sync(inode);
> > +   else {
> > +           barrier();
> > +           ip->i_update_core = 1;
> > +   }
> >  }
> 
> Why the barrier()? Isn't that just a compiler barrier? If you are
> worried about catching the update vs clearing it in transaction
> commit, shouldn't that use smp_mb() instead (in both places)?

It's a blind copy & past from xfs_fs_dirty_inode.  The comments
there suggests it is for update ordering.

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