| To: | Dave Chinner <david@xxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH 4/4] xfs: implement freezing by emptying the AIL |
| From: | Christoph Hellwig <hch@xxxxxxxxxxxxx> |
| Date: | Sat, 24 Mar 2012 13:08:48 -0400 |
| Cc: | Christoph Hellwig <hch@xxxxxxxxxxxxx>, xfs@xxxxxxxxxxx |
| In-reply-to: | <20120324170618.GD21708@xxxxxxxxxxxxx> |
| References: | <20120316175541.258282540@xxxxxxxxxxxxxxxxxxxxxx> <20120316175636.554421689@xxxxxxxxxxxxxxxxxxxxxx> <20120321235738.GB5091@dastard> <20120324170618.GD21708@xxxxxxxxxxxxx> |
| User-agent: | Mutt/1.5.21 (2010-09-15) |
On Sat, Mar 24, 2012 at 01:06:18PM -0400, Christoph Hellwig wrote: > On Thu, Mar 22, 2012 at 10:57:38AM +1100, Dave Chinner wrote: > > > + * threshold. > > > + */ > > > + if (atomic_read(&ailp->xa_wait_empty)) > > > + target = xfs_ail_max(ailp)->li_lsn; > > > > I don't think this is safe - we may have finished pushing the AIL to > > empty, but the waiter that decrements xa_wait_empty may not have run > > yet and we can race with that. In that case, xfs_ail_max() will > > return NULL as the AIL is empty. > > True - I'll add a check for that. Actually - we do the xfs_trans_ail_cursor_first check just above - if the AIL is empty we'll already exit after that and never reach this code, so we should be fine. |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [PATCH 4/4] xfs: implement freezing by emptying the AIL, Christoph Hellwig |
|---|---|
| Next by Date: | Re: GNU 'tar', Schilling's 'tar', write-cache/barrier, Brian Candler |
| Previous by Thread: | Re: [PATCH 4/4] xfs: implement freezing by emptying the AIL, Christoph Hellwig |
| Next by Thread: | [PATCH] fs: xfs: fix section mismatch in linux-next, Gerard Snitselaar |
| Indexes: | [Date] [Thread] [Top] [All Lists] |