lkml.org 
[lkml]   [2009]   [Mar]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 1/5] block: Add block_flush_device()
    This patch adds a helper function that should be used by filesystems that need
    to flush the underlying block device on fsync()/fdatasync().

    Signed-off-by: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
    ---

    diff -urNp linux-2.6.29-orig/fs/buffer.c linux-2.6.29/fs/buffer.c
    --- linux-2.6.29-orig/fs/buffer.c 2009-03-24 08:12:14.000000000 +0900
    +++ linux-2.6.29/fs/buffer.c 2009-03-28 20:43:51.000000000 +0900
    @@ -165,6 +165,17 @@ void end_buffer_write_sync(struct buffer
    put_bh(bh);
    }

    +/* Issue flush of write caches on the block device */
    +int block_flush_device(struct super_block *sb)
    +{
    + int ret = 0;
    +
    + ret = blkdev_issue_flush(sb->s_bdev, NULL);
    +
    + return (ret == -EOPNOTSUPP) ? 0 : ret;
    +}
    +EXPORT_SYMBOL(block_flush_device);
    +
    /*
    * Write out and wait upon all the dirty data associated with a block
    * device via its mapping. Does not take the superblock lock.
    diff -urNp linux-2.6.29-orig/include/linux/buffer_head.h linux-2.6.29/include/linux/buffer_head.h
    --- linux-2.6.29-orig/include/linux/buffer_head.h 2009-03-24 08:12:14.000000000 +0900
    +++ linux-2.6.29/include/linux/buffer_head.h 2009-03-28 20:43:51.000000000 +0900
    @@ -238,6 +238,7 @@ int nobh_write_end(struct file *, struct
    int nobh_truncate_page(struct address_space *, loff_t, get_block_t *);
    int nobh_writepage(struct page *page, get_block_t *get_block,
    struct writeback_control *wbc);
    +int block_flush_device(struct super_block *sb);

    void buffer_init(void);


    \
     
     \ /
      Last update: 2009-03-30 03:39    [W:4.267 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site