Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (43 commits)
  ext4: fix a BUG in mb_mark_used during trim.
  ext4: unused variables cleanup in fs/ext4/extents.c
  ext4: remove redundant set_buffer_mapped() in ext4_da_get_block_prep()
  ext4: add more tracepoints and use dev_t in the trace buffer
  ext4: don't kfree uninitialized s_group_info members
  ext4: add missing space in printk's in __ext4_grp_locked_error()
  ext4: add FITRIM to compat_ioctl.
  ext4: handle errors in ext4_clear_blocks()
  ext4: unify the ext4_handle_release_buffer() api
  ext4: handle errors in ext4_rename
  jbd2: add COW fields to struct jbd2_journal_handle
  jbd2: add the b_cow_tid field to journal_head struct
  ext4: Initialize fsync transaction ids in ext4_new_inode()
  ext4: Use single thread to perform DIO unwritten convertion
  ext4: optimize ext4_bio_write_page() when no extent conversion is needed
  ext4: skip orphan cleanup if fs has unknown ROCOMPAT features
  ext4: use the nblocks arg to ext4_truncate_restart_trans()
  ext4: fix missing iput of root inode for some mount error paths
  ext4: make FIEMAP and delayed allocation play well together
  ext4: suppress verbose debugging information if malloc-debug is off
  ...

Fi up conflicts in fs/ext4/super.c due to workqueue changes
This commit is contained in:
Linus Torvalds
2011-03-25 09:57:40 -07:00
21 changed files with 1306 additions and 598 deletions

View File

@@ -432,13 +432,35 @@ struct jbd2_journal_handle
int h_err;
/* Flags [no locking] */
unsigned int h_sync: 1; /* sync-on-close */
unsigned int h_jdata: 1; /* force data journaling */
unsigned int h_aborted: 1; /* fatal error on handle */
unsigned int h_sync:1; /* sync-on-close */
unsigned int h_jdata:1; /* force data journaling */
unsigned int h_aborted:1; /* fatal error on handle */
unsigned int h_cowing:1; /* COWing block to snapshot */
/* Number of buffers requested by user:
* (before adding the COW credits factor) */
unsigned int h_base_credits:14;
/* Number of buffers the user is allowed to dirty:
* (counts only buffers dirtied when !h_cowing) */
unsigned int h_user_credits:14;
#ifdef CONFIG_DEBUG_LOCK_ALLOC
struct lockdep_map h_lockdep_map;
#endif
#ifdef CONFIG_JBD2_DEBUG
/* COW debugging counters: */
unsigned int h_cow_moved; /* blocks moved to snapshot */
unsigned int h_cow_copied; /* blocks copied to snapshot */
unsigned int h_cow_ok_jh; /* blocks already COWed during current
transaction */
unsigned int h_cow_ok_bitmap; /* blocks not set in COW bitmap */
unsigned int h_cow_ok_mapped;/* blocks already mapped in snapshot */
unsigned int h_cow_bitmaps; /* COW bitmaps created */
unsigned int h_cow_excluded; /* blocks set in exclude bitmap */
#endif
};

View File

@@ -40,6 +40,13 @@ struct journal_head {
*/
unsigned b_modified;
/*
* This feild tracks the last transaction id in which this buffer
* has been cowed
* [jbd_lock_bh_state()]
*/
unsigned b_cow_tid;
/*
* Copy of the buffer data frozen for writing to the log.
* [jbd_lock_bh_state()]