[Lucid] SRU: Lucid kernel is missing a large number of important ext4 bug fixes

Steve Conklin sconklin at canonical.com
Tue Jun 22 21:26:46 UTC 2010


On Tue, 2010-06-22 at 13:42 -0700, Brad Figg wrote:
> BugLink: http://bugs.launchpad.net/bugs/5088069
> 
> SRU Justification
> 
> Impact:
> The following patches are heading to the stable maintainers tree and will eventually get pulled into
>   the
> Lucid tree. The earlier we can get these in the fewer issues our users will encounter. We will be getting
> these through stable-tree updates, we would just be pulling them in a little earlier.
> 
> The following patches should really be applied to the Lucid 2.6.32-22.33 kernel:
> 
> ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/ext4-patches/ext4-patches-for-2.6.32.11--14.tar.gz
> 
> There is a git tree you may find useful here:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git lucid-2.6.32-ext4
> 
> It fixes a very large number of ext4 bugs, including (but not limited to):
> 
> http://bugzilla.kernel.org/show_bug.cgi?id=14286
> http://bugzilla.kernel.org/show_bug.cgi?id=14936
> http://bugzilla.kernel.org/show_bug.cgi?id=15420
> http://bugzilla.kernel.org/show_bug.cgi?id=15579
> http://bugzilla.kernel.org/show_bug.cgi?id=13549
> http://bugzilla.kernel.org/show_bug.cgi?id=15742
> http://bugzilla.kernel.org/show_bug.cgi?id=15768
> http://bugzilla.kernel.org/show_bug.cgi?id=15792
> http://bugzilla.kernel.org/show_bug.cgi?id=15827
> 
> This patch has been submitted upstream, but I'm not sure if Greg K-H will be doing another 2.6.32.y kernel release.
> 
> Testing:
>     TBD
> 
> 
> The following changes since commit 59152141a98f95f71e8dcc505c226ceaf1c3abc7:
>    Yin Kangkai (1):
>          jbd: jbd-debug and jbd2-debug should be writable
> 
> are available in the git repository at:
> 
>    git://kernel.ubuntu.com/bradf/ubuntu-lucid lp588069
> 
> Akira Fujita (3):
>        ext4: Fix insertion point of extent in mext_insert_across_blocks()
>        ext4: Fix the NULL reference in double_down_write_data_sem()
>        ext4: Code cleanup for EXT4_IOC_MOVE_EXT ioctl
> 
> Aneesh Kumar K.V (4):
>        ext4: Ensure zeroout blocks have no dirty metadata
>        ext4: Handle -EDQUOT error on write
>        ext4: Fix quota accounting error with fallocate
>        ext4: Drop EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE flag
> 
> Ben Hutchings (2):
>        ext4: Conditionally define compat ioctl numbers
>        ext4: Fix compat EXT4_IOC_ADD_GROUP
> 
> Christian Borntraeger (1):
>        ext4: allow defrag (EXT4_IOC_MOVE_EXT) in 32bit compat mode
> 
> Curt Wohlgemuth (5):
>        ext4: Fix BUG_ON at fs/buffer.c:652 in no journal mode
>        ext4: Fix possible lost inode write in no journal mode
>        ext4: Fix buffer head leaks after calls to ext4_get_inode_loc()
>        ext4: Remove extraneous newlines in ext4_msg() calls
>        ext4: check for a good block group before loading buddy pages
> 
> Dmitry Monakhov (10):
>        ext4: fix error handling in migrate
>        ext4: explicitly remove inode from orphan list after failed direct io
>        ext4: Handle non empty on-disk orphan link
>        ext4: check missed return value in ext4_sync_file()
>        ext4: fix quota accounting in case of fallocate
>        ext4: Do not zero out uninitialized extents beyond i_size
>        ext4: clean up inode bitmaps manipulation in ext4_free_inode
>        ext4: init statistics after journal recovery
>        ext4: Use bitops to read/modify i_flags in struct ext4_inode_info
>        ext4: restart ext4_ext_remove_space() after transaction restart
> 
> Eric Sandeen (5):
>        ext4: Fixed inode allocator to correctly track a flex_bg's used_dirs
>        ext4: check s_log_groups_per_flex in online resize code
>        ext4: don't return to userspace after freezing the fs with a mutex held
>        ext4: stop issuing discards if not supported by device
>        ext4: don't scan/accumulate more pages than mballoc will allocate
> 
> Frank Mayhar (1):
>        ext4: Make fsync sync new parent directories in no-journal mode
> 
> Jan Kara (2):
>        ext4: Fix estimate of # of blocks needed to write indirect-mapped files
>        ext4: Show journal_checksum option
> 
> Jiaying Zhang (1):
>        ext4: Add flag to files with blocks intentionally past EOF
> 
> Jing Zhang (3):
>        ext4: fix memory leaks in error path handling of ext4_ext_zeroout()
>        ext4: Remove unnecessary call to ext4_get_group_desc() in mballoc
>        ext4: rename ext4_mb_release_desc() to ext4_mb_unload_buddy()
> 
> Julia Lawall (1):
>        ext4: Eliminate potential double free on error path
> 
> Nikanth Karthikesan (1):
>        ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate
> 
> Richard Kennedy (1):
>        ext4: return correct wbc.nr_to_write in ext4_da_writepages
> 
> Surbhi Palande (1):
>        ext4: replace BUG() with return -EIO in ext4_ext_get_blocks
> 
> Tao Ma (1):
>        ext4: Fix fencepost error in chosing choosing group vs file preallocation.
> 
> Theodore Ts'o (8):
>        ext4, jbd2: Add barriers for file systems with exernal journals
>        ext4: Patch up how we claim metadata blocks for quota purposes
>        ext4: Fix accounting of reserved metadata blocks
>        ext4: Calculate metadata requirements more accurately
>        ext4: Use bitops to read/modify EXT4_I(inode)->i_state
>        ext4: Issue the discard operation *before* releasing the blocks to be reused
>        ext4: Avoid crashing on NULL ptr dereference on a filesystem error
>        ext4: Clear the EXT4_EOFBLOCKS_FL flag only when warranted
> 
> Toshiyuki Okajima (1):
>        ext4: make "offset" consistent in ext4_check_dir_entry()
> 
>   fs/ext4/dir.c          |   12 +-
>   fs/ext4/ext4.h         |  157 ++++++++++++++++++---
>   fs/ext4/ext4_extents.h |    3 +-
>   fs/ext4/ext4_jbd2.c    |    2 +-
>   fs/ext4/ext4_jbd2.h    |    6 +-
>   fs/ext4/extents.c      |  251 ++++++++++++++++++++++++++--------
>   fs/ext4/file.c         |    6 +-
>   fs/ext4/fsync.c        |   49 ++++++-
>   fs/ext4/ialloc.c       |   98 ++++++-------
>   fs/ext4/inode.c        |  365 ++++++++++++++++++++++++++++--------------------
>   fs/ext4/ioctl.c        |   37 +++++-
>   fs/ext4/mballoc.c      |  132 ++++++++++++------
>   fs/ext4/migrate.c      |   37 +++---
>   fs/ext4/move_extent.c  |   28 ++--
>   fs/ext4/namei.c        |   24 +++-
>   fs/ext4/resize.c       |    3 +-
>   fs/ext4/super.c        |   67 +++++-----
>   fs/ext4/xattr.c        |   28 ++--
>   fs/jbd2/checkpoint.c   |   15 ++
>   fs/jbd2/commit.c       |   19 ++-
>   include/linux/jbd2.h   |    1 +
>   21 files changed, 905 insertions(+), 435 deletions(-)
> 
> -- 
> Brad Figg brad.figg at canonical.com http://www.canonical.com
> 

