/* Description: This does WB_SYNC_NONE opportunistic writeback. The IO is only started when this function returns, we make no guarentees on completion. Caller need not hold sb s_umount semaphore.  */
void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb, long nr_pages)
/* Description: This does WB_SYNC_NONE opportunistic writeback. The IO is only started when this function returns, we make no guarentees on completion. Caller need not hold sb s_umount semaphore.  */
void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb, long nr_pages)
{
	struct wb_writeback_args args = {
		.sb		= sb,
		.sync_mode	= WB_SYNC_NONE,
		.nr_pages	= nr_pages,
		.range_cyclic	= 1,
	};
	if (!nr_pages) {
		args.nr_pages = LONG_MAX;
		args.for_background = 1;
	}
	bdi_alloc_queue_work(bdi, &args);
}