Messages in this thread | | | Date | Tue, 24 Sep 2013 09:33:42 +0100 | From | Mel Gorman <> | Subject | Re: [PATCH] mm: Fix a regression where MS_SNAP_STABLE (stable pages snapshotting) was ignored |
| |
On Fri, Sep 20, 2013 at 09:54:07AM -0700, Darrick J. Wong wrote: > On Fri, Sep 20, 2013 at 09:28:07AM +0100, Mel Gorman wrote: > > On Fri, Sep 20, 2013 at 09:06:37AM +0100, Mel Gorman wrote: > > > On Thu, Sep 19, 2013 at 08:06:02PM -0700, Darrick J. Wong wrote: > > > > The "force" parameter in __blk_queue_bounce was being ignored, which means that > > > > stable page snapshots are not always happening (on ext3). This of course > > > > leads to DIF disks reporting checksum errors, so fix this regression. > > > > > > > > The regression was introduced in commit 6bc454d1 (bounce: Refactor > > > > __blk_queue_bounce to not use bi_io_vec) > > > > > > > > Reported-by: Mel Gorman <mgorman@suse.de> > > > > Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> > > > > > > I have no means of testing it but it looks right and thanks for checking > > > DIF disks. > > > > > > Acked-by: Mel Gorman <mgorman@suse.de> > > > > > > > That said the two checks are now redundant. They could just be deleted > > and depend entirely on the following check within the loop > > > > if (page_to_pfn(page) <= queue_bounce_pfn(q) && !force) > > continue; > > > > with an update to the comment explaining that the check is for pages > > below the bounce pfn or for bios that require stable writes > > I'm under the impression that the point of the first looping-check is to avoid > the bio_clone_bioset() if we're not going to bounce anything. But I could be > wrong.
I doubt it, avoiding the clone makes sense and I was wrong about the check being redundant anyway. Trying to do the clone within the loop when the first bio that needs bouncing is encountered turns into a mess.
-- Mel Gorman SUSE Labs
| |