Re: [PATCH V5 1/2] FS: Add generic data flush to fsync

From: Andrew Morton
Date: Mon May 12 2014 - 17:50:36 EST


On Mon, 12 May 2014 07:20:27 +0200 Fabian Frederick <fabf@xxxxxxxxx> wrote:

> This patch issues a flush in generic_file_fsync.
> (Modern filesystems already do it)
>
> Behaviour can be reversed using /sys/devices/.../cache_type
> or by calling __generic_file_fsync

Well OK, but why? What effect does the patch have? Does it make the
kernel better and if so, how?

>
> +/**
> + * generic_file_fsync - generic fsync implementation for simple filesystems
> + * with flush
> + * @file: file to synchronize
> + * @start: start offset in bytes
> + * @end: end offset in bytes (inclusive)
> + * @datasync: only synchronize essential metadata if true
> + *
> + */
> +
> +int generic_file_fsync(struct file *file, loff_t start, loff_t end,
> + int datasync)
> +{
> + struct inode *inode = file->f_mapping->host;
> + int err;
> +
> + err = __generic_file_fsync(file, start, end, datasync);
> + if (err)
> + return err;
> +
> + return blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL);
> +
> +}

Documentation/SubmitChecklist, section 2b ;)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/