[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [patch 6/6] xenblk: Add O_DIRECT and O_SYNC support -- for jbd.



[patch 6/6] xenblk: Add O_DIRECT and O_SYNC support -- for jbd.

Journal data always need sync to disk as soon as possible, so set all
jbd write buffer_head to BH_Sync_Write.

Signed-off-by: Joe Jin <joe.jin@xxxxxxxxxx>
---

diff -r 2fb13b8cbe13 fs/jbd/checkpoint.c
--- a/fs/jbd/checkpoint.c       Thu Oct 30 13:34:43 2008 +0000
+++ b/fs/jbd/checkpoint.c       Tue Nov 04 10:43:59 2008 +0800
@@ -211,6 +211,8 @@
 {
        int i;
 
+       for (i = 0; i < *batch_count; i++) 
+               mark_sync_write_bh(bhs[i]);
        ll_rw_block(SWRITE, *batch_count, bhs);
        for (i = 0; i < *batch_count; i++) {
                struct buffer_head *bh = bhs[i];
diff -r 2fb13b8cbe13 fs/jbd/commit.c
--- a/fs/jbd/commit.c   Thu Oct 30 13:34:43 2008 +0000
+++ b/fs/jbd/commit.c   Tue Nov 04 10:43:59 2008 +0800
@@ -166,6 +166,7 @@
 
        for (i = 0; i < bufs; i++) {
                wbuf[i]->b_end_io = end_buffer_write_sync;
+               set_buffer_sync_write(wbuf[i]);
                /* We use-up our safety reference in submit_bh() */
                submit_bh(WRITE, wbuf[i]);
        }
@@ -631,6 +632,7 @@
                                clear_buffer_dirty(bh);
                                set_buffer_uptodate(bh);
                                bh->b_end_io = journal_end_buffer_io_sync;
+                               set_buffer_sync_write(bh);
                                submit_bh(WRITE, bh);
                        }
                        cond_resched();





_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.