| 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> |
|---|---|---|
| ||
| Previous by Date: | Re: [PATCH] xfs: avoid synchronous transactions when deleting attr blocks, Dave Chinner |
|---|---|
| Next by Date: | Re: XFS metadata flushing design - current and future, Dave Chinner |
| Previous by Thread: | Re: [PATCH 1/2] xfs: fix xfs_mark_inode_dirty during umount, Dave Chinner |
| Next by Thread: | Re: [PATCH 1/2] xfs: fix xfs_mark_inode_dirty during umount, Dave Chinner |
| Indexes: | [Date] [Thread] [Top] [All Lists] |