X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=fs%2Fbuffer.c;h=9f697419ed8e34ec041c92d8f6794c8b4b06ab33;hb=e1ebfd33be068ec933f8954060a499bd22ad6f69;hp=b58208f1640a00eecbb0c760469a15b8fe31f6c3;hpb=bca268565fd18f0b36ab8fff6e1623d8dffae2b1;p=linux-2.6-omap-h63xx.git diff --git a/fs/buffer.c b/fs/buffer.c index b58208f1640..9f697419ed8 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -777,6 +777,7 @@ static int __set_page_dirty(struct page *page, __inc_zone_page_state(page, NR_FILE_DIRTY); __inc_bdi_stat(mapping->backing_dev_info, BDI_RECLAIMABLE); + task_dirty_inc(current); task_io_account_write(PAGE_CACHE_SIZE); } radix_tree_tag_set(&mapping->page_tree, @@ -2688,7 +2689,7 @@ int nobh_write_end(struct file *file, struct address_space *mapping, struct buffer_head *bh; BUG_ON(fsdata != NULL && page_has_buffers(page)); - if (unlikely(copied < len) && !page_has_buffers(page)) + if (unlikely(copied < len) && head) attach_nobh_buffers(page, head); if (page_has_buffers(page)) return generic_write_end(file, mapping, pos, len, @@ -3108,7 +3109,7 @@ int sync_dirty_buffer(struct buffer_head *bh) if (test_clear_buffer_dirty(bh)) { get_bh(bh); bh->b_end_io = end_buffer_write_sync; - ret = submit_bh(WRITE_SYNC, bh); + ret = submit_bh(WRITE, bh); wait_on_buffer(bh); if (buffer_eopnotsupp(bh)) { clear_buffer_eopnotsupp(bh);