}
 
        if (flags & SYNC_FILE_RANGE_WRITE) {
-               int sync_mode = WB_SYNC_NONE;
-
                if ((flags & SYNC_FILE_RANGE_WRITE_AND_WAIT) ==
                             SYNC_FILE_RANGE_WRITE_AND_WAIT)
-                       sync_mode = WB_SYNC_ALL;
-
-               ret = __filemap_fdatawrite_range(mapping, offset, endbyte,
-                                                sync_mode);
+                       ret = filemap_fdatawrite_range(mapping, offset,
+                                       endbyte);
+               else
+                       ret = filemap_fdatawrite_range_kick(mapping, offset,
+                                       endbyte);
                if (ret < 0)
                        goto out;
        }
 
 bool filemap_range_has_page(struct address_space *, loff_t lstart, loff_t lend);
 int filemap_write_and_wait_range(struct address_space *mapping,
                loff_t lstart, loff_t lend);
-int __filemap_fdatawrite_range(struct address_space *mapping,
-               loff_t start, loff_t end, int sync_mode);
 int filemap_fdatawrite_range(struct address_space *mapping,
                loff_t start, loff_t end);
 int filemap_check_errors(struct address_space *mapping);
 
 }
 
 /**
- * __filemap_fdatawrite_range - start writeback on mapping dirty pages in range
+ * filemap_fdatawrite_range - start writeback on mapping dirty pages in range
  * @mapping:   address space structure to write
  * @start:     offset in bytes where the range starts
  * @end:       offset in bytes where the range ends (inclusive)
- * @sync_mode: enable synchronous operation
  *
  * Start writeback against all of a mapping's dirty pages that lie
  * within the byte offsets <start, end> inclusive.
  *
- * If sync_mode is WB_SYNC_ALL then this is a "data integrity" operation, as
- * opposed to a regular memory cleansing writeback.  The difference between
- * these two operations is that if a dirty page/buffer is encountered, it must
- * be waited upon, and not just skipped over.
+ * This is a data integrity operation that waits upon dirty or in writeback
+ * pages.
  *
  * Return: %0 on success, negative error code otherwise.
  */
-int __filemap_fdatawrite_range(struct address_space *mapping, loff_t start,
-                               loff_t end, int sync_mode)
-{
-       return filemap_writeback(mapping, start, end, sync_mode, NULL);
-}
-
 int filemap_fdatawrite_range(struct address_space *mapping, loff_t start,
                loff_t end)
 {
-       return __filemap_fdatawrite_range(mapping, start, end, WB_SYNC_ALL);
+       return filemap_writeback(mapping, start, end, WB_SYNC_ALL, NULL);
 }
 EXPORT_SYMBOL(filemap_fdatawrite_range);
 
 int filemap_fdatawrite_range_kick(struct address_space *mapping, loff_t start,
                                  loff_t end)
 {
-       return __filemap_fdatawrite_range(mapping, start, end, WB_SYNC_NONE);
+       return filemap_writeback(mapping, start, end, WB_SYNC_NONE, NULL);
 }
 EXPORT_SYMBOL_GPL(filemap_fdatawrite_range_kick);
 
                return 0;
 
        if (mapping_needs_writeback(mapping)) {
-               err = __filemap_fdatawrite_range(mapping, lstart, lend,
-                                                WB_SYNC_ALL);
+               err = filemap_fdatawrite_range(mapping, lstart, lend);
                /*
                 * Even if the above returned error, the pages may be
                 * written partially (e.g. -ENOSPC), so we wait for it.
                return 0;
 
        if (mapping_needs_writeback(mapping)) {
-               err = __filemap_fdatawrite_range(mapping, lstart, lend,
-                                                WB_SYNC_ALL);
+               err = filemap_fdatawrite_range(mapping, lstart, lend);
                /* See comment of filemap_write_and_wait() */
                if (err != -EIO)
                        __filemap_fdatawait_range(mapping, lstart, lend);