ACK,

Patch comments follow


commit 7c4cab0f51914ebc1bc1e4d66deb7d277b3bcc56
Author: Dmitry Monakhov <dmonakhov at openvz.org>

    ext4: Fix potential quota deadlock

# Type: NEW
Looks fairly sane, but it's not clear that this really fixes a bug
that's been seen.

commit 436daf9c07308ab82a2d7b1ca5e5421a5af70886
Author: Yin Kangkai <kangkai.yin at intel.com>

    jbd: jbd-debug and jbd2-debug should be writable

# Type: NEW
Looks good

commit 7ff2fe41e8e2d2e2634ffc89343ba8d1c639d98d
Author: Surbhi Palande <surbhi.palande at canonical.com>

    ext4: replace BUG() with return -EIO in ext4_ext_get_blocks

# Type: NEW
This looks like it accurately fixes the described problem

commit debd0c31e46a3836b1d8e7cdd5b4397fb777dbec
Author: Theodore Ts'o <tytso at mit.edu>

    ext4, jbd2: Add barriers for file systems with exernal journals

# Type: NEW
Looks ok, but only applies to the case where journals are on a separate
drive

commit e398c494e96fcbf92f45b907e4e3598da525542f
Author: Julia Lawall <julia at diku.dk>

    ext4: Eliminate potential double free on error path

