Re: [PATCH v3 11/20] cifs: set mapping error when page writeback fails in writepage or launder_pages

Jeff Layton <[email protected]>
Newsgroups gmane.comp.file-systems.jfs.general
Message-ID <1493054187.2895.18.camel__7485.77773706547$1493054212$gmane$org@redhat.com>
On Mon, 2017-04-24 at 08:27 -0700, Christoph Hellwig wrote:
> On Mon, Apr 24, 2017 at 09:22:50AM -0400, Jeff Layton wrote:
> > Signed-off-by: Jeff Layton <[email protected]>
> > ---
> >  fs/cifs/file.c | 10 ++++++----
> >  1 file changed, 6 insertions(+), 4 deletions(-)
> > 
> > diff --git a/fs/cifs/file.c b/fs/cifs/file.c
> > index 21d404535739..4b696a23b0b1 100644
> > --- a/fs/cifs/file.c
> > +++ b/fs/cifs/file.c
> > @@ -2234,14 +2234,16 @@ cifs_writepage_locked(struct page *page, struct writeback_control *wbc)
> >  	set_page_writeback(page);
> >  retry_write:
> >  	rc = cifs_partialpagewrite(page, 0, PAGE_SIZE);
> > +	if (rc == -EAGAIN && wbc->sync_mode == WB_SYNC_ALL) {
> >  		goto retry_write;
> > +	} else if (rc == -EAGAIN) {
> >  		redirty_page_for_writepage(wbc, page);
> > +	} else if (rc != 0) {
> >  		SetPageError(page);
> > +		mapping_set_error(page->mapping, rc);
> > +	} else {
> >  		SetPageUptodate(page);
> > +	}
> 
> Hmmm.  I might be a little too nitpicky, but I hate having the same
> partial condition duplicated if possible.  Why not:
> 
> 	if (rc == -EAGAIN) {
> 		if (wbc->sync_mode == WB_SYNC_ALL)
> 			goto retry_write;
> 		redirty_page_for_writepage(wbc, page);
> 	} else if (rc) {
> 		SetPageError(page);
> 		mapping_set_error(page->mapping, rc);
> 	} else {
> 		SetPageUptodate(page);
> 	}
> 
> Otherwise this looks fine to me:
> 
> Reviewed-by: Christoph Hellwig <[email protected]>

No, you're absolutely right. I merged that change into the patch.

Thanks for the review so far!
-- 
Jeff Layton <[email protected]>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.