diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-20 12:19:03 -0400 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-20 12:19:03 -0400 | 
| commit | 396b122f6af3d329df3b4d688f6e66de3e2a399a (patch) | |
| tree | 0b4185d529c1ba4c8eca1de23f14beecbe460323 /fs/ubifs/debug.c | |
| parent | ed402af3c23a4804b3f8899263e8d0f97c62ab49 (diff) | |
| parent | 54779aabb0183bbe049d2b52e96cd148366dfb0b (diff) | |
Merge branch 'linux-next' of git://git.infradead.org/ubifs-2.6
* 'linux-next' of git://git.infradead.org/ubifs-2.6: (25 commits)
  UBIFS: fix ubifs_compress commentary
  UBIFS: amend printk
  UBIFS: do not read unnecessary bytes when unpacking bits
  UBIFS: check buffer length when scanning for LPT nodes
  UBIFS: correct condition to eliminate unecessary assignment
  UBIFS: add more debugging messages for LPT
  UBIFS: fix bulk-read handling uptodate pages
  UBIFS: improve garbage collection
  UBIFS: allow for sync_fs when read-only
  UBIFS: commit on sync_fs
  UBIFS: correct comment for commit_on_unmount
  UBIFS: update dbg_dump_inode
  UBIFS: fix commentary
  UBIFS: fix races in bit-fields
  UBIFS: ensure data read beyond i_size is zeroed out correctly
  UBIFS: correct key comparison
  UBIFS: use bit-fields when possible
  UBIFS: check data CRC when in error state
  UBIFS: improve znode splitting rules
  UBIFS: add no_chk_data_crc mount option
  ...