# Type: NEW
Looks ok - labeled as a "potential" problem, though

commit 748bfac2f7f44bd0daa6a76c09ccff9abe51c5e1
Author: Richard Kennedy <richard at rsk.demon.co.uk>

    ext4: return correct wbc.nr_to_write in ext4_da_writepages

# Type: NEW
Looks ok

commit ca0d70ef1e9f9901e8a4b16d1ddbe8fc2b3cd45b
Author: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>

    ext4: Ensure zeroout blocks have no dirty metadata

# Type: NEW
Looks ok, is simple, but I don't understand what it's doing or why

commit 5f0cbfc3302855b184f6ecdc3d6e85722cccf8f1
Author: Theodore Ts'o <tytso at mit.edu>

    ext4: Patch up how we claim metadata blocks for quota purposes

# Type: NEW
This is a massive patch, and I have no way to know whether it is correct
without a deep understanding of ext4

commit da7d750f5184fbb6680b7510f329aa3ebf8e7e29
Author: Theodore Ts'o <tytso at mit.edu>

    ext4: Fix accounting of reserved metadata blocks

# Type: NEW
Pretty simple, I assume it's ok

commit cfc1cec16d12c151270027a5985fb7a5bc772fde
Author: Theodore Ts'o <tytso at mit.edu>

    ext4: Calculate metadata requirements more accurately

# Type: NEW
I have no idea whether this is a legitimate patch. It's
complex and invasive, but supposedly solves a problem.

commit c20655de850a723528cca8baf4de2a5b3ef319cb
Author: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>

    ext4: Handle -EDQUOT error on write

# Type: NEW
Another one I can't tell about - assume it's ok, but it changes behavior

commit 2e5388dbce355177b657a37c6ae93563c26dc498
Author: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>

    ext4: Fix quota accounting error with fallocate

# Type: NEW
Probably ok, this is anotehr one that requires deep ext4 knowledge

commit f94d454de6bc3887feb71c3cc601bb7e639f62eb
Author: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>

    ext4: Drop EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE flag

# Type: NEW
Looks ok

commit 8bf3f7a72f40eccc1d8390269240941c3e11088c
Author: Theodore Ts'o <tytso at mit.edu>

    ext4: Use bitops to read/modify EXT4_I(inode)->i_state

# Type: NEW
Looks ok

commit cf19e2a653cd3ca59931260a37a2a3b6015a11a4
Author: Curt Wohlgemuth <curtw at google.com>

    ext4: Fix BUG_ON at fs/buffer.c:652 in no journal mode

# Type: NEW
OK

commit fde75a46ac788c7ac5d7d2845f5516846db33f3e
Author: Jiaying Zhang <jiayingz at google.com>

    ext4: Add flag to files with blocks intentionally past EOF

# Type: NEW
OK - complex

commit b6178474de6d7144c0b27f22d228cd3795ae61fa
Author: Tao Ma <tao.ma at oracle.com>

    ext4: Fix fencepost error in chosing choosing group vs file
preallocation.

# Type: NEW
OK

commit 650b03c8be35230220bcbc404778b639b3980f7e
Author: Dmitry Monakhov <dmonakhov at openvz.org>

    ext4: fix error handling in migrate

# Type: NEW
OK

commit 063685e56f5d641926f423d92a4cf564823f8cf7
Author: Dmitry Monakhov <dmonakhov at openvz.org>

    ext4: explicitly remove inode from orphan list after failed direct
