On Fri, 2013-09-13 at 14:30 +0100, David Howells wrote:
> Looking at this:
> 
>       static int cifs_readpage_worker(struct file *file, struct page *page,
>               loff_t *poffset)
>       {
>               char *read_data;
>               int rc;
> 
>               /* Is the page cached? */
>               rc = cifs_readpage_from_fscache(file_inode(file), page);
>               if (rc == 0)
>                       goto read_complete;
> 
> Should you return here if rc == -ENOMEM or -ERESTARTSYS?  That might break
> cifs_write_begin() though - which perhaps ought to check the return value.
> 
> Your patch, however, looks okay otherwise, so feel free to add:
> 
>       Acked-by: David Howells <[email protected]>
> 
> David

According to the comment already above the call to
cifs_readpage_worker() in cifs_write_begin():

/*
 * might as well read a page, it is fast enough. If we get
 * an error, we don't need to return it. cifs_write_end will
 * do a sync write instead since PG_uptodate isn't set.
 */

With the patch, we ignore the error and set oncethru to 1 so that we
don't attempt to call cifs_readpage_worker() again and let
cifs_write_end do a sync_write.

Sachin Prabhu

--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to