Diffstat (limited to 'fs/ubifs/debug.c')
| -rw-r--r-- | fs/ubifs/debug.c | 79 | 
1 files changed, 62 insertions, 17 deletions
| diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c index d7f7645779f2..7186400750e7 100644 --- a/fs/ubifs/debug.c +++ b/fs/ubifs/debug.c | |||
| @@ -222,30 +222,38 @@ void dbg_dump_inode(const struct ubifs_info *c, const struct inode *inode) | |||
| 222 | { | 222 | { | 
| 223 | const struct ubifs_inode *ui = ubifs_inode(inode); | 223 | const struct ubifs_inode *ui = ubifs_inode(inode); | 
| 224 | 224 | ||
| 225 | printk(KERN_DEBUG "inode %lu\n", inode->i_ino); | 225 | printk(KERN_DEBUG "Dump in-memory inode:"); | 
| 226 | printk(KERN_DEBUG "size %llu\n", | 226 | printk(KERN_DEBUG "\tinode %lu\n", inode->i_ino); | 
| 227 | printk(KERN_DEBUG "\tsize %llu\n", | ||
| 227 | (unsigned long long)i_size_read(inode)); | 228 | (unsigned long long)i_size_read(inode)); | 
| 228 | printk(KERN_DEBUG "nlink %u\n", inode->i_nlink); | 229 | printk(KERN_DEBUG "\tnlink %u\n", inode->i_nlink); | 
| 229 | printk(KERN_DEBUG "uid %u\n", (unsigned int)inode->i_uid); | 230 | printk(KERN_DEBUG "\tuid %u\n", (unsigned int)inode->i_uid); | 
| 230 | printk(KERN_DEBUG "gid %u\n", (unsigned int)inode->i_gid); | 231 | printk(KERN_DEBUG "\tgid %u\n", (unsigned int)inode->i_gid); | 
| 231 | printk(KERN_DEBUG "atime %u.%u\n", | 232 | printk(KERN_DEBUG "\tatime %u.%u\n", | 
| 232 | (unsigned int)inode->i_atime.tv_sec, | 233 | (unsigned int)inode->i_atime.tv_sec, | 
| 233 | (unsigned int)inode->i_atime.tv_nsec); | 234 | (unsigned int)inode->i_atime.tv_nsec); | 
| 234 | printk(KERN_DEBUG "mtime %u.%u\n", | 235 | printk(KERN_DEBUG "\tmtime %u.%u\n", | 
| 235 | (unsigned int)inode->i_mtime.tv_sec, | 236 | (unsigned int)inode->i_mtime.tv_sec, | 
| 236 | (unsigned int)inode->i_mtime.tv_nsec); | 237 | (unsigned int)inode->i_mtime.tv_nsec); | 
| 237 | printk(KERN_DEBUG "ctime %u.%u\n", | 238 | printk(KERN_DEBUG "\tctime %u.%u\n", | 
| 238 | (unsigned int)inode->i_ctime.tv_sec, | 239 | (unsigned int)inode->i_ctime.tv_sec, | 
| 239 | (unsigned int)inode->i_ctime.tv_nsec); | 240 | (unsigned int)inode->i_ctime.tv_nsec); | 
| 240 | printk(KERN_DEBUG "creat_sqnum %llu\n", ui->creat_sqnum); | 241 | printk(KERN_DEBUG "\tcreat_sqnum %llu\n", ui->creat_sqnum); | 
| 241 | printk(KERN_DEBUG "xattr_size %u\n", ui->xattr_size); | 242 | printk(KERN_DEBUG "\txattr_size %u\n", ui->xattr_size); | 
| 242 | printk(KERN_DEBUG "xattr_cnt %u\n", ui->xattr_cnt); | 243 | printk(KERN_DEBUG "\txattr_cnt %u\n", ui->xattr_cnt); | 
| 243 | printk(KERN_DEBUG "xattr_names %u\n", ui->xattr_names); | 244 | printk(KERN_DEBUG "\txattr_names %u\n", ui->xattr_names); | 
| 244 | printk(KERN_DEBUG "dirty %u\n", ui->dirty); | 245 | printk(KERN_DEBUG "\tdirty %u\n", ui->dirty); | 
| 245 | printk(KERN_DEBUG "xattr %u\n", ui->xattr); | 246 | printk(KERN_DEBUG "\txattr %u\n", ui->xattr); | 
| 246 | printk(KERN_DEBUG "flags %d\n", ui->flags); | 247 | printk(KERN_DEBUG "\tbulk_read %u\n", ui->xattr); | 
| 247 | printk(KERN_DEBUG "compr_type %d\n", ui->compr_type); | 248 | printk(KERN_DEBUG "\tsynced_i_size %llu\n", | 
| 248 | printk(KERN_DEBUG "data_len %d\n", ui->data_len); | 249 | (unsigned long long)ui->synced_i_size); | 
| 250 | printk(KERN_DEBUG "\tui_size %llu\n", | ||
| 251 | (unsigned long long)ui->ui_size); | ||
| 252 | printk(KERN_DEBUG "\tflags %d\n", ui->flags); | ||
| 253 | printk(KERN_DEBUG "\tcompr_type %d\n", ui->compr_type); | ||
| 254 | printk(KERN_DEBUG "\tlast_page_read %lu\n", ui->last_page_read); | ||
| 255 | printk(KERN_DEBUG "\tread_in_a_row %lu\n", ui->read_in_a_row); | ||
| 256 | printk(KERN_DEBUG "\tdata_len %d\n", ui->data_len); | ||
| 249 | } | 257 | } | 
| 250 | 258 | ||
| 251 | void dbg_dump_node(const struct ubifs_info *c, const void *node) | 259 | void dbg_dump_node(const struct ubifs_info *c, const void *node) | 
| @@ -647,6 +655,43 @@ void dbg_dump_lprops(struct ubifs_info *c) | |||
| 647 | } | 655 | } | 
| 648 | } | 656 | } | 
| 649 | 657 | ||
| 658 | void dbg_dump_lpt_info(struct ubifs_info *c) | ||
| 659 | { | ||
| 660 | int i; | ||
| 661 | |||
| 662 | spin_lock(&dbg_lock); | ||
| 663 | printk(KERN_DEBUG "\tlpt_sz: %lld\n", c->lpt_sz); | ||
| 664 | printk(KERN_DEBUG "\tpnode_sz: %d\n", c->pnode_sz); | ||
| 665 | printk(KERN_DEBUG "\tnnode_sz: %d\n", c->nnode_sz); | ||
| 666 | printk(KERN_DEBUG "\tltab_sz: %d\n", c->ltab_sz); | ||
| 667 | printk(KERN_DEBUG "\tlsave_sz: %d\n", c->lsave_sz); | ||
| 668 | printk(KERN_DEBUG "\tbig_lpt: %d\n", c->big_lpt); | ||
| 669 | printk(KERN_DEBUG "\tlpt_hght: %d\n", c->lpt_hght); | ||
| 670 | printk(KERN_DEBUG "\tpnode_cnt: %d\n", c->pnode_cnt); | ||
| 671 | printk(KERN_DEBUG "\tnnode_cnt: %d\n", c->nnode_cnt); | ||
| 672 | printk(KERN_DEBUG "\tdirty_pn_cnt: %d\n", c->dirty_pn_cnt); | ||
| 673 | printk(KERN_DEBUG "\tdirty_nn_cnt: %d\n", c->dirty_nn_cnt); | ||
| 674 | printk(KERN_DEBUG "\tlsave_cnt: %d\n", c->lsave_cnt); | ||
| 675 | printk(KERN_DEBUG "\tspace_bits: %d\n", c->space_bits); | ||
| 676 | printk(KERN_DEBUG "\tlpt_lnum_bits: %d\n", c->lpt_lnum_bits); | ||
| 677 | printk(KERN_DEBUG "\tlpt_offs_bits: %d\n", c->lpt_offs_bits); | ||
| 678 | printk(KERN_DEBUG "\tlpt_spc_bits: %d\n", c->lpt_spc_bits); | ||
| 679 | printk(KERN_DEBUG "\tpcnt_bits: %d\n", c->pcnt_bits); | ||
| 680 | printk(KERN_DEBUG "\tlnum_bits: %d\n", c->lnum_bits); | ||
| 681 | printk(KERN_DEBUG "\tLPT root is at %d:%d\n", c->lpt_lnum, c->lpt_offs); | ||
| 682 | printk(KERN_DEBUG "\tLPT head is at %d:%d\n", | ||
| 683 | c->nhead_lnum, c->nhead_offs); | ||
| 684 | printk(KERN_DEBUG "\tLPT ltab is at %d:%d\n", c->ltab_lnum, c->ltab_offs); | ||
| 685 | if (c->big_lpt) | ||
| 686 | printk(KERN_DEBUG "\tLPT lsave is at %d:%d\n", | ||
| 687 | c->lsave_lnum, c->lsave_offs); | ||
| 688 | for (i = 0; i < c->lpt_lebs; i++) | ||
| 689 | printk(KERN_DEBUG "\tLPT LEB %d free %d dirty %d tgc %d " | ||
| 690 | "cmt %d\n", i + c->lpt_first, c->ltab[i].free, | ||
| 691 | c->ltab[i].dirty, c->ltab[i].tgc, c->ltab[i].cmt); | ||
| 692 | spin_unlock(&dbg_lock); | ||
| 693 | } | ||
| 694 | |||
| 650 | void dbg_dump_leb(const struct ubifs_info *c, int lnum) | 695 | void dbg_dump_leb(const struct ubifs_info *c, int lnum) | 
| 651 | { | 696 | { | 
| 652 | struct ubifs_scan_leb *sleb; | 697 | struct ubifs_scan_leb *sleb; | 