io

# Type: NEW
OK

commit 42f4649913b23846463be31b5e693a06c41f02ae
Author: Dmitry Monakhov <dmonakhov at openvz.org>

    ext4: Handle non empty on-disk orphan link

# Type: NEW
OK

commit c6f43b2fff9f6e2cab3cbcf0803212ec65b8c740
Author: Toshiyuki Okajima <toshi.okajima at jp.fujitsu.com>

    ext4: make "offset" consistent in ext4_check_dir_entry()

# Type: NEW
Good

commit 73a4ca090d376e29ded0ac938a7748dffa120660
Author: Akira Fujita <a-fujita at rs.jp.nec.com>

    ext4: Fix insertion point of extent in mext_insert_across_blocks()

# Type: NEW
OK

commit 321967316335b3b4ae643da6c8cb4d9b3384439e
Author: Akira Fujita <a-fujita at rs.jp.nec.com>

    ext4: Fix the NULL reference in double_down_write_data_sem()

# Type: NEW
looks ok

commit a042da7680d8e1f744eb3def71af64256670a1e5
Author: Akira Fujita <a-fujita at rs.jp.nec.com>

    ext4: Code cleanup for EXT4_IOC_MOVE_EXT ioctl

# Type: NEW
OK

commit fe4d59c6057192975eed21865eca18b7ef647e07
Author: Jan Kara <jack at suse.cz>

    ext4: Fix estimate of # of blocks needed to write indirect-mapped
files

# Type: NEW
No way to tell for sure without deep knowledge of ext4, probably ok

commit 14d729361e014a76758834a7ec6c9cd1a3cbafbf
Author: Eric Sandeen <sandeen at redhat.com>

    ext4: Fixed inode allocator to correctly track a flex_bg's used_dirs

# Type: NEW
looks ok

commit 284f9e4660dcdd4c72d4720c88eea82abdc09a11
Author: Curt Wohlgemuth <curtw at google.com>

    ext4: Fix possible lost inode write in no journal mode

# Type: NEW
OK

commit 4f11a060310ce3843eef04ef1a3f7330c3a3b8a1
Author: Curt Wohlgemuth <curtw at google.com>

    ext4: Fix buffer head leaks after calls to ext4_get_inode_loc()

# Type: NEW
OK

commit 222b4f60719630ccdbf2747909edb51786103ef1
Author: Theodore Ts'o <tytso at mit.edu>

    ext4: Issue the discard operation *before* releasing the blocks to
be reused

# Type: NEW
OK

commit 7e088e07763bc92d50e60b12f5b46ace23b490d2
Author: Dmitry Monakhov <dmonakhov at openvz.org>

    ext4: check missed return value in ext4_sync_file()

# Type: NEW
OK

commit 9d95c63e466dc8fc149b500920dfd335827095a5
Author: Jing Zhang <zj.barak at gmail.com>

    ext4: fix memory leaks in error path handling of ext4_ext_zeroout()

# Type: NEW
OK

commit a6e2846152e6c5ae7ccd35fa120b08da6fbeb55e
Author: Jing Zhang <zj.barak at gmail.com>

    ext4: Remove unnecessary call to ext4_get_group_desc() in mballoc

# Type: NEW
OK

commit a95a707ac3a5a0a65242ee3ab5b2f095f041fdbd
Author: Jing Zhang <zj.barak at gmail.com>

    ext4: rename ext4_mb_release_desc() to ext4_mb_unload_buddy()

# Type: NEW
OK

commit f08ac871dd8fbbb98bde075494016bb7a1010a59
Author: Christian Borntraeger <borntraeger at de.ibm.com>

    ext4: allow defrag (EXT4_IOC_MOVE_EXT) in 32bit compat mode

# Type: NEW
OK

commit aaac0ab9d14ac1edde1493dcbdf638242a602b81
Author: Dmitry Monakhov <dmonakhov at openvz.org>

    ext4: fix quota accounting in case of fallocate

# Type: NEW
OK

commit 45556dd117e1e469833fb2ba36bd531d67a69943
Author: Eric Sandeen <sandeen at redhat.com>

    ext4: check s_log_groups_per_flex in online resize code

