• Christoph Hellwig's avatar
    blkdev: flush disk cache on ->fsync · ab0a9735
    Christoph Hellwig authored
    Currently there is no barrier support in the block device code.  That
    means we cannot guarantee any sort of data integerity when using the
    block device node with dis kwrite caches enabled.  Using the raw block
    device node is a typical use case for virtualization (and I assume
    databases, too).  This patch changes block_fsync to issue a cache flush
    and thus make fsync on block device nodes actually useful.
    
    Note that in mainline we would also need to add such code to the
    ->aio_write method for O_SYNC handling, but assuming that Jan's patch
    series for the O_SYNC rewrite goes in it will also call into ->fsync
    for 2.6.32.
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
    ab0a9735
block_dev.c 37.8 KB