Mark a buffer_head as needing writeout
void mark_buffer_dirty(struct buffer_head * bh);
bh
the buffer_head to mark dirty
mark_buffer_dirty will set the dirty bit against the buffer, then set its backing page dirty, then tag the page as dirty in its address_space's radix tree and then attach the address_space's inode to its superblock's dirty inode list.
mark_buffer_dirty is atomic. It takes bh->b_page->mapping->private_lock, mapping->tree_lock and mapping->host->i_lock.