# Type: NEW
OK

commit f935edf7c6f98a903d6a0f7dfdb411dbfa5dba76
Author: Eric Sandeen <sandeen at redhat.com>

    ext4: don't return to userspace after freezing the fs with a mutex
held

# Type: NEW
OK

commit 97678b2e67e0e5e0256cfec80ccd621c1bd02987
Author: Eric Sandeen <sandeen at redhat.com>

    ext4: stop issuing discards if not supported by device

# Type: NEW
OK

commit 81dad1d52b04dd581b1ed7b14f100eb9a2063c4e
Author: Eric Sandeen <sandeen at redhat.com>

    ext4: don't scan/accumulate more pages than mballoc will allocate

# Type: NEW
OK

commit caddc6e0fa4e03e9f008279730a9ae9ca9eade73
Author: Dmitry Monakhov <dmonakhov at openvz.org>

    ext4: Do not zero out uninitialized extents beyond i_size

# Type: NEW
OK

commit d9f7794445f148d383755748f6fa12644a9dff58
Author: Dmitry Monakhov <dmonakhov at openvz.org>

    ext4: clean up inode bitmaps manipulation in ext4_free_inode

# Type: NEW
Too complex to tell, take it on faith

commit 42c3cc24401c6ff59224234ac4afb5a79ba48bcd
Author: Dmitry Monakhov <dmonakhov at openvz.org>

    ext4: init statistics after journal recovery

# Type: NEW
ok

commit 0d84783259e0624a11143b262655b7c0e1030714
Author: Curt Wohlgemuth <curtw at google.com>

    ext4: Remove extraneous newlines in ext4_msg() calls

# Type: NEW
ok

commit 1d7aba301df769c80ac4cd6d5be5b66ee4dbbb24
Author: Nikanth Karthikesan <knikanth at suse.de>

    ext4: Prevent creation of files larger than RLIMIT_FSIZE using
fallocate

# Type: NEW
ok

commit 49a790575d55fe6730b9cef5ac394d70953b8d30
Author: Curt Wohlgemuth <curtw at google.com>

    ext4: check for a good block group before loading buddy pages

# Type: NEW
OK

commit a03984cf12f5d510eb649b6ce22bf82b09ed2e48
Author: Jan Kara <jack at suse.cz>

    ext4: Show journal_checksum option

# Type: NEW
OK

commit 9dae8bbbed0d3e6cf0cf12b80bccdcc0cc1ee3cc
Author: Dmitry Monakhov <dmonakhov at openvz.org>

    ext4: Use bitops to read/modify i_flags in struct ext4_inode_info

# Type: NEW
ok

commit 69121340327a7ad16f77db96909bebc148658622
Author: Theodore Ts'o <tytso at mit.edu>

    ext4: Avoid crashing on NULL ptr dereference on a filesystem error

# Type: NEW
OK

commit 671aa3d37b981e29680b7cd7dbcc8dd3d6671920
Author: Theodore Ts'o <tytso at mit.edu>

    ext4: Clear the EXT4_EOFBLOCKS_FL flag only when warranted

# Type: NEW
OK

commit 5a8d986b1e66cd8f268fe9ea85afabd8d155141b
Author: Dmitry Monakhov <dmonakhov at openvz.org>

    ext4: restart ext4_ext_remove_space() after transaction restart

# Type: NEW
OK

commit 4ced4be6b69d9c4855056b1c3cf509261d4d72e7
Author: Ben Hutchings <ben at decadent.org.uk>

    ext4: Conditionally define compat ioctl numbers

# Type: NEW
OK

commit b66ddf4c040ae0a10f3b343c82df471e1d4169b6
Author: Ben Hutchings <ben at decadent.org.uk>

    ext4: Fix compat EXT4_IOC_ADD_GROUP

# Type: NEW
OK

commit f7da78d6983442c0877006c932a1f81b06b5f6b9
Author: Frank Mayhar <fmayhar at google.com>

    ext4: Make fsync sync new parent directories in no-journal mode

# Type: NEW
OK

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20100622/2119ea24/attachment.sig>


More information about the kernel-team mailing list