diff options
Diffstat (limited to 'fs/buffer.c')
-rw-r--r-- | fs/buffer.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/fs/buffer.c b/fs/buffer.c index f903f2e5b4fe..42534f67d71b 100644 --- a/fs/buffer.c +++ b/fs/buffer.c | |||
@@ -767,7 +767,7 @@ static int fsync_buffers_list(spinlock_t *lock, struct list_head *list) | |||
767 | * still in flight on potentially older | 767 | * still in flight on potentially older |
768 | * contents. | 768 | * contents. |
769 | */ | 769 | */ |
770 | write_dirty_buffer(bh, WRITE_SYNC_PLUG); | 770 | write_dirty_buffer(bh, WRITE_SYNC); |
771 | 771 | ||
772 | /* | 772 | /* |
773 | * Kick off IO for the previous mapping. Note | 773 | * Kick off IO for the previous mapping. Note |
@@ -1602,14 +1602,8 @@ EXPORT_SYMBOL(unmap_underlying_metadata); | |||
1602 | * prevents this contention from occurring. | 1602 | * prevents this contention from occurring. |
1603 | * | 1603 | * |
1604 | * If block_write_full_page() is called with wbc->sync_mode == | 1604 | * If block_write_full_page() is called with wbc->sync_mode == |
1605 | * WB_SYNC_ALL, the writes are posted using WRITE_SYNC_PLUG; this | 1605 | * WB_SYNC_ALL, the writes are posted using WRITE_SYNC; this |
1606 | * causes the writes to be flagged as synchronous writes, but the | 1606 | * causes the writes to be flagged as synchronous writes. |
1607 | * block device queue will NOT be unplugged, since usually many pages | ||
1608 | * will be pushed to the out before the higher-level caller actually | ||
1609 | * waits for the writes to be completed. The various wait functions, | ||
1610 | * such as wait_on_writeback_range() will ultimately call sync_page() | ||
1611 | * which will ultimately call blk_run_backing_dev(), which will end up | ||
1612 | * unplugging the device queue. | ||
1613 | */ | 1607 | */ |
1614 | static int __block_write_full_page(struct inode *inode, struct page *page, | 1608 | static int __block_write_full_page(struct inode *inode, struct page *page, |
1615 | get_block_t *get_block, struct writeback_control *wbc, | 1609 | get_block_t *get_block, struct writeback_control *wbc, |
@@ -1622,7 +1616,7 @@ static int __block_write_full_page(struct inode *inode, struct page *page, | |||
1622 | const unsigned blocksize = 1 << inode->i_blkbits; | 1616 | const unsigned blocksize = 1 << inode->i_blkbits; |
1623 | int nr_underway = 0; | 1617 | int nr_underway = 0; |
1624 | int write_op = (wbc->sync_mode == WB_SYNC_ALL ? | 1618 | int write_op = (wbc->sync_mode == WB_SYNC_ALL ? |
1625 | WRITE_SYNC_PLUG : WRITE); | 1619 | WRITE_SYNC : WRITE); |
1626 | 1620 | ||
1627 | BUG_ON(!PageLocked(page)); | 1621 | BUG_ON(!PageLocked(page)); |
1628 | 1622 | ||