]> Pileus Git - ~andy/linux/commit
target/file: Use O_DSYNC by default for FILEIO backends
authorNicholas Bellinger <nab@linux-iscsi.org>
Wed, 30 May 2012 23:25:41 +0000 (16:25 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Sun, 3 Jun 2012 06:47:20 +0000 (23:47 -0700)
commita4dff3043c231d57f982af635c9d2192ee40e5ae
tree929866a22366a1f98601b946049eaa3bb6a0b748
parent5f2a3d6191e49df5d56332d3b65d6636c355f635
target/file: Use O_DSYNC by default for FILEIO backends

Convert to use O_DSYNC for all cases at FILEIO backend creation time to
avoid the extra syncing of pure timestamp updates with legacy O_SYNC during
default operation as recommended by hch.  Continue to do this independently of
Write Cache Enable (WCE) bit, as WCE=0 is currently the default for all backend
devices and enabled by user on per device basis via attrib/emulate_write_cache.

This patch drops the now unnecessary fd_buffered_io= token usage that was
originally signalling when to explictly disable O_SYNC at backend creation
time for buffered I/O operation.  This can end up being dangerous for a number
of reasons during physical node failure, so go ahead and drop this option
for now when O_DSYNC is used as the default.

Also allow explict FUA WRITEs -> vfs_fsync_range() call to function in
fd_execute_cmd() independently of WCE bit setting.

Reported-by: Christoph Hellwig <hch@lst.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_file.c
drivers/target/target_core_file.h