diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-25 12:57:40 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-25 12:57:41 -0400 |
| commit | ae005cbed12d0b340b04b59d6f5c56e710b3895d (patch) | |
| tree | d464865bcc97bea05eab4eba0d10bcad4ec89b93 | |
| parent | 3961cdf85b749f6bab50ad31ee97e9277e7a3b70 (diff) | |
| parent | 0ba0851714beebb800992e5105a79dc3a4c504b0 (diff) | |
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
| -rw-r--r-- | Documentation/ABI/testing/sysfs-fs-ext4 | 13 | ||||
| -rw-r--r-- | Documentation/filesystems/ext4.txt | 207 | ||||
| -rw-r--r-- | fs/ext4/balloc.c | 3 | ||||
| -rw-r--r-- | fs/ext4/ext4_jbd2.h | 7 | ||||
| -rw-r--r-- | fs/ext4/extents.c | 213 | ||||
| -rw-r--r-- | fs/ext4/fsync.c | 14 | ||||
| -rw-r--r-- | fs/ext4/ialloc.c | 8 | ||||
| -rw-r--r-- | fs/ext4/inode.c | 410 | ||||
| -rw-r--r-- | fs/ext4/ioctl.c | 7 | ||||
| -rw-r--r-- | fs/ext4/mballoc.c | 34 | ||||
| -rw-r--r-- | fs/ext4/mballoc.h | 2 | ||||
| -rw-r--r-- | fs/ext4/migrate.c | 10 | ||||
| -rw-r--r-- | fs/ext4/namei.c | 13 | ||||
| -rw-r--r-- | fs/ext4/page-io.c | 13 | ||||
| -rw-r--r-- | fs/ext4/resize.c | 12 | ||||
| -rw-r--r-- | fs/ext4/super.c | 48 | ||||
| -rw-r--r-- | fs/ext4/xattr.c | 4 | ||||
| -rw-r--r-- | include/linux/jbd2.h | 28 | ||||
| -rw-r--r-- | include/linux/journal-head.h | 7 | ||||
| -rw-r--r-- | include/trace/events/ext4.h | 775 | ||||
| -rw-r--r-- | include/trace/events/jbd2.h | 78 |
21 files changed, 1307 insertions, 599 deletions
diff --git a/Documentation/ABI/testing/sysfs-fs-ext4 b/Documentation/ABI/testing/sysfs-fs-ext4 index 5fb709997d96..f22ac0872ae8 100644 --- a/Documentation/ABI/testing/sysfs-fs-ext4 +++ b/Documentation/ABI/testing/sysfs-fs-ext4 | |||
| @@ -48,7 +48,7 @@ Description: | |||
| 48 | will have its blocks allocated out of its own unique | 48 | will have its blocks allocated out of its own unique |
| 49 | preallocation pool. | 49 | preallocation pool. |
| 50 | 50 | ||
| 51 | What: /sys/fs/ext4/<disk>/inode_readahead | 51 | What: /sys/fs/ext4/<disk>/inode_readahead_blks |
| 52 | Date: March 2008 | 52 | Date: March 2008 |
| 53 | Contact: "Theodore Ts'o" <tytso@mit.edu> | 53 | Contact: "Theodore Ts'o" <tytso@mit.edu> |
| 54 | Description: | 54 | Description: |
| @@ -85,7 +85,14 @@ Date: June 2008 | |||
| 85 | Contact: "Theodore Ts'o" <tytso@mit.edu> | 85 | Contact: "Theodore Ts'o" <tytso@mit.edu> |
| 86 | Description: | 86 | Description: |
| 87 | Tuning parameter which (if non-zero) controls the goal | 87 | Tuning parameter which (if non-zero) controls the goal |
| 88 | inode used by the inode allocator in p0reference to | 88 | inode used by the inode allocator in preference to |
| 89 | all other allocation hueristics. This is intended for | 89 | all other allocation heuristics. This is intended for |
| 90 | debugging use only, and should be 0 on production | 90 | debugging use only, and should be 0 on production |
| 91 | systems. | 91 | systems. |
| 92 | |||
| 93 | What: /sys/fs/ext4/<disk>/max_writeback_mb_bump | ||
| 94 | Date: September 2009 | ||
| 95 | Contact: "Theodore Ts'o" <tytso@mit.edu> | ||
| 96 | Description: | ||
| 97 | The maximum number of megabytes the writeback code will | ||
| 98 | try to write out before move on to another inode. | ||
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt index 6ab9442d7eeb..6b050464a90d 100644 --- a/Documentation/filesystems/ext4.txt +++ b/Documentation/filesystems/ext4.txt | |||
| @@ -367,12 +367,47 @@ init_itable=n The lazy itable init code will wait n times the | |||
| 367 | minimizes the impact on the systme performance | 367 | minimizes the impact on the systme performance |
| 368 | while file system's inode table is being initialized. | 368 | while file system's inode table is being initialized. |
| 369 | 369 | ||
| 370 | discard Controls whether ext4 should issue discard/TRIM | 370 | discard Controls whether ext4 should issue discard/TRIM |
| 371 | nodiscard(*) commands to the underlying block device when | 371 | nodiscard(*) commands to the underlying block device when |
| 372 | blocks are freed. This is useful for SSD devices | 372 | blocks are freed. This is useful for SSD devices |
| 373 | and sparse/thinly-provisioned LUNs, but it is off | 373 | and sparse/thinly-provisioned LUNs, but it is off |
| 374 | by default until sufficient testing has been done. | 374 | by default until sufficient testing has been done. |
| 375 | 375 | ||
| 376 | nouid32 Disables 32-bit UIDs and GIDs. This is for | ||
| 377 | interoperability with older kernels which only | ||
| 378 | store and expect 16-bit values. | ||
| 379 | |||
| 380 | resize Allows to resize filesystem to the end of the last | ||
| 381 | existing block group, further resize has to be done | ||
| 382 | with resize2fs either online, or offline. It can be | ||
| 383 | used only with conjunction with remount. | ||
| 384 | |||
| 385 | block_validity This options allows to enables/disables the in-kernel | ||
| 386 | noblock_validity facility for tracking filesystem metadata blocks | ||
| 387 | within internal data structures. This allows multi- | ||
| 388 | block allocator and other routines to quickly locate | ||
| 389 | extents which might overlap with filesystem metadata | ||
| 390 | blocks. This option is intended for debugging | ||
| 391 | purposes and since it negatively affects the | ||
| 392 | performance, it is off by default. | ||
| 393 | |||
| 394 | dioread_lock Controls whether or not ext4 should use the DIO read | ||
| 395 | dioread_nolock locking. If the dioread_nolock option is specified | ||
| 396 | ext4 will allocate uninitialized extent before buffer | ||
| 397 | write and convert the extent to initialized after IO | ||
| 398 | completes. This approach allows ext4 code to avoid | ||
| 399 | using inode mutex, which improves scalability on high | ||
| 400 | speed storages. However this does not work with nobh | ||
| 401 | option and the mount will fail. Nor does it work with | ||
| 402 | data journaling and dioread_nolock option will be | ||
| 403 | ignored with kernel warning. Note that dioread_nolock | ||
| 404 | code path is only used for extent-based files. | ||
| 405 | Because of the restrictions this options comprises | ||
| 406 | it is off by default (e.g. dioread_lock). | ||
| 407 | |||
| 408 | i_version Enable 64-bit inode version support. This option is | ||
| 409 | off by default. | ||
| 410 | |||
| 376 | Data Mode | 411 | Data Mode |
| 377 | ========= | 412 | ========= |
| 378 | There are 3 different data modes: | 413 | There are 3 different data modes: |
| @@ -400,6 +435,176 @@ needs to be read from and written to disk at the same time where it | |||
| 400 | outperforms all others modes. Currently ext4 does not have delayed | 435 | outperforms all others modes. Currently ext4 does not have delayed |
| 401 | allocation support if this data journalling mode is selected. | 436 | allocation support if this data journalling mode is selected. |
| 402 | 437 | ||
| 438 | /proc entries | ||
| 439 | ============= | ||
| 440 | |||
| 441 | Information about mounted ext4 file systems can be found in | ||
| 442 | /proc/fs/ext4. Each mounted filesystem will have a directory in | ||
| 443 | /proc/fs/ext4 based on its device name (i.e., /proc/fs/ext4/hdc or | ||
| 444 | /proc/fs/ext4/dm-0). The files in each per-device directory are shown | ||
| 445 | in table below. | ||
| 446 | |||
| 447 | Files in /proc/fs/ext4/<devname> | ||
| 448 | .............................................................................. | ||
| 449 | File Content | ||
| 450 | mb_groups details of multiblock allocator buddy cache of free blocks | ||
| 451 | .............................................................................. | ||
| 452 | |||
| 453 | /sys entries | ||
| 454 | ============ | ||
| 455 | |||
| 456 | Information about mounted ext4 file systems can be found in | ||
| 457 | /sys/fs/ext4. Each mounted filesystem will have a directory in | ||
| 458 | /sys/fs/ext4 based on its device name (i.e., /sys/fs/ext4/hdc or | ||
| 459 | /sys/fs/ext4/dm-0). The files in each per-device directory are shown | ||
| 460 | in table below. | ||
| 461 | |||
| 462 | Files in /sys/fs/ext4/<devname> | ||
| 463 | (see also Documentation/ABI/testing/sysfs-fs-ext4) | ||
| 464 | .............................................................................. | ||
| 465 | File Content | ||
| 466 | |||
| 467 | delayed_allocation_blocks This file is read-only and shows the number of | ||
| 468 | blocks that are dirty in the page cache, but | ||
| 469 | which do not have their location in the | ||
| 470 | filesystem allocated yet. | ||
| 471 | |||
| 472 | inode_goal Tuning parameter which (if non-zero) controls | ||
| 473 | the goal inode used by the inode allocator in | ||
| 474 | preference to all other allocation heuristics. | ||
| 475 | This is intended for debugging use only, and | ||
| 476 | should be 0 on production systems. | ||
| 477 | |||
| 478 | inode_readahead_blks Tuning parameter which controls the maximum | ||
| 479 | number of inode table blocks that ext4's inode | ||
| 480 | table readahead algorithm will pre-read into | ||
| 481 | the buffer cache | ||
| 482 | |||
| 483 | lifetime_write_kbytes This file is read-only and shows the number of | ||
| 484 | kilobytes of data that have been written to this | ||
| 485 | filesystem since it was created. | ||
| 486 | |||
| 487 | max_writeback_mb_bump The maximum number of megabytes the writeback | ||
| 488 | code will try to write out before move on to | ||
| 489 | another inode. | ||
| 490 | |||
| 491 | |||
