FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu Kernel Team

 
 
LinkBack Thread Tools
 
Old 12-17-2009, 02:36 AM
Leann Ogasawara
 
Default SRU: Update to 2.6.31.8 stable kernel

Hi All,

https://bugs.edge.launchpad.net/ubuntu/karmic/+source/linux/+bug/496816

SRU Justification/Impact:

The 2.6.31.8 stable kernel has recently been released. The 2.6.31.8
Upstream Stable Kernel brings in 91 patches (2 of which we already
have). I've applied and pushed these to my tree for review.

git://kernel.ubuntu.com/ogasawara/ubuntu-karmic.git stable-2.6.31.8

http://kernel.ubuntu.com/git?p=ogasawara/ubuntu-karmic.git;a=shortlog;h=refs/heads/stable-2.6.31.8

The upstream process for stable tree updates is quite similar in scope
to the Ubuntu SRU process, e.g., each patch has to demonstrably fix a
bug, and each patch is vetted by upstream by originating either directly
from Linus' tree or in a minimally backported form of that patch. The
2.6.31.8 upstream stable patch set is now available. It should be
included in the Ubuntu kernel as well.

TEST CASE: TBD

http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.31.8

http://kernel.org/pub/linux/kernel/v2.6/patch-2.6.31.8.bz2

The following bugs might be resolved via patches from 2.6.31.8:

https://bugs.launchpad.net/ubuntu/+bug/453579 - "in-place corruption of
large files *without fsck or reboot* reported with linux 2.6.31-14.46 on
ext4"

The 91 stable patches are as follows. I've inlined my own review
comments (marked by #).

Thanks,
Leann

commit 0e84042ca40e55904c9a6ee36cab2b753bd123e9
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

ext4: Fix memory leak fix when mounting an ext4 filesystem

# Removes unused code which did the memory allocation that never got
free'd.

commit 4ef61f0aecd7792e7678f29434d1b34860e78280
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Avoid null pointer dereference when decoding EROFS w/o a journal

# Check pointer before dereferencing. Looks sane.

commit 34dd3ffe4b57ce9e38ad3258dae5051c7c6a204b
Author: Jan Kara <jack@suse.cz>

jbd2: Fail to load a journal if it is too short

# Prevents potential oops.

commit 65ccfef90fb74d4afd2414bc389a29f1a2dd94db
Author: Andreas Dilger <adilger@sun.com>

jbd2: round commit timer up to avoid uncommitted transaction

# Use round_jiffies_up instead of round_jiffies

commit 8be78bc620adf972f6d33bc6202ba1b85fdd4db5
Author: Peng Tao <bergwolf@gmail.com>

ext4: fix journal ref count in move_extent_par_page

# Adds ext4_journal_stop()

commit 5a69bbda790cdc3deb8425c6f726d22005e99b93
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix bugs in mballoc's stream allocation mode

# Add check to determine if stream allocation should take place

commit 225ff23eb45e5ad1229c27b00b2a0729cc3d8b85
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Avoid group preallocation for closed files

# Prevents fragmentation.

commit 18623c3d1d26a30943cc1a97a99f385884f1ddca
Author: Jan Kara <jack@suse.cz>

jbd2: Annotate transaction start also for jbd2_journal_restart()

# move lock_map_acquire ()

commit e2177295902d4849d61ad677e51e2d84eae617e5
Author: Jan Kara <jack@suse.cz>

ext4: Fix possible deadlock between ext4_truncate() and ext4_get_blocks()

# drop i_data_sem before ext4_journal_restart() and acquire it right
after

commit 74ba8fe3abdfcd3f58e01ebb15b1fe9d2db86053
Author: Eric Sandeen <sandeen@redhat.com>

ext4: reject too-large filesystems on 32-bit kernels

# Add check if more sectors exist than will fit in sector_t and also
check whether the max offset is addressable by the page cache.

commit e139f5b68b7aea8959a7e0fcd1f08a70c19846ba
Author: Eric Sandeen <sandeen@redhat.com>

ext4: Add feature set check helper for mount & remount paths

# Add ext4_feature_set_ok() to check if fs can be mounted/remounted
based on features present

commit 100acdbadc9707c6ddee16c3288759bcbe317ac1
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

ext4: Add missing unlock_new_inode() call in extent migration code

# Fixes warning

commit 929c7112197d58053117b3303f3bcf160bcdca45
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

ext4: Allow rename to create more than EXT4_LINK_MAX subdirectories

# use EXT4_DIR_LINK_MAX(new_dir)

commit e4670b394dd5cdfc5fda17e3ec94c444dcaecac2
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Limit number of links that can be created by ext4_link()

# check if inode->i_nlink >= EXT4_LINK_MAX

commit 63762a2387882e4ff8ae77133b331abef8e6f555
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Restore wbc->range_start in ext4_da_writepages()

# Avoid lock inversion issue by saving and restoring wbc->range_start

commit 2a8af5d4d0f69036fc02e91642f862e473350143
Author: Christoph Hellwig <hch@lst.de>

ext4: fix cache flush in ext4_sync_file

# flush the write cache unconditionally in ext4_sync_file(), this
prevents data loss after fdatasync

commit ad6030eecf171af161ad4c215c8d3f967b5ddfc5
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Fix wrong comparisons in mext_check_arguments()

# fix up comparisons, this prevents BUG_ON due to previously invalid
comparisons.

commit 4062fc4957707493ff8d53d21c058838a8425f2a
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Remove unneeded BUG_ON() in ext4_move_extents()

# Removes BUG_ON()

commit de48efe24d0e6a2291dc4fe23271b5e5b16b01a7
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Return exchanged blocks count to user space in failure

# remove !err check

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

ext4: Take page lock before looking at attached buffer_heads flags

# Grab lock_page(page), and make sure to balance with unlock_page(page)

commit 6758feb58f9c66dbbd8ef67543deb03311296f3a
Author: Theodore Ts'o <tytso@mit.edu>

ext4: print more sysadmin-friendly message in check_block_validity()

# Remove WARN_ON() and modify message printed from ext4_error()

commit 523a2ab5bf81efa0fc9a1b6afc43e729ddae58f0
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Use bforget() in no journal mode for ext4_journal_{forget,revoke}()

# Add bforget() call to ext4_journal_{forget,revoke}() to prevent dirty
metadata block overwriting a block after it has been reallocated and
reused for another inode's data block

commit 75c1a3f1f6b164f280b7713a8b301e125ae86292
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Assure that metadata blocks are written during fsync in no journal mode

# if no journal present, mark_buffer_dirty_inode() so that
ext4_sync_file() can write out the inode's metadata blocks by calling
sync_mapping_buffers()

commit 90608af946cb40a743f3d7af58310ff8381b7101
Author: Frank Mayhar <fmayhar@google.com>

ext4: Make non-journal fsync work properly

# Best described in commit message.

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

ext4: move ext4_mb_init_group() function earlier in the mballoc.c

# no change in actual ext4_mb_init_group() code, just moved to different
location in file.

commit 44373f34a740e9155cc011734ae0342b34e40d2c
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

ext4: check for need init flag in ext4_mb_load_buddy

# check EXT4_MB_GRP_NEED_INIT(grp) while holding alloc_sem, otherwise
doing so is racy

commit 7a71dacba604fee399884a5f3d2c53e21e9c3a79
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Don't update superblock write time when filesystem is read-only

# we were already carrying this. replace existing commit in favor of
this one from stable.

commit d78f2ac343787f48e97c87676fccaef850a50cbe
Author: Andreas Schlick <schlick@lavabit.com>

ext4: Always set dx_node's fake_dirent explicitly.

# Use memset()

commit 1de54d1bc0248c2b0f21e22b48f145271d38cbd5
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix initalization of s_flex_groups

# Use atomic_add() instead of atomic_set()

commit e4a8cc648a9a3decca1bc5f0f16aacdfc0d72d5a
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix include/trace/events/ext4.h to work with Systemtap

# Don't use relative pathnames in #include statements

commit 77e8c777ef2f4e31b690688fc27014b88feead9d
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Fix small typo for move_extent_per_page()

# Replace move_extent_par_page with move_extent_per_page

commit cc61eb8051988796a4a5103b749bb06e24df236c
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Replace get_ext_path macro with an inline funciton

# use inline function instead of a macro

commit 06f3ce16b31eb2015f873c96d459494964f9b7cd
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Replace BUG_ON() with ext4_error() in move_extents.c

# ext4_error() provides better debug info. patch also adds some helper
functions.

commit f9211e5e69570ec989a5297d1637229340cadb61
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Add null extent check to ext_get_path

# Return -ENODATA if null

commit 45d2735a0725d39b77a22cf535566ed570d6fc0a
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Fix different block exchange issue in EXT4_IOC_MOVE_EXT

# add check to make sure data exchange is done between the same blocks
in EXT4_IOC_MOVE_EXT

commit d55f431a04b186cc1ede0f100a030c9dda25bd9c
Author: Eric Sandeen <sandeen@redhat.com>

ext4: limit block allocations for indirect-block files to < 2^32

# prevents corruption.

commit 1f51991dec0bd679d172b55a86d54ca3f6227c51
Author: Theodore Ts'o <tytso@mit.edu>

ext4: store EXT4_EXT_MIGRATE in i_state instead of i_flags

# patch does what the description says

commit a6c92a88b556da1073e03d6936ae70c2c045421c
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix the alloc on close after a truncate hueristic

# remove unnecessary check for ei->i_disksize being zero

commit 0be3bd025b9893a0f2ed3d1cbeb06d7abc0e27df
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix hueristic which avoids group preallocation for closed files

# move size = max(size, isize); until after checking size == isize

commit 54088f5df9e352c41ef0f2eeb17ec9ae995ab4b3
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Adjust ext4_da_writepages() to write out larger contiguous chunks

# Larger patch than usual. Adjust writeback to be > 4mb chunks.

commit f26ac96224871adf0647496e4154eabdee3689a6
Author: Mingming Cao <cmm@us.ibm.com>

ext4: release reserved quota when block reservation for delalloc retry

# move vfs_dq_release_reservation_block()

commit 45eef039f3a5d0bce583d0a9b34818127ea79e49
Author: Mingming Cao <cmm@us.ibm.com>

ext4: Split uninitialized extents for direct I/O

# Larger patch. split the extent into uninitialized and initialized
extents before submitting the I/O. After I/O is complete, the written
extent will be marked as initialized.

commit 1295e40acf6d150d129fac939bc97aed771e6c7b
Author: Mingming Cao <cmm@us.ibm.com>

ext4: Use end_io callback to avoid direct I/O fallback to buffered I/O

# Large patch. Appreciate additional comments/reviews on this.

commit 3c42b7eb297192519fbfa80e1c77abd01c223114
Author: Mingming Cao <cmm@us.ibm.com>

ext4: async direct IO for holes and fallocate support

# Again, large patch. Flush the conversion work when fsync() is called.
Again, additional comments/review appreciated.

commit ca23b5fd5bd6fd09e90008f9390cff248e01b718
Author: Theodore Ts'o <tytso@mit.edu>

ext4: EXT4_IOC_MOVE_EXT: Check for different original and donor inodes first

# Avoid potential deadlock. move check for orig_inode->i_ino == donor_inode->i_ino

commit 46d67b3c075b0d1630b57630f956edb1dad61baa
Author: Frank Mayhar <fmayhar@google.com>

ext4: Avoid updating the inode table bh twice in no journal mode

# clean up for commit 91ac6f4.

commit 94ab12a2649b1e86677771d310a20752ba5b1542
Author: Curt Wohlgemuth <curtw@google.com>

ext4: Make sure ext4_dirty_inode() updates the inode in no journal mode

# always call ext4_mark_inode_dirty() from ext4_dirty_inode()

commit e39f1920521ed14d874d638265e27a16526df494
Author: Curt Wohlgemuth <curtw@google.com>

ext4: Handle nested ext4_journal_start/stop calls without a journal

# Add ext4_{get|put}_nojournal() calls

commit 28c72b7fbc403ec439b0108e6559c9c67a3afe8d
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix time encoding with extra epoch bits

# mask EXT4_EPOCH_MASK

commit 2489f42e40972d65e50a0b842297f90ce02e6cb0
Author: Theodore Ts'o <tytso@mit.edu>

ext4: fix a BUG_ON crash by checking that page has buffers attached to it

# check page_has_buffers(page)

commit 620c66ab00f5b06de7119fbe0cc7dba3cc9aca7d
Author: Eric Sandeen <sandeen@redhat.com>

ext4: retry failed direct IO allocations

# retry allocation if -ENOSPC

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

ext4: discard preallocation when restarting a transaction during truncate

# Add ext4_discard_preallocations()

commit 3e270fa58d81a994d1e4371be444f2e5bb072866
Author: Mingming <cmm@us.ibm.com>

ext4: fix ext4_ext_direct_IO()'s return value after converting uninit extents

# check return value of ext4_convert_unwritten_extents() and return err if < 0

commit 3e6c8d3881736079664aad465e26486d1d4152b9
Author: Mingming <cmm@us.ibm.com>

ext4: skip conversion of uninit extents after direct IO if there isn't any

# Add state flag so that ext4_ext_direct_IO() only calls
ext4_convert_unwritten_extents() when necessary

commit 2bcfe650d1b5c9994ce58a25efd5a6f5eb4ad0ee
Author: Mingming <cmm@us.ibm.com>

ext4: code clean up for dio fallocate handling

# move (!io_end || !size) check prior to ext_debug().

commit 00909f7247db77fa3a3237b1d7b3d69ea25edd8a
Author: Mingming <cmm@us.ibm.com>

ext4: Fix return value of ext4_split_unwritten_extents() to fix direct I/O

# return size of uninitialized extents

commit 37bd334da00d116dba0526292891b1b572f1955b
Author: Theodore Ts'o <tytso@mit.edu>

ext4: fix potential buffer head leak when add_dirent_to_buf() returns ENOSPC

# call brelse()

commit a7aaaff940e284035a16e07cf90424da386ddce1
Author: Theodore Ts'o <tytso@mit.edu>

ext4: avoid divide by zero when trying to mount a corrupted file system

# check groups_per_flex < 2

commit 9a88a5ad2afe14b6f077c805a9c6dd95679aabba
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails

# return number of blocks that were exchanged before the failure

commit c6b24d6fd81cf34718b0a075e9ce0584e7f6a784
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: fix lock order problem in ext4_move_extents()

# Add i_data_sem protection between ext4_ext_find_extent() and
mext_next_extent() with a slight modification for move_extent_per_page()
to start transaction first, and then acquire i_data_sem

commit 1cb0b894567626e02ad2fb6d8e74356918624499
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT

# Use down_write_nested() instead of down_write(), without this a
warning would be printed if CONFIG_PROVE_LOCKING was enabled. However,
we don't enable this in Karmic.

commit 97a9a2516af7df77a961e36466be866f7facfec3
Author: Theodore Ts'o <tytso@mit.edu>

ext4: plug a buffer_head leak in an error path of ext4_iget()

# move brelse() to error path

commit 063875158fa59b569ba26b9b259e822b5b51657e
Author: Theodore Ts'o <tytso@mit.edu>

ext4: make sure directory and symlink blocks are revoked

# call ext4_forget() with non-zero is_metadata parameter, otherwise
could lead to data corruption

commit 882e3a7d67adf1bd773efd2d9999383b414832fd
Author: Julia Lawall <julia@diku.dk>

ext4: fix i_flags access in ext4_da_writepages_trans_blocks()

# check EXT4_I(inode)->i_flags and not inode->i_flags

commit c1e25a5675eac46bee85953720705efceceb70a2
Author: Eric Sandeen <sandeen@redhat.com>

ext4: journal all modifications in ext4_xattr_set_handle

# move call to ext4_journal_get_write_access()

commit a0dacfcfac479a5b950a8d863fe8b55328a6e1cd
Author: Theodore Ts'o <tytso@mit.edu>

ext4: don't update the superblock in ext4_statfs()

# might resolve LP bug 453579

commit 433a171d4c17eff96511617e132efb985f200fad
Author: Theodore Ts'o <tytso@mit.edu>

ext4: fix uninit block bitmap initialization when s_meta_first_bg is non-zero

# check EXT4_FEATURE_INCOMPAT_META_BG is set and if so return
le32_to_cpu(EXT4_SB(sb)->s_es->s_first_meta_bg)

commit b284e381f7b816a523636271274e38af7aae3dbd
Author: Theodore Ts'o <tytso@mit.edu>

ext4: fix block validity checks so they work correctly with meta_bg

# check !ext4_data_block_valid()

commit 84d77b74f7ce2e4937b18864fe6d033b29831918
Author: Theodore Ts'o <tytso@mit.edu>

ext4: avoid issuing unnecessary barriers

# immediately return on error.

commit 648d9cddf46454ef6aad9f8faf1dd051543647dd
Author: Jan Kara <jack@suse.cz>

ext4: fix error handling in ext4_ind_get_blocks()

# check if fext4_splice_branch() returns an error

commit c46e04b9e788d6abed811128aa4e61dc0996509c
Author: Eric Sandeen <sandeen@redhat.com>

ext4: make trim/discard optional (and off by default)

# make sb_issue_discard off by default and mount time optional

commit 360bfe0d07db42ee99a47b5549ac06d81016f356
Author: Eric Sandeen <sandeen@redhat.com>

ext4: make "norecovery" an alias for "noload"

# on ext4 ml discussions "norecovery" was noted as being more
descriptive than "noload" so create alias

commit b9894156432b3013cb46567a2a9a9c46027f4444
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT

# move ext4_discard_preallocations() to end of ext4_move_extents()

commit 3f54503c2b00d8d908f23621f090915bc51c0797
Author: Kazuya Mio <k-mio@sx.jp.nec.com>

ext4: initialize moved_len before calling ext4_move_extents()

# remove checks for moved_len

commit eee4dabf625a44ee556cf6869bd90d54364cf38b
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: move_extent_per_page() cleanup

# condense code

commit aea93db412553d4d7319945868293a3f9b65a3a8
Author: Theodore Ts'o <tytso@mit.edu>

jbd2: Add ENOMEM checking in and for jbd2_journal_write_metadata_buffer()

# check return value of jbd2_journal_write_metadata_buffer() and jbd2_alloc()

commit 5e5c63120a3f3be8b89d09198bb0bc76e8d4f926
Author: Roel Kluin <roel.kluin@gmail.com>

ext4: Return the PTR_ERR of the correct pointer in setup_new_group_blocks()

# return PTR_ERR(gdb) not PTR_ERR(bh)

commit 1065591da0c1726f0aff654a7e23062e8898d923
Author: Jan Kara <jack@suse.cz>

ext4: Avoid data / filesystem corruption when write fails to copy data

# wrap truncate_inode_pages() and ext4_truncate() in
ext4_truncate_failed_write(). Then replace calls to ext4_truncate()
with ext4_truncate_failed_write()

commit 3b9d4e773c20b34534c46e563103071f2f540bf8
Author: Josef Bacik <josef@redhat.com>

ext4: wait for log to commit when umounting

# move code so that we wait for the transaction to finish committing
before we shutdown the multiblock allocator

commit a9a3ddb71f81e2529f7c38f06981723c8af1ffd0
Author: Curt Wohlgemuth <curtw@google.com>

ext4: remove blocks from inode prealloc list on failure

# fixes leak

commit 89ca4c75b2ad9f2610d390590dcd16e60e909f43
Author: Dmitry Monakhov <dmonakhov@openvz.org>

ext4: ext4_get_reserved_space() must return bytes instead of blocks

# return total << inode->i_blkbits

commit e79220b94468feaf42ec05fe197a8dfe5a782f57
Author: Dmitry Monakhov <dmonakhov@openvz.org>

ext4: quota macros cleanup

# use MAXQUOTAS rather than hardcoding value

commit 224fb952944a6ff5c4032f5cdcf0a73ac45b0702
Author: Dmitry Monakhov <dmonakhov@openvz.org>

ext4: fix incorrect block reservation on quota transfer.

# use EXT4_MAXQUOTAS_DEL_BLOCKS, not EXT4_QUOTA_DEL_BLOCKS

commit e8f0d507456ee6ea071e0bb9d445e848b29872ac
Author: Jan Kara <jack@suse.cz>

ext4: Wait for proper transaction commit on fsync

# larger patch. tracks which transaction has last changed the inode and
which transaction last changed allocation and force it to disk on fsync

commit 51a88ff8de521caa02d8d208e410ff85a3c85199
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT

# Already included in security release

commit 66d8e059a54d7aa345ef9a857986e2055870a14e
Author: Yang, Bo <Bo.Yang@lsi.com>

SCSI: megaraid_sas: fix 64 bit sense pointer truncation

# use unsigned long instead of u32

commit fa0b90829888932592f6f99959ebc42c12356623
Author: Martin Michlmayr <tbm@cyrius.com>

SCSI: osd_protocol.h: Add missing #include

# Add #include <linux/kernel.h>

commit 3c4f4e86d320bc7853f9aba7f8382a5a77dc6e43
Author: James Bottomley <James.Bottomley@suse.de>

SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects

# replace scsi_add_host() with scsi_add_host_with_dma() which accepts an
extra param for dma_dev

commit 59cebab12f5dd741ae565ed242f1f12790d9c4ba
Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>

signal: Fix alternate signal stack check

# check CONFIG_STACK_GROWSUP and return value accordingly

commit 26973f8bd6dfee21209ef3d521c286ee485ef2a8
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem)

# fix possible circular locking dependency by acquiring and releasing
i_data_sem before and after ext4_ext_find_extent(), not around
ext4_ext_walk_space()

commit 047e5f383505cda6606b73d49a857895de5e2c48
Author: Greg Kroah-Hartman <gregkh@suse.de>

Linux 2.6.31.8

# update Makefile


--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 12-17-2009, 08:11 AM
Stefan Bader
 
Default SRU: Update to 2.6.31.8 stable kernel

Leann Ogasawara wrote:
> Hi All,
>
> https://bugs.edge.launchpad.net/ubuntu/karmic/+source/linux/+bug/496816
>
> SRU Justification/Impact:
>
> The 2.6.31.8 stable kernel has recently been released. The 2.6.31.8
> Upstream Stable Kernel brings in 91 patches (2 of which we already
> have). I've applied and pushed these to my tree for review.
>
> git://kernel.ubuntu.com/ogasawara/ubuntu-karmic.git stable-2.6.31.8
>
> http://kernel.ubuntu.com/git?p=ogasawara/ubuntu-karmic.git;a=shortlog;h=refs/heads/stable-2.6.31.8
>
> The upstream process for stable tree updates is quite similar in scope
> to the Ubuntu SRU process, e.g., each patch has to demonstrably fix a
> bug, and each patch is vetted by upstream by originating either directly
> from Linus' tree or in a minimally backported form of that patch. The
> 2.6.31.8 upstream stable patch set is now available. It should be
> included in the Ubuntu kernel as well.
>
> TEST CASE: TBD
>
> http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.31.8
>
> http://kernel.org/pub/linux/kernel/v2.6/patch-2.6.31.8.bz2
>
> The following bugs might be resolved via patches from 2.6.31.8:
>
> https://bugs.launchpad.net/ubuntu/+bug/453579 - "in-place corruption of
> large files *without fsck or reboot* reported with linux 2.6.31-14.46 on
> ext4"
>
> The 91 stable patches are as follows. I've inlined my own review
> comments (marked by #).
>
> Thanks,
> Leann

Appending my notes (where I also tried to classify the type of fix)
and some comments in line. I agree with Leann about the DIO patches,
which cover a large portion of code and also mention often that IO
would fallback to buffered IO which would translate to me as rather
a performance issue (OTOH DIO is used with databases, so the server
fraction might welcome the changes). Surbhi, when you do your review,
maybe concentrate a bit more on those DIO changes, so you can give us
a better idea there.
In general I guess we can and should set up ext4 fs tests to run on
kernel including that patchset to verify those run.

-Stefan

> commit 0e84042ca40e55904c9a6ee36cab2b753bd123e9
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: Fix memory leak fix when mounting an ext4 filesystem
>
> # Removes unused code which did the memory allocation that never got
> free'd.
>
> commit 4ef61f0aecd7792e7678f29434d1b34860e78280
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Avoid null pointer dereference when decoding EROFS w/o a journal
>
> # Check pointer before dereferencing. Looks sane.
>
> commit 34dd3ffe4b57ce9e38ad3258dae5051c7c6a204b
> Author: Jan Kara <jack@suse.cz>
>
> jbd2: Fail to load a journal if it is too short
>
> # Prevents potential oops.
>
> commit 65ccfef90fb74d4afd2414bc389a29f1a2dd94db
> Author: Andreas Dilger <adilger@sun.com>
>
> jbd2: round commit timer up to avoid uncommitted transaction
>
> # Use round_jiffies_up instead of round_jiffies
>
> commit 8be78bc620adf972f6d33bc6202ba1b85fdd4db5
> Author: Peng Tao <bergwolf@gmail.com>
>
> ext4: fix journal ref count in move_extent_par_page
>
> # Adds ext4_journal_stop()
>
> commit 5a69bbda790cdc3deb8425c6f726d22005e99b93
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix bugs in mballoc's stream allocation mode
>
> # Add check to determine if stream allocation should take place
>
> commit 225ff23eb45e5ad1229c27b00b2a0729cc3d8b85
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Avoid group preallocation for closed files
>
> # Prevents fragmentation.
>
> commit 18623c3d1d26a30943cc1a97a99f385884f1ddca
> Author: Jan Kara <jack@suse.cz>
>
> jbd2: Annotate transaction start also for jbd2_journal_restart()
>
> # move lock_map_acquire ()
>
> commit e2177295902d4849d61ad677e51e2d84eae617e5
> Author: Jan Kara <jack@suse.cz>
>
> ext4: Fix possible deadlock between ext4_truncate() and ext4_get_blocks()
>
> # drop i_data_sem before ext4_journal_restart() and acquire it right
> after
>
> commit 74ba8fe3abdfcd3f58e01ebb15b1fe9d2db86053
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: reject too-large filesystems on 32-bit kernels
>
> # Add check if more sectors exist than will fit in sector_t and also
> check whether the max offset is addressable by the page cache.
>
> commit e139f5b68b7aea8959a7e0fcd1f08a70c19846ba
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: Add feature set check helper for mount & remount paths
>
> # Add ext4_feature_set_ok() to check if fs can be mounted/remounted
> based on features present
>
> commit 100acdbadc9707c6ddee16c3288759bcbe317ac1
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: Add missing unlock_new_inode() call in extent migration code
>
> # Fixes warning
>
> commit 929c7112197d58053117b3303f3bcf160bcdca45
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: Allow rename to create more than EXT4_LINK_MAX subdirectories
>
> # use EXT4_DIR_LINK_MAX(new_dir)
>
> commit e4670b394dd5cdfc5fda17e3ec94c444dcaecac2
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Limit number of links that can be created by ext4_link()
>
> # check if inode->i_nlink >= EXT4_LINK_MAX
>
> commit 63762a2387882e4ff8ae77133b331abef8e6f555
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Restore wbc->range_start in ext4_da_writepages()
>
> # Avoid lock inversion issue by saving and restoring wbc->range_start
>
> commit 2a8af5d4d0f69036fc02e91642f862e473350143
> Author: Christoph Hellwig <hch@lst.de>
>
> ext4: fix cache flush in ext4_sync_file
>
> # flush the write cache unconditionally in ext4_sync_file(), this
> prevents data loss after fdatasync
>
> commit ad6030eecf171af161ad4c215c8d3f967b5ddfc5
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Fix wrong comparisons in mext_check_arguments()
>
> # fix up comparisons, this prevents BUG_ON due to previously invalid
> comparisons.
>
> commit 4062fc4957707493ff8d53d21c058838a8425f2a
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Remove unneeded BUG_ON() in ext4_move_extents()
>
> # Removes BUG_ON()
>

> commit de48efe24d0e6a2291dc4fe23271b5e5b16b01a7
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Return exchanged blocks count to user space in failure
>
> # remove !err check

This one needed adaption as it is co-located with the ext4 security
check.

>
> commit f112250b558ed59538502992570272253b4ef129
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: Take page lock before looking at attached buffer_heads flags
>
> # Grab lock_page(page), and make sure to balance with unlock_page(page)
>
> commit 6758feb58f9c66dbbd8ef67543deb03311296f3a
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: print more sysadmin-friendly message in check_block_validity()
>
> # Remove WARN_ON() and modify message printed from ext4_error()
>
> commit 523a2ab5bf81efa0fc9a1b6afc43e729ddae58f0
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Use bforget() in no journal mode for ext4_journal_{forget,revoke}()
>
> # Add bforget() call to ext4_journal_{forget,revoke}() to prevent dirty
> metadata block overwriting a block after it has been reallocated and
> reused for another inode's data block
>
> commit 75c1a3f1f6b164f280b7713a8b301e125ae86292
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Assure that metadata blocks are written during fsync in no journal mode
>
> # if no journal present, mark_buffer_dirty_inode() so that
> ext4_sync_file() can write out the inode's metadata blocks by calling
> sync_mapping_buffers()
>
> commit 90608af946cb40a743f3d7af58310ff8381b7101
> Author: Frank Mayhar <fmayhar@google.com>
>
> ext4: Make non-journal fsync work properly
>
> # Best described in commit message.
>
> commit ee0cc3fed6eacd6d791b89fa8fd839918e41fefb
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: move ext4_mb_init_group() function earlier in the mballoc.c
>
> # no change in actual ext4_mb_init_group() code, just moved to different
> location in file.
>
> commit 44373f34a740e9155cc011734ae0342b34e40d2c
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: check for need init flag in ext4_mb_load_buddy
>
> # check EXT4_MB_GRP_NEED_INIT(grp) while holding alloc_sem, otherwise
> doing so is racy
>
> commit 7a71dacba604fee399884a5f3d2c53e21e9c3a79
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Don't update superblock write time when filesystem is read-only
>
> # we were already carrying this. replace existing commit in favor of
> this one from stable.
>
> commit d78f2ac343787f48e97c87676fccaef850a50cbe
> Author: Andreas Schlick <schlick@lavabit.com>
>
> ext4: Always set dx_node's fake_dirent explicitly.
>
> # Use memset()
>
> commit 1de54d1bc0248c2b0f21e22b48f145271d38cbd5
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix initalization of s_flex_groups
>
> # Use atomic_add() instead of atomic_set()
>
> commit e4a8cc648a9a3decca1bc5f0f16aacdfc0d72d5a
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix include/trace/events/ext4.h to work with Systemtap
>
> # Don't use relative pathnames in #include statements
>
> commit 77e8c777ef2f4e31b690688fc27014b88feead9d
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Fix small typo for move_extent_per_page()
>
> # Replace move_extent_par_page with move_extent_per_page
>
> commit cc61eb8051988796a4a5103b749bb06e24df236c
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Replace get_ext_path macro with an inline funciton
>
> # use inline function instead of a macro
>
> commit 06f3ce16b31eb2015f873c96d459494964f9b7cd
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Replace BUG_ON() with ext4_error() in move_extents.c
>
> # ext4_error() provides better debug info. patch also adds some helper
> functions.
>
> commit f9211e5e69570ec989a5297d1637229340cadb61
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Add null extent check to ext_get_path
>
> # Return -ENODATA if null
>
> commit 45d2735a0725d39b77a22cf535566ed570d6fc0a
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Fix different block exchange issue in EXT4_IOC_MOVE_EXT
>
> # add check to make sure data exchange is done between the same blocks
> in EXT4_IOC_MOVE_EXT
>
> commit d55f431a04b186cc1ede0f100a030c9dda25bd9c
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: limit block allocations for indirect-block files to < 2^32
>
> # prevents corruption.
>
> commit 1f51991dec0bd679d172b55a86d54ca3f6227c51
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: store EXT4_EXT_MIGRATE in i_state instead of i_flags
>
> # patch does what the description says
>
> commit a6c92a88b556da1073e03d6936ae70c2c045421c
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix the alloc on close after a truncate hueristic
>
> # remove unnecessary check for ei->i_disksize being zero
>
> commit 0be3bd025b9893a0f2ed3d1cbeb06d7abc0e27df
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix hueristic which avoids group preallocation for closed files
>
> # move size = max(size, isize); until after checking size == isize
>
> commit 54088f5df9e352c41ef0f2eeb17ec9ae995ab4b3
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Adjust ext4_da_writepages() to write out larger contiguous chunks
>
> # Larger patch than usual. Adjust writeback to be > 4mb chunks.
>
> commit f26ac96224871adf0647496e4154eabdee3689a6
> Author: Mingming Cao <cmm@us.ibm.com>
>
> ext4: release reserved quota when block reservation for delalloc retry
>
> # move vfs_dq_release_reservation_block()
>

> commit 45eef039f3a5d0bce583d0a9b34818127ea79e49
> Author: Mingming Cao <cmm@us.ibm.com>
>
> ext4: Split uninitialized extents for direct I/O

This and the following 2 should get better review. I believe
those are ABI bumpers as well, beside others. There seem to be
fixup patches to them later on as well.

> # Larger patch. split the extent into uninitialized and initialized
> extents before submitting the I/O. After I/O is complete, the written
> extent will be marked as initialized.
>
> commit 1295e40acf6d150d129fac939bc97aed771e6c7b
> Author: Mingming Cao <cmm@us.ibm.com>
>
> ext4: Use end_io callback to avoid direct I/O fallback to buffered I/O
>
> # Large patch. Appreciate additional comments/reviews on this.
>
> commit 3c42b7eb297192519fbfa80e1c77abd01c223114
> Author: Mingming Cao <cmm@us.ibm.com>
>
> ext4: async direct IO for holes and fallocate support
>
> # Again, large patch. Flush the conversion work when fsync() is called.
> Again, additional comments/review appreciated.
>
> commit ca23b5fd5bd6fd09e90008f9390cff248e01b718
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: EXT4_IOC_MOVE_EXT: Check for different original and donor inodes first
>
> # Avoid potential deadlock. move check for orig_inode->i_ino == donor_inode->i_ino
>
> commit 46d67b3c075b0d1630b57630f956edb1dad61baa
> Author: Frank Mayhar <fmayhar@google.com>
>
> ext4: Avoid updating the inode table bh twice in no journal mode
>
> # clean up for commit 91ac6f4.
>
> commit 94ab12a2649b1e86677771d310a20752ba5b1542
> Author: Curt Wohlgemuth <curtw@google.com>
>
> ext4: Make sure ext4_dirty_inode() updates the inode in no journal mode
>
> # always call ext4_mark_inode_dirty() from ext4_dirty_inode()
>
> commit e39f1920521ed14d874d638265e27a16526df494
> Author: Curt Wohlgemuth <curtw@google.com>
>
> ext4: Handle nested ext4_journal_start/stop calls without a journal
>
> # Add ext4_{get|put}_nojournal() calls
>
> commit 28c72b7fbc403ec439b0108e6559c9c67a3afe8d
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix time encoding with extra epoch bits
>
> # mask EXT4_EPOCH_MASK
>
> commit 2489f42e40972d65e50a0b842297f90ce02e6cb0
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: fix a BUG_ON crash by checking that page has buffers attached to it
>
> # check page_has_buffers(page)
>
> commit 620c66ab00f5b06de7119fbe0cc7dba3cc9aca7d
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: retry failed direct IO allocations
>
> # retry allocation if -ENOSPC
>
> commit ba593a59c912b3ae1f18b74d8ad66594ba3a47b6
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: discard preallocation when restarting a transaction during truncate
>
> # Add ext4_discard_preallocations()
>
> commit 3e270fa58d81a994d1e4371be444f2e5bb072866
> Author: Mingming <cmm@us.ibm.com>
>
> ext4: fix ext4_ext_direct_IO()'s return value after converting uninit extents
>
> # check return value of ext4_convert_unwritten_extents() and return err if < 0
>
> commit 3e6c8d3881736079664aad465e26486d1d4152b9
> Author: Mingming <cmm@us.ibm.com>
>
> ext4: skip conversion of uninit extents after direct IO if there isn't any
>
> # Add state flag so that ext4_ext_direct_IO() only calls
> ext4_convert_unwritten_extents() when necessary
>
> commit 2bcfe650d1b5c9994ce58a25efd5a6f5eb4ad0ee
> Author: Mingming <cmm@us.ibm.com>
>
> ext4: code clean up for dio fallocate handling
>
> # move (!io_end || !size) check prior to ext_debug().
>
> commit 00909f7247db77fa3a3237b1d7b3d69ea25edd8a
> Author: Mingming <cmm@us.ibm.com>
>
> ext4: Fix return value of ext4_split_unwritten_extents() to fix direct I/O
>
> # return size of uninitialized extents
>
> commit 37bd334da00d116dba0526292891b1b572f1955b
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: fix potential buffer head leak when add_dirent_to_buf() returns ENOSPC
>
> # call brelse()
>
> commit a7aaaff940e284035a16e07cf90424da386ddce1
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: avoid divide by zero when trying to mount a corrupted file system
>
> # check groups_per_flex < 2
>
> commit 9a88a5ad2afe14b6f077c805a9c6dd95679aabba
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails
>
> # return number of blocks that were exchanged before the failure
>
> commit c6b24d6fd81cf34718b0a075e9ce0584e7f6a784
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: fix lock order problem in ext4_move_extents()
>
> # Add i_data_sem protection between ext4_ext_find_extent() and
> mext_next_extent() with a slight modification for move_extent_per_page()
> to start transaction first, and then acquire i_data_sem
>
> commit 1cb0b894567626e02ad2fb6d8e74356918624499
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT
>
> # Use down_write_nested() instead of down_write(), without this a
> warning would be printed if CONFIG_PROVE_LOCKING was enabled. However,
> we don't enable this in Karmic.
>
> commit 97a9a2516af7df77a961e36466be866f7facfec3
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: plug a buffer_head leak in an error path of ext4_iget()
>
> # move brelse() to error path
>
> commit 063875158fa59b569ba26b9b259e822b5b51657e
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: make sure directory and symlink blocks are revoked
>
> # call ext4_forget() with non-zero is_metadata parameter, otherwise
> could lead to data corruption
>
> commit 882e3a7d67adf1bd773efd2d9999383b414832fd
> Author: Julia Lawall <julia@diku.dk>
>
> ext4: fix i_flags access in ext4_da_writepages_trans_blocks()
>
> # check EXT4_I(inode)->i_flags and not inode->i_flags
>
> commit c1e25a5675eac46bee85953720705efceceb70a2
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: journal all modifications in ext4_xattr_set_handle
>
> # move call to ext4_journal_get_write_access()
>
> commit a0dacfcfac479a5b950a8d863fe8b55328a6e1cd
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: don't update the superblock in ext4_statfs()
>
> # might resolve LP bug 453579
>
> commit 433a171d4c17eff96511617e132efb985f200fad
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: fix uninit block bitmap initialization when s_meta_first_bg is non-zero
>
> # check EXT4_FEATURE_INCOMPAT_META_BG is set and if so return
> le32_to_cpu(EXT4_SB(sb)->s_es->s_first_meta_bg)
>
> commit b284e381f7b816a523636271274e38af7aae3dbd
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: fix block validity checks so they work correctly with meta_bg
>
> # check !ext4_data_block_valid()
>
> commit 84d77b74f7ce2e4937b18864fe6d033b29831918
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: avoid issuing unnecessary barriers
>
> # immediately return on error.
>
> commit 648d9cddf46454ef6aad9f8faf1dd051543647dd
> Author: Jan Kara <jack@suse.cz>
>
> ext4: fix error handling in ext4_ind_get_blocks()
>
> # check if fext4_splice_branch() returns an error
>
> commit c46e04b9e788d6abed811128aa4e61dc0996509c
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: make trim/discard optional (and off by default)
>
> # make sb_issue_discard off by default and mount time optional
>
> commit 360bfe0d07db42ee99a47b5549ac06d81016f356
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: make "norecovery" an alias for "noload"
>
> # on ext4 ml discussions "norecovery" was noted as being more
> descriptive than "noload" so create alias
>
> commit b9894156432b3013cb46567a2a9a9c46027f4444
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT
>
> # move ext4_discard_preallocations() to end of ext4_move_extents()
>

> commit 3f54503c2b00d8d908f23621f090915bc51c0797
> Author: Kazuya Mio <k-mio@sx.jp.nec.com>
>
> ext4: initialize moved_len before calling ext4_move_extents()
>
> # remove checks for moved_len

Needed some adaption as parts of it were included with out ext4
security patch.

> commit eee4dabf625a44ee556cf6869bd90d54364cf38b
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: move_extent_per_page() cleanup
>
> # condense code
>
> commit aea93db412553d4d7319945868293a3f9b65a3a8
> Author: Theodore Ts'o <tytso@mit.edu>
>
> jbd2: Add ENOMEM checking in and for jbd2_journal_write_metadata_buffer()
>
> # check return value of jbd2_journal_write_metadata_buffer() and jbd2_alloc()
>
> commit 5e5c63120a3f3be8b89d09198bb0bc76e8d4f926
> Author: Roel Kluin <roel.kluin@gmail.com>
>
> ext4: Return the PTR_ERR of the correct pointer in setup_new_group_blocks()
>
> # return PTR_ERR(gdb) not PTR_ERR(bh)
>
> commit 1065591da0c1726f0aff654a7e23062e8898d923
> Author: Jan Kara <jack@suse.cz>
>
> ext4: Avoid data / filesystem corruption when write fails to copy data
>
> # wrap truncate_inode_pages() and ext4_truncate() in
> ext4_truncate_failed_write(). Then replace calls to ext4_truncate()
> with ext4_truncate_failed_write()
>
> commit 3b9d4e773c20b34534c46e563103071f2f540bf8
> Author: Josef Bacik <josef@redhat.com>
>
> ext4: wait for log to commit when umounting
>
> # move code so that we wait for the transaction to finish committing
> before we shutdown the multiblock allocator
>
> commit a9a3ddb71f81e2529f7c38f06981723c8af1ffd0
> Author: Curt Wohlgemuth <curtw@google.com>
>
> ext4: remove blocks from inode prealloc list on failure
>
> # fixes leak
>
> commit 89ca4c75b2ad9f2610d390590dcd16e60e909f43
> Author: Dmitry Monakhov <dmonakhov@openvz.org>
>
> ext4: ext4_get_reserved_space() must return bytes instead of blocks
>
> # return total << inode->i_blkbits
>
> commit e79220b94468feaf42ec05fe197a8dfe5a782f57
> Author: Dmitry Monakhov <dmonakhov@openvz.org>
>
> ext4: quota macros cleanup
>
> # use MAXQUOTAS rather than hardcoding value
>
> commit 224fb952944a6ff5c4032f5cdcf0a73ac45b0702
> Author: Dmitry Monakhov <dmonakhov@openvz.org>
>
> ext4: fix incorrect block reservation on quota transfer.
>
> # use EXT4_MAXQUOTAS_DEL_BLOCKS, not EXT4_QUOTA_DEL_BLOCKS
>
> commit e8f0d507456ee6ea071e0bb9d445e848b29872ac
> Author: Jan Kara <jack@suse.cz>
>
> ext4: Wait for proper transaction commit on fsync
>
> # larger patch. tracks which transaction has last changed the inode and
> which transaction last changed allocation and force it to disk on fsync
>
> commit 51a88ff8de521caa02d8d208e410ff85a3c85199
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT
>
> # Already included in security release
>
> commit 66d8e059a54d7aa345ef9a857986e2055870a14e
> Author: Yang, Bo <Bo.Yang@lsi.com>
>
> SCSI: megaraid_sas: fix 64 bit sense pointer truncation
>
> # use unsigned long instead of u32
>
> commit fa0b90829888932592f6f99959ebc42c12356623
> Author: Martin Michlmayr <tbm@cyrius.com>
>
> SCSI: osd_protocol.h: Add missing #include
>
> # Add #include <linux/kernel.h>
>
> commit 3c4f4e86d320bc7853f9aba7f8382a5a77dc6e43
> Author: James Bottomley <James.Bottomley@suse.de>
>
> SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects
>
> # replace scsi_add_host() with scsi_add_host_with_dma() which accepts an
> extra param for dma_dev
>
> commit 59cebab12f5dd741ae565ed242f1f12790d9c4ba
> Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
>
> signal: Fix alternate signal stack check
>
> # check CONFIG_STACK_GROWSUP and return value accordingly
>
> commit 26973f8bd6dfee21209ef3d521c286ee485ef2a8
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem)
>
> # fix possible circular locking dependency by acquiring and releasing
> i_data_sem before and after ext4_ext_find_extent(), not around
> ext4_ext_walk_space()
>
> commit 047e5f383505cda6606b73d49a857895de5e2c48
> Author: Greg Kroah-Hartman <gregkh@suse.de>
>
> Linux 2.6.31.8
>
> # update Makefile
>
>

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

ext4: Fix memory leak fix when mounting an ext4 filesystem

- Type: memory leak
- Removes code which apparently was added into a new function but
this was overlooked.

commit 8b8d781f4672a250db33d4c14b9234acd5dbef6f
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Avoid null pointer dereference when decoding EROFS w/o a journal

- Type: Oops
- Add check for journal poiner.

commit fc1674b86dbced11726b30ada1395d9c36589fe0
Author: Jan Kara <jack@suse.cz>

jbd2: Fail to load a journal if it is too short

- Type: Oops
- Add check to detect obviously corrupted jounral data.

commit 2fa545b9c54d677384956511a23fb9ded3cbe0d5
Author: Andreas Dilger <adilger@sun.com>

jbd2: round commit timer up to avoid uncommitted transaction

- Type: Transaction inconsistency
- Make sure commit_timer always fires *after* transaction_timer.

commit e7885073f5386a816918b5c4668c9f004c380eaa
Author: Peng Tao <bergwolf@gmail.com>

ext4: fix journal ref count in move_extent_par_page

- Type: Hang on unmount
- Add release call.

commit 116d50cb4b85f028e41e06fc0a11ed6a5d747c3c
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix bugs in mballoc's stream allocation mode

- Type: Performance(?)
- Change logic a use a new flag instead of trying to derive from
other values.

commit a20ff371e3259ed5a32f0063bc73b79ee73bbbd3
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Avoid group preallocation for closed files

- Type: Performance/fragmentation
- Avoid group preallocation on writing file if the fs is not busy.

commit e03290f2416dbc74e85722827c662f281a39b1d5
Author: Jan Kara <jack@suse.cz>

jbd2: Annotate transaction start also for jbd2_journal_restart()

- Type: Error handling(?)
- Move lockdep annotation code to handle a second case.

commit d43ec88a29a34f933289e868494085f90d571f2a
Author: Jan Kara <jack@suse.cz>

ext4: Fix possible deadlock between ext4_truncate() and ext4_get_blocks()

- Type: Hang
- Need to drop semaphore due to lock dependcies. Looks ok.

commit 9b35f8ca04ff088786b0e11026891870e20bb17d
Author: Eric Sandeen <sandeen@redhat.com>

ext4: reject too-large filesystems on 32-bit kernels

- Type: Data corruption
- Prevent mount of fs >16TB on 32bit systems.

commit 31884776d6ff262db0b4ed22cfd93c94e1461f6d
Author: Eric Sandeen <sandeen@redhat.com>

ext4: Add feature set check helper for mount & remount paths

- Type: Error handling
- Create a helper function to check feature, so it can we used on mount
and remount.

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

ext4: Add missing unlock_new_inode() call in extent migration code

- Type: Error checking
- Wihtout unlocking a new inode before iput, a WARN_On is triggered.

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

ext4: Allow rename to create more than EXT4_LINK_MAX subdirectories

- Type: Enhancement
- Replaces check by macro which allows more cases.

commit 736e0c3554d5ade86caa9819f1dfb31d62029dfb
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Limit number of links that can be created by ext4_link()

- Type: Error checking
- Allow less links (non directory) to be created.

commit 1279a8a38f0d12326adf834efaff55a5ca1019b5
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Restore wbc->range_start in ext4_da_writepages()

- Type: Compatibility
- Save and restore a value that used to be unmodified.

commit bf303ba44d62bca25107d5818251c56e13766646
Author: Christoph Hellwig <hch@lst.de>

ext4: fix cache flush in ext4_sync_file

- Type: Data corruption
- Move a flush call from being conditionally to be unconditionally.

commit 57e858124154b94dc8c09eda6b0ee8274401b4ee
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Fix wrong comparisons in mext_check_arguments()

- Type: Oops
- Change to compare blocks with blocks and not bytes.

commit 6080ff66bc6125b253076f41e915a0a82719d69d
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Remove unneeded BUG_ON() in ext4_move_extents()

- Type: Oops
- Remove invalid BUG_ON call.

commit a235cfc2d79560507c9d3acf8ab4fa3be5018f72
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Return exchanged blocks count to user space in failure

- Type: Error handling
- Blocks could be partially exchanged. So return the number processed
even when an error occured.
! Needs adaption as we already pulled insufficient checks security
update.

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

ext4: Take page lock before looking at attached buffer_heads flags

- Type: Oops
- Take lock while walking the buffers.

commit ae6467fefc96eb4b654600caa55e86830fb7f042
Author: Theodore Ts'o <tytso@mit.edu>

ext4: print more sysadmin-friendly message in check_block_validity()

- Type: Error handling
- Do not use WARN_ON on fs corruption and clearify error message.

commit f454e4d4957b667b6ddc8450d4fb4ab9d7be19b1
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Use bforget() in no journal mode for ext4_journal_{forget,revoke}()

- Type: Data corruption
- Use correct call when running without journal.

commit 075e2887712712a2d5d2129c555fb28ae778aaf9
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Assure that metadata blocks are written during fsync in no journal mode

- Type: Data corruption(?)
- When running without journal, sync might miss data to write.

commit 41a37d1389a934c3572202cbf62f92d738f91b7b
Author: Frank Mayhar <fmayhar@google.com>

ext4: Make non-journal fsync work properly

- Type: Data corruption
- Change write_inode to handle non-journal mode without loosing inode
writeouts (even more with sync).

commit 38c37ed1d1c46055740becd0679703633d52380a
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

ext4: move ext4_mb_init_group() function earlier in the mballoc.c

- Type: Code rework
- Moves a function to a earlier place, so it can be used in a function
by the next patch.

commit 781cadee7bcd04f14a6f34ebfdb1800de123b8ad
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

ext4: check for need init flag in ext4_mb_load_buddy

- Type: ???
- Move a test to be done with a semaphore help to avoid changing
a group while doing some load.

commit b814486272169dcfcd248eebd4340b704d5eac29
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Don't update superblock write time when filesystem is read-only

- Type: Data consistency
- Updating the write time in read only mode will cause a fsck when
the clock is not correctly set, yet.
! Is already being carried. Will get reverted in favor of this.

commit f3ea9eca7a0ff922ddb4a545fad7c6f102d9292c
Author: Andreas Schlick <schlick@lavabit.com>

ext4: Always set dx_node's fake_dirent explicitly.

- Type: Filesystem inconsistency
- Completely initialize a structue with zero to avoid false corruption
detection.

commit 161c8d09bd7a6717fc8b3e49ed404bad05254c48
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix initalization of s_flex_groups

- Type: Performance
- Init changed to use atomic_add instead of atomic_set.

commit 7431c2f8a630668f2910bd9ac4a881111a5930a1
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix include/trace/events/ext4.h to work with Systemtap

- Type: Debugging
- Do not use relative include paths for SystemTap trace events.

commit 42739a161fc508ec7bdf39a630fc81627d48810b
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Fix small typo for move_extent_per_page()

- Type: Readability
- Change the name of a static function to be maningful. No change
in executed code.

commit 7d3b9648db14d6076399dcb33c5c743d760f4b8d
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Replace get_ext_path macro with an inline funciton

. Type: Readability
- Change a macro to an inline function to make the fact clear
that the "path" argument is modified by the call.

commit f0a12f161d7de6e2a927b6d8e0599c58200ba2b8
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Replace BUG_ON() with ext4_error() in move_extents.c

- Type: Oops
- Rather large patch. Removes several BUG statements in favor of
printing error messages and returning -EIO. Overall looks ok.

commit 9014e3b28c070e84de0afd4e03615091120c6f68
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Add null extent check to ext_get_path

- Type: Readability(?)
- Mostly looks to me like moving a NULL pointer check into a function
and dropping a log of explicit checks later on.

commit 1607d294e533c09019bdc5506cb18dd984dbc3f7
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Fix different block exchange issue in EXT4_IOC_MOVE_EXT

- Type: Data corruption
- Ensure that EXT4_IOC_MOVE_EXT is only done between the same
blocks (offset).

commit f4520d69a2a095761f44df6d7b62007ce8a75046
Author: Eric Sandeen <sandeen@redhat.com>

ext4: limit block allocations for indirect-block files to < 2^32

- Type: Data corruption
- Limit the block allocated for files not using extends.

commit 1bbbfb935ce06c1ad5ac1c9d628c4a41502c8bbe
Author: Theodore Ts'o <tytso@mit.edu>

ext4: store EXT4_EXT_MIGRATE in i_state instead of i_flags

- Type: ???
- Obviously only moving location of a bit, but as the comment indicated
there has been a collision of values.

commit db76613a23a1cd5f84f9e0a8a7ed95347e8832eb
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix the alloc on close after a truncate hueristic

- Type: Data loss
- Remove a check to fix files needed to be flused immediately.

commit 79b408d78ea208c5f0c54fc3f921d70412ef9c57
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix hueristic which avoids group preallocation for closed files

- Type: Performance(?)
- Move setting a variable after testing the same.

commit 8cec942345c87743f5eb673bfc2dacac0688e50c
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Adjust ext4_da_writepages() to write out larger contiguous chunks

- Type Performance
- ABI bumper(?)
- Relatively huge patch, which moves some fragments and definitions
around but also add a new fs tunable. Adds a completely new function
and calls that to get the size to write out. Also modifies some trace
event data.

commit ab8cd50a9e851b11209272af181ab189098a50a4
Author: Mingming Cao <cmm@us.ibm.com>

ext4: release reserved quota when block reservation for delalloc retry

- Type: Locking
- Release a reservation block before retrying. Not sure how exactly the
bug would manifest.

commit 25ff4fe6a45915be4f1a9d0c47de7f975ac7d320
Author: Mingming Cao <cmm@us.ibm.com>

ext4: Split uninitialized extents for direct I/O

- Type: ??? / DIO
- ABI bump(?)
- Massive patch which seems to address only a potential error
case when a direct IO write does not completely cover an
unitialized extend.
! Not knowing why and too large to really feel comfortable

commit 2c639b5d9837a4bb8905d702ecf40c10a5c7bb23
Author: Mingming Cao <cmm@us.ibm.com>

ext4: Use end_io callback to avoid direct I/O fallback to buffered I/O

- Type: Performance(?) / DIO
- ABI bumper(?)
- Another big DIO patch. Seems to not modify non-DIO case.

commit 3b5504b76ae39f20ad56599353d4f24d76fb42c8
Author: Mingming Cao <cmm@us.ibm.com>

ext4: async direct IO for holes and fallocate support

- Type: Data loss / DIO
- ABI bumper(?)
- Again a bigger one to make sure fsync does also write meta data.

commit d690359a74230327f0bc1bddb0910f6da747901c
Author: Theodore Ts'o <tytso@mit.edu>

ext4: EXT4_IOC_MOVE_EXT: Check for different original and donor inodes first

- Type: Hang
- Move check to an erlier place to avoid deadlock.

commit 6351a4a8f97b857b3096083038aef336899aa488
Author: Frank Mayhar <fmayhar@google.com>

ext4: Avoid updating the inode table bh twice in no journal mode

- Type: Performance
- Removes/replaces code to avoid duplicate work.

commit 8b7f1b1f0b6bfde8919d75c288ec78f597f6b9a9
Author: Curt Wohlgemuth <curtw@google.com>

ext4: Make sure ext4_dirty_inode() updates the inode in no journal mode

- Type: Code rework
- That code IMO only makes sense together with the next one as it causes
jounral start/stop being called in no journal mode.

commit 9f96829dc272b775179bc3ae59de571cf6d56900
Author: Curt Wohlgemuth <curtw@google.com>

ext4: Handle nested ext4_journal_start/stop calls without a journal

- Type: Code rework
- Allows nestedto calls start/stop journal without a journal.

commit 7a8144acec85c2499920152999870c693d9a87aa
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix time encoding with extra epoch bits

- Type: Meta inconsistency
- Take EPOCH bits into account when setting extra time fields.

commit b19ef72ef0ba5618b95fdd0056e48633e51c55b6
Author: Theodore Ts'o <tytso@mit.edu>

ext4: fix a BUG_ON crash by checking that page has buffers attached to it

- Type: Oops
- Fixes a bug introduced by a previous patch (to have bigger writes).

commit 68931500ce36b63392c0b6a26ddec1eb95d353a6
Author: Eric Sandeen <sandeen@redhat.com>

ext4: retry failed direct IO allocations

- Type: Error handling
- Add retries to DIO.

commit 83eb535538cba0a933434b4f186d91705d87adf5
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

ext4: discard preallocation when restarting a transaction during truncate

- Type: Data inconsistency
- Discard preallocations when restarting as they might have been taken
somewhere else.

commit cbc9e7954b4c3f6bc389af54f6d2d7947f128ba5
Author: Mingming <cmm@us.ibm.com>

ext4: fix ext4_ext_direct_IO()'s return value after converting uninit extents

- Type: Performance(?) / DIO
- Fixes up a bug introduced by earlier DIO patches.

commit 808034bf07ffcffe2aaa9d192c96a732e762e6b8
Author: Mingming <cmm@us.ibm.com>

ext4: skip conversion of uninit extents after direct IO if there isn't any

- Type: Performance / DIO
- Fixes up a previous patch to mark all cases where the extents need
to be converted.

commit 32e0806b325f52b25a461ed35f3bdff66a26e674
Author: Mingming <cmm@us.ibm.com>

ext4: code clean up for dio fallocate handling

- Type: Debug
- Move code in order not to write debug statement in some cases.

commit 573f652b512c82345f54d33270b272ef580c8cc1
Author: Mingming <cmm@us.ibm.com>

ext4: Fix return value of ext4_split_unwritten_extents() to fix direct I/O

- Type: Performance / DIO
- Fixup to earlier patch. Test and return value incorrect.

commit bcd1a1b66d10fddef2f2234dc6d9f85d57a2d4b8
Author: Theodore Ts'o <tytso@mit.edu>

ext4: fix potential buffer head leak when add_dirent_to_buf() returns ENOSPC

- Type: Cleanup
- Changes calling convention of add_dirent_to_buf() to never release
the buffer passed in. Previously this was only done on -ENOSPC.
All 5 callers seem to be updated.

commit e9e9b51fbbe3d00e0f58f0a7de9114e395345dd6
Author: Theodore Ts'o <tytso@mit.edu>

ext4: avoid divide by zero when trying to mount a corrupted file system

- Type: Oops
- Moves around assignment to catch a too big value as well as a too
small (if shifting too much value is 0 too).

commit 5346a9d4cac278dfe7124842aad1cb6dceba34fe
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails

- Type: Error handling
- The number of blocks exchanged could have been wrong if the block
size is not the same as the page size. Adds an argument to a static
function to return error codes and uses an explicit return value.

commit 6b88bee1757bc7fb2b30877554254088c99efb05
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: fix lock order problem in ext4_move_extents()

- Type: Data corruption
- Primarily protects the sequence of two calls by a semaphore.
But also modifies mext_next_extent() to potentially return -ENODATA.

commit c979b3e9d759d1ef2cdb69464d7bd4e470cc776d
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT

- Type: Debugging
- Adds annotation for lock dependency checker.

commit eaf3ab11e898e6af04810a10ce66adbb51daf011
Author: Theodore Ts'o <tytso@mit.edu>

ext4: plug a buffer_head leak in an error path of ext4_iget()

- Type: Memory leak
- Add release to common exit path, as it was forgotten in one error path.

commit 712ed5ed1eed5211b02ce5e45911942ecbb7fdbe
Author: Theodore Ts'o <tytso@mit.edu>

ext4: make sure directory and symlink blocks are revoked

- Type: Data corruption
- Passes information about dir or link as commented.

commit 2a472aa4035c7a0815e257c7cf039bfaa79ee933
Author: Julia Lawall <julia@diku.dk>

ext4: fix i_flags access in ext4_da_writepages_trans_blocks()

- Type: ???
- Use a more specific flag for a test.

commit e9cc266df0a8e49a74e5a73b96f081618642d784
Author: Eric Sandeen <sandeen@redhat.com>

ext4: journal all modifications in ext4_xattr_set_handle

- Type: Journal corruption
- Get write access before zeroing inode data.

commit 81185e213157dcf0194c2f060a50d3662621eee9
Author: Theodore Ts'o <tytso@mit.edu>

ext4: don't update the superblock in ext4_statfs()

- Type: Jourcnal corruption
- Remove access as it is not journaled.

commit 8b0c03027b970ff4a1952c29ed4e9694f2dcded1
Author: Theodore Ts'o <tytso@mit.edu>

ext4: fix uninit block bitmap initialization when s_meta_first_bg is non-zero

- Type: ???
- Function could return the wrong number of old-style block group
descriptor blocks.

commit f5842b7e309099a322f2220d9ed3b377824fd236
Author: Theodore Ts'o <tytso@mit.edu>

ext4: fix block validity checks so they work correctly with meta_bg

- Type: Error handling
- Fix function to check whether data block is valid (likely needs previous
patch) and replaces check at some other place by calling this function.

commit 1d570d5effbf9f757e4bae44dbd839a12aca51e4
Author: Theodore Ts'o <tytso@mit.edu>

ext4: avoid issuing unnecessary barriers

- Type: Performance
- Exits directly in the two cases mentioned.

commit 5045965afee6eb1d7402cc8cd23bb40fff971c95
Author: Jan Kara <jack@suse.cz>

ext4: fix error handling in ext4_ind_get_blocks()

- Type: ???
- Correctly checks return value and exits prematurely on error.

commit 25869a24e027fe170db7dbf86919b50632f2cf59
Author: Eric Sandeen <sandeen@redhat.com>

ext4: make trim/discard optional (and off by default)

- Type: Enhancement
- Adds the ability to issue TRIM commands but leaves it disabled.

commit 3d647b1abfc4b4174931145fe979dbb041f1e81b
Author: Eric Sandeen <sandeen@redhat.com>

ext4: make "norecovery" an alias for "noload"

- Type: Enahncement
- Adds the additional alias.

commit 58782e0afb21f33c66c28b56c609b0de04d16bb8
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT

- Type: Reference counting
- Avoids a double free by moving code. Might be partially introduced by
previous patches.

commit d92cbaf9b2e7191e4ab59f069a30b14de63e337f
Author: Kazuya Mio <k-mio@sx.jp.nec.com>

ext4: initialize moved_len before calling ext4_move_extents()

- Type: Code cleanup
- Set variable to 0 instead of checking that caller did it.
! Applied with fuzz. Needed adaption as parts of this where done in the
insufficient checks security update.

commit 970dcd68e23f2bfb644fa750be05cb9d963828ea
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: move_extent_per_page() cleanup

- Type: Code cleanup
- Moves locking code (introduced previously) into called function
(as both places in the caller used the same locking sequence
around the call).

commit 5734fb79080aa0315f1c8161fe6fd3afeecbd8c9
Author: Theodore Ts'o <tytso@mit.edu>

jbd2: Add ENOMEM checking in and for jbd2_journal_write_metadata_buffer()

- Type: Oops
- Checks for OOM condtions

commit d17c6db4285f00a192e57e67512efd4e784e2913
Author: Roel Kluin <roel.kluin@gmail.com>

ext4: Return the PTR_ERR of the correct pointer in setup_new_group_blocks()

- Type: Error handling
- Obvious change to use the correct pointer.

commit 5750fb2b17a823d8485a2971fee35336a3499623
Author: Jan Kara <jack@suse.cz>

ext4: Avoid data / filesystem corruption when write fails to copy data

- Type: Data corruption
- Adds truncate_inode_pages (cache) to each call of ext4_truncate
as described (by helper function).

commit 7ea868541c48509f864a5c6bcb73ec444e79d763
Author: Josef Bacik <josef@redhat.com>

ext4: wait for log to commit when umounting

- Type: Oops
- Move the codeblock described to after journal cleanup.

commit 01ca87b35de17f330d216e00c7899d87e8da41bb
Author: Curt Wohlgemuth <curtw@google.com>

ext4: remove blocks from inode prealloc list on failure

- Type: Memory leak
- Add code to do the cleanup.

commit b429d993035b101f88bd81dcac0e698719ec396b
Author: Dmitry Monakhov <dmonakhov@openvz.org>

ext4: ext4_get_reserved_space() must return bytes instead of blocks

- Type: Interface
- Return the correct value.

commit 0802762cfafaf9e41625483602adb317afdd5ab9
Author: Dmitry Monakhov <dmonakhov@openvz.org>

ext4: quota macros cleanup

- Type: Code cleanup
- Adds new macros as described and replaces callers.

commit f85f7d6f99be082f0a9fe8b93f2f70cbfa8b82d7
Author: Dmitry Monakhov <dmonakhov@openvz.org>

ext4: fix incorrect block reservation on quota transfer.

- Type: ???
- Fixes up one case where MAXQUOTAS is needed instead of QUOTAS.

commit 07ed73ff1945cbe2a4de18645da8bb0c6f003fdc
Author: Jan Kara <jack@suse.cz>

ext4: Wait for proper transaction commit on fsync

- Type: Data corruption
- ABI bumper
- This is not so much large but seems to be an intrusive change (in the
way of it could have side effects) to the way (meta-)data is found
to be needing to get flushed out.

commit 27076c0a512095258406c07f17174742dd983d9c
Author: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT

- Type: Security
! Already applied in last security update.

commit 688b623b11f023c6097a308b4740b414a4a703f6
Author: Yang, Bo <Bo.Yang@lsi.com>

SCSI: megaraid_sas: fix 64 bit sense pointer truncation

- Type: Error handling
- Replaces u32 * by unsigned long * to avoid truncation.

commit 694bffc205812e656f28ac833e871d3ec2510b8d
Author: Martin Michlmayr <tbm@cyrius.com>

SCSI: osd_protocol.h: Add missing #include

- Type: Build failure
- Add include to avoid build failure.

commit 033dbde5524def44be7d5f2ae037e09747684b3c
Author: James Bottomley <James.Bottomley@suse.de>

SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects

- Type: Enhancement
- ABI bumper
- Handle the case of virtual scsi hosts which need a pointer to the
physical bus device to do DMA.

commit 6f8dd42ee65c743352cc17a76fe586a1426d0a89
Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>

signal: Fix alternate signal stack check

- Type: Security(?)
- Changes code to correctly detect when on alternate signal stack
or not. Not really sure about the implications other than that
a program installed signal handler might not get called.

commit 2a8f46b1680672fb295c388879b02053b3fbdc28
Author: Theodore Ts'o <tytso@mit.edu>

ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem)

- Type: Hang
- Moves semaphore locking to fix lockdep reported problem.

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 01-05-2010, 05:03 PM
Surbhi Palande
 
Default SRU: Update to 2.6.31.8 stable kernel

Stefan Bader wrote:
> Leann Ogasawara wrote:
>> Hi All,
>>
>> https://bugs.edge.launchpad.net/ubuntu/karmic/+source/linux/+bug/496816
>>
>> SRU Justification/Impact:
>>
>> The 2.6.31.8 stable kernel has recently been released. The 2.6.31.8
>> Upstream Stable Kernel brings in 91 patches (2 of which we already
>> have). I've applied and pushed these to my tree for review.
>>
>> git://kernel.ubuntu.com/ogasawara/ubuntu-karmic.git stable-2.6.31.8
>>
>> http://kernel.ubuntu.com/git?p=ogasawara/ubuntu-karmic.git;a=shortlog;h=refs/heads/stable-2.6.31.8
>>
>> The upstream process for stable tree updates is quite similar in scope
>> to the Ubuntu SRU process, e.g., each patch has to demonstrably fix a
>> bug, and each patch is vetted by upstream by originating either directly
>> from Linus' tree or in a minimally backported form of that patch. The
>> 2.6.31.8 upstream stable patch set is now available. It should be
>> included in the Ubuntu kernel as well.
>>
>> TEST CASE: TBD
>>
>> http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.31.8
>>
>> http://kernel.org/pub/linux/kernel/v2.6/patch-2.6.31.8.bz2
>>
>> The following bugs might be resolved via patches from 2.6.31.8:
>>
>> https://bugs.launchpad.net/ubuntu/+bug/453579 - "in-place corruption of
>> large files *without fsck or reboot* reported with linux 2.6.31-14.46 on
>> ext4"
>>
>> The 91 stable patches are as follows. I've inlined my own review
>> comments (marked by #).
>>
>> Thanks,
>> Leann
>
> Appending my notes (where I also tried to classify the type of fix)
> and some comments in line. I agree with Leann about the DIO patches,
> which cover a large portion of code and also mention often that IO
> would fallback to buffered IO which would translate to me as rather
> a performance issue (OTOH DIO is used with databases, so the server
> fraction might welcome the changes). Surbhi, when you do your review,
> maybe concentrate a bit more on those DIO changes, so you can give us
> a better idea there.

The patches by Mingming Cao are massive because they are functionality
addition patches. All the three patches, add the same functionality of
supporting a direct I/O write to an area within a hole. Patch 43 splits
the extents into initialized and uninitialized. Patch 44 uses this
functionality to convert an uninitialized extent to initialized and
merge the extents accordingly. Patch 45 is related to the flushing of
the direct i/o.

> In general I guess we can and should set up ext4 fs tests to run on
> kernel including that patchset to verify those run.
>
> -Stefan
>
>> commit 0e84042ca40e55904c9a6ee36cab2b753bd123e9
>> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>>
>> ext4: Fix memory leak fix when mounting an ext4 filesystem
>>
>> # Removes unused code which did the memory allocation that never got
>> free'd.
>>
>> commit 4ef61f0aecd7792e7678f29434d1b34860e78280
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Avoid null pointer dereference when decoding EROFS w/o a journal
>>
>> # Check pointer before dereferencing. Looks sane.
>>
>> commit 34dd3ffe4b57ce9e38ad3258dae5051c7c6a204b
>> Author: Jan Kara <jack@suse.cz>
>>
>> jbd2: Fail to load a journal if it is too short
>>
>> # Prevents potential oops.
>>
>> commit 65ccfef90fb74d4afd2414bc389a29f1a2dd94db
>> Author: Andreas Dilger <adilger@sun.com>
>>
>> jbd2: round commit timer up to avoid uncommitted transaction
>>
>> # Use round_jiffies_up instead of round_jiffies
>>
>> commit 8be78bc620adf972f6d33bc6202ba1b85fdd4db5
>> Author: Peng Tao <bergwolf@gmail.com>
>>
>> ext4: fix journal ref count in move_extent_par_page
>>
>> # Adds ext4_journal_stop()
>>
>> commit 5a69bbda790cdc3deb8425c6f726d22005e99b93
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Fix bugs in mballoc's stream allocation mode
>>
>> # Add check to determine if stream allocation should take place
>>
>> commit 225ff23eb45e5ad1229c27b00b2a0729cc3d8b85
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Avoid group preallocation for closed files
>>
>> # Prevents fragmentation.
>>
>> commit 18623c3d1d26a30943cc1a97a99f385884f1ddca
>> Author: Jan Kara <jack@suse.cz>
>>
>> jbd2: Annotate transaction start also for jbd2_journal_restart()
>>
>> # move lock_map_acquire ()
>>
>> commit e2177295902d4849d61ad677e51e2d84eae617e5
>> Author: Jan Kara <jack@suse.cz>
>>
>> ext4: Fix possible deadlock between ext4_truncate() and ext4_get_blocks()
>>
>> # drop i_data_sem before ext4_journal_restart() and acquire it right
>> after
>>
>> commit 74ba8fe3abdfcd3f58e01ebb15b1fe9d2db86053
>> Author: Eric Sandeen <sandeen@redhat.com>
>>
>> ext4: reject too-large filesystems on 32-bit kernels
>>
>> # Add check if more sectors exist than will fit in sector_t and also
>> check whether the max offset is addressable by the page cache.
>>
>> commit e139f5b68b7aea8959a7e0fcd1f08a70c19846ba
>> Author: Eric Sandeen <sandeen@redhat.com>
>>
>> ext4: Add feature set check helper for mount & remount paths
>>
>> # Add ext4_feature_set_ok() to check if fs can be mounted/remounted
>> based on features present
>>
>> commit 100acdbadc9707c6ddee16c3288759bcbe317ac1
>> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>>
>> ext4: Add missing unlock_new_inode() call in extent migration code
>>
>> # Fixes warning
>>
>> commit 929c7112197d58053117b3303f3bcf160bcdca45
>> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>>
>> ext4: Allow rename to create more than EXT4_LINK_MAX subdirectories
>>
>> # use EXT4_DIR_LINK_MAX(new_dir)
>>
>> commit e4670b394dd5cdfc5fda17e3ec94c444dcaecac2
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Limit number of links that can be created by ext4_link()
>>
>> # check if inode->i_nlink >= EXT4_LINK_MAX
>>
>> commit 63762a2387882e4ff8ae77133b331abef8e6f555
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Restore wbc->range_start in ext4_da_writepages()
>>
>> # Avoid lock inversion issue by saving and restoring wbc->range_start
>>
>> commit 2a8af5d4d0f69036fc02e91642f862e473350143
>> Author: Christoph Hellwig <hch@lst.de>
>>
>> ext4: fix cache flush in ext4_sync_file
>>
>> # flush the write cache unconditionally in ext4_sync_file(), this
>> prevents data loss after fdatasync
>>
>> commit ad6030eecf171af161ad4c215c8d3f967b5ddfc5
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: Fix wrong comparisons in mext_check_arguments()
>>
>> # fix up comparisons, this prevents BUG_ON due to previously invalid
>> comparisons.
>>
>> commit 4062fc4957707493ff8d53d21c058838a8425f2a
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: Remove unneeded BUG_ON() in ext4_move_extents()
>>
>> # Removes BUG_ON()
>>
>
>> commit de48efe24d0e6a2291dc4fe23271b5e5b16b01a7
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: Return exchanged blocks count to user space in failure
>>
>> # remove !err check
>
> This one needed adaption as it is co-located with the ext4 security
> check.
>
>> commit f112250b558ed59538502992570272253b4ef129
>> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>>
>> ext4: Take page lock before looking at attached buffer_heads flags
>>
>> # Grab lock_page(page), and make sure to balance with unlock_page(page)
>>
>> commit 6758feb58f9c66dbbd8ef67543deb03311296f3a
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: print more sysadmin-friendly message in check_block_validity()
>>
>> # Remove WARN_ON() and modify message printed from ext4_error()
>>
>> commit 523a2ab5bf81efa0fc9a1b6afc43e729ddae58f0
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Use bforget() in no journal mode for ext4_journal_{forget,revoke}()
>>
>> # Add bforget() call to ext4_journal_{forget,revoke}() to prevent dirty
>> metadata block overwriting a block after it has been reallocated and
>> reused for another inode's data block
>>
>> commit 75c1a3f1f6b164f280b7713a8b301e125ae86292
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Assure that metadata blocks are written during fsync in no journal mode
>>
>> # if no journal present, mark_buffer_dirty_inode() so that
>> ext4_sync_file() can write out the inode's metadata blocks by calling
>> sync_mapping_buffers()
>>
>> commit 90608af946cb40a743f3d7af58310ff8381b7101
>> Author: Frank Mayhar <fmayhar@google.com>
>>
>> ext4: Make non-journal fsync work properly
>>
>> # Best described in commit message.
>>
>> commit ee0cc3fed6eacd6d791b89fa8fd839918e41fefb
>> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>>
>> ext4: move ext4_mb_init_group() function earlier in the mballoc.c
>>
>> # no change in actual ext4_mb_init_group() code, just moved to different
>> location in file.
>>
>> commit 44373f34a740e9155cc011734ae0342b34e40d2c
>> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>>
>> ext4: check for need init flag in ext4_mb_load_buddy
>>
>> # check EXT4_MB_GRP_NEED_INIT(grp) while holding alloc_sem, otherwise
>> doing so is racy
>>
>> commit 7a71dacba604fee399884a5f3d2c53e21e9c3a79
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Don't update superblock write time when filesystem is read-only
>>
>> # we were already carrying this. replace existing commit in favor of
>> this one from stable.
>>
>> commit d78f2ac343787f48e97c87676fccaef850a50cbe
>> Author: Andreas Schlick <schlick@lavabit.com>
>>
>> ext4: Always set dx_node's fake_dirent explicitly.
>>
>> # Use memset()
>>
>> commit 1de54d1bc0248c2b0f21e22b48f145271d38cbd5
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Fix initalization of s_flex_groups
>>
>> # Use atomic_add() instead of atomic_set()
>>
>> commit e4a8cc648a9a3decca1bc5f0f16aacdfc0d72d5a
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Fix include/trace/events/ext4.h to work with Systemtap
>>
>> # Don't use relative pathnames in #include statements
>>
>> commit 77e8c777ef2f4e31b690688fc27014b88feead9d
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: Fix small typo for move_extent_per_page()
>>
>> # Replace move_extent_par_page with move_extent_per_page
>>
>> commit cc61eb8051988796a4a5103b749bb06e24df236c
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: Replace get_ext_path macro with an inline funciton
>>
>> # use inline function instead of a macro
>>
>> commit 06f3ce16b31eb2015f873c96d459494964f9b7cd
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: Replace BUG_ON() with ext4_error() in move_extents.c
>>
>> # ext4_error() provides better debug info. patch also adds some helper
>> functions.
>>
>> commit f9211e5e69570ec989a5297d1637229340cadb61
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: Add null extent check to ext_get_path
>>
>> # Return -ENODATA if null
>>
>> commit 45d2735a0725d39b77a22cf535566ed570d6fc0a
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: Fix different block exchange issue in EXT4_IOC_MOVE_EXT
>>
>> # add check to make sure data exchange is done between the same blocks
>> in EXT4_IOC_MOVE_EXT
>>
>> commit d55f431a04b186cc1ede0f100a030c9dda25bd9c
>> Author: Eric Sandeen <sandeen@redhat.com>
>>
>> ext4: limit block allocations for indirect-block files to < 2^32
>>
>> # prevents corruption.
>>
>> commit 1f51991dec0bd679d172b55a86d54ca3f6227c51
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: store EXT4_EXT_MIGRATE in i_state instead of i_flags
>>
>> # patch does what the description says
>>
>> commit a6c92a88b556da1073e03d6936ae70c2c045421c
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Fix the alloc on close after a truncate hueristic
>>
>> # remove unnecessary check for ei->i_disksize being zero
>>
>> commit 0be3bd025b9893a0f2ed3d1cbeb06d7abc0e27df
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Fix hueristic which avoids group preallocation for closed files
>>
>> # move size = max(size, isize); until after checking size == isize
>>
>> commit 54088f5df9e352c41ef0f2eeb17ec9ae995ab4b3
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Adjust ext4_da_writepages() to write out larger contiguous chunks
>>
>> # Larger patch than usual. Adjust writeback to be > 4mb chunks.
>>
>> commit f26ac96224871adf0647496e4154eabdee3689a6
>> Author: Mingming Cao <cmm@us.ibm.com>
>>
>> ext4: release reserved quota when block reservation for delalloc retry
>>
>> # move vfs_dq_release_reservation_block()
>>
>
>> commit 45eef039f3a5d0bce583d0a9b34818127ea79e49
>> Author: Mingming Cao <cmm@us.ibm.com>
>>
>> ext4: Split uninitialized extents for direct I/O
>
> This and the following 2 should get better review. I believe
> those are ABI bumpers as well, beside others. There seem to be
> fixup patches to them later on as well.
>
>> # Larger patch. split the extent into uninitialized and initialized
>> extents before submitting the I/O. After I/O is complete, the written
>> extent will be marked as initialized.
>>
>> commit 1295e40acf6d150d129fac939bc97aed771e6c7b
>> Author: Mingming Cao <cmm@us.ibm.com>
>>
>> ext4: Use end_io callback to avoid direct I/O fallback to buffered I/O
>>
>> # Large patch. Appreciate additional comments/reviews on this.
>>
>> commit 3c42b7eb297192519fbfa80e1c77abd01c223114
>> Author: Mingming Cao <cmm@us.ibm.com>
>>
>> ext4: async direct IO for holes and fallocate support
>>
>> # Again, large patch. Flush the conversion work when fsync() is called.
>> Again, additional comments/review appreciated.
>>
>> commit ca23b5fd5bd6fd09e90008f9390cff248e01b718
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: EXT4_IOC_MOVE_EXT: Check for different original and donor inodes first
>>
>> # Avoid potential deadlock. move check for orig_inode->i_ino == donor_inode->i_ino
>>
>> commit 46d67b3c075b0d1630b57630f956edb1dad61baa
>> Author: Frank Mayhar <fmayhar@google.com>
>>
>> ext4: Avoid updating the inode table bh twice in no journal mode
>>
>> # clean up for commit 91ac6f4.
>>
>> commit 94ab12a2649b1e86677771d310a20752ba5b1542
>> Author: Curt Wohlgemuth <curtw@google.com>
>>
>> ext4: Make sure ext4_dirty_inode() updates the inode in no journal mode
>>
>> # always call ext4_mark_inode_dirty() from ext4_dirty_inode()
>>
>> commit e39f1920521ed14d874d638265e27a16526df494
>> Author: Curt Wohlgemuth <curtw@google.com>
>>
>> ext4: Handle nested ext4_journal_start/stop calls without a journal
>>
>> # Add ext4_{get|put}_nojournal() calls
>>
>> commit 28c72b7fbc403ec439b0108e6559c9c67a3afe8d
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Fix time encoding with extra epoch bits
>>
>> # mask EXT4_EPOCH_MASK
>>
>> commit 2489f42e40972d65e50a0b842297f90ce02e6cb0
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: fix a BUG_ON crash by checking that page has buffers attached to it
>>
>> # check page_has_buffers(page)
>>
>> commit 620c66ab00f5b06de7119fbe0cc7dba3cc9aca7d
>> Author: Eric Sandeen <sandeen@redhat.com>
>>
>> ext4: retry failed direct IO allocations
>>
>> # retry allocation if -ENOSPC
>>
>> commit ba593a59c912b3ae1f18b74d8ad66594ba3a47b6
>> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>>
>> ext4: discard preallocation when restarting a transaction during truncate
>>
>> # Add ext4_discard_preallocations()
>>
>> commit 3e270fa58d81a994d1e4371be444f2e5bb072866
>> Author: Mingming <cmm@us.ibm.com>
>>
>> ext4: fix ext4_ext_direct_IO()'s return value after converting uninit extents
>>
>> # check return value of ext4_convert_unwritten_extents() and return err if < 0
>>
>> commit 3e6c8d3881736079664aad465e26486d1d4152b9
>> Author: Mingming <cmm@us.ibm.com>
>>
>> ext4: skip conversion of uninit extents after direct IO if there isn't any
>>
>> # Add state flag so that ext4_ext_direct_IO() only calls
>> ext4_convert_unwritten_extents() when necessary
>>
>> commit 2bcfe650d1b5c9994ce58a25efd5a6f5eb4ad0ee
>> Author: Mingming <cmm@us.ibm.com>
>>
>> ext4: code clean up for dio fallocate handling
>>
>> # move (!io_end || !size) check prior to ext_debug().
>>
>> commit 00909f7247db77fa3a3237b1d7b3d69ea25edd8a
>> Author: Mingming <cmm@us.ibm.com>
>>
>> ext4: Fix return value of ext4_split_unwritten_extents() to fix direct I/O
>>
>> # return size of uninitialized extents
>>
>> commit 37bd334da00d116dba0526292891b1b572f1955b
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: fix potential buffer head leak when add_dirent_to_buf() returns ENOSPC
>>
>> # call brelse()
>>
>> commit a7aaaff940e284035a16e07cf90424da386ddce1
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: avoid divide by zero when trying to mount a corrupted file system
>>
>> # check groups_per_flex < 2
>>
>> commit 9a88a5ad2afe14b6f077c805a9c6dd95679aabba
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails
>>
>> # return number of blocks that were exchanged before the failure
>>
>> commit c6b24d6fd81cf34718b0a075e9ce0584e7f6a784
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: fix lock order problem in ext4_move_extents()
>>
>> # Add i_data_sem protection between ext4_ext_find_extent() and
>> mext_next_extent() with a slight modification for move_extent_per_page()
>> to start transaction first, and then acquire i_data_sem
>>
>> commit 1cb0b894567626e02ad2fb6d8e74356918624499
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT
>>
>> # Use down_write_nested() instead of down_write(), without this a
>> warning would be printed if CONFIG_PROVE_LOCKING was enabled. However,
>> we don't enable this in Karmic.
>>
>> commit 97a9a2516af7df77a961e36466be866f7facfec3
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: plug a buffer_head leak in an error path of ext4_iget()
>>
>> # move brelse() to error path
>>
>> commit 063875158fa59b569ba26b9b259e822b5b51657e
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: make sure directory and symlink blocks are revoked
>>
>> # call ext4_forget() with non-zero is_metadata parameter, otherwise
>> could lead to data corruption
>>
>> commit 882e3a7d67adf1bd773efd2d9999383b414832fd
>> Author: Julia Lawall <julia@diku.dk>
>>
>> ext4: fix i_flags access in ext4_da_writepages_trans_blocks()
>>
>> # check EXT4_I(inode)->i_flags and not inode->i_flags
>>
>> commit c1e25a5675eac46bee85953720705efceceb70a2
>> Author: Eric Sandeen <sandeen@redhat.com>
>>
>> ext4: journal all modifications in ext4_xattr_set_handle
>>
>> # move call to ext4_journal_get_write_access()
>>
>> commit a0dacfcfac479a5b950a8d863fe8b55328a6e1cd
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: don't update the superblock in ext4_statfs()
>>
>> # might resolve LP bug 453579
>>
>> commit 433a171d4c17eff96511617e132efb985f200fad
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: fix uninit block bitmap initialization when s_meta_first_bg is non-zero
>>
>> # check EXT4_FEATURE_INCOMPAT_META_BG is set and if so return
>> le32_to_cpu(EXT4_SB(sb)->s_es->s_first_meta_bg)
>>
>> commit b284e381f7b816a523636271274e38af7aae3dbd
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: fix block validity checks so they work correctly with meta_bg
>>
>> # check !ext4_data_block_valid()
>>
>> commit 84d77b74f7ce2e4937b18864fe6d033b29831918
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: avoid issuing unnecessary barriers
>>
>> # immediately return on error.
>>
>> commit 648d9cddf46454ef6aad9f8faf1dd051543647dd
>> Author: Jan Kara <jack@suse.cz>
>>
>> ext4: fix error handling in ext4_ind_get_blocks()
>>
>> # check if fext4_splice_branch() returns an error
>>
>> commit c46e04b9e788d6abed811128aa4e61dc0996509c
>> Author: Eric Sandeen <sandeen@redhat.com>
>>
>> ext4: make trim/discard optional (and off by default)
>>
>> # make sb_issue_discard off by default and mount time optional
>>
>> commit 360bfe0d07db42ee99a47b5549ac06d81016f356
>> Author: Eric Sandeen <sandeen@redhat.com>
>>
>> ext4: make "norecovery" an alias for "noload"
>>
>> # on ext4 ml discussions "norecovery" was noted as being more
>> descriptive than "noload" so create alias
>>
>> commit b9894156432b3013cb46567a2a9a9c46027f4444
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT
>>
>> # move ext4_discard_preallocations() to end of ext4_move_extents()
>>
>
>> commit 3f54503c2b00d8d908f23621f090915bc51c0797
>> Author: Kazuya Mio <k-mio@sx.jp.nec.com>
>>
>> ext4: initialize moved_len before calling ext4_move_extents()
>>
>> # remove checks for moved_len
>
> Needed some adaption as parts of it were included with out ext4
> security patch.
>
>> commit eee4dabf625a44ee556cf6869bd90d54364cf38b
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: move_extent_per_page() cleanup
>>
>> # condense code
>>
>> commit aea93db412553d4d7319945868293a3f9b65a3a8
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> jbd2: Add ENOMEM checking in and for jbd2_journal_write_metadata_buffer()
>>
>> # check return value of jbd2_journal_write_metadata_buffer() and jbd2_alloc()
>>
>> commit 5e5c63120a3f3be8b89d09198bb0bc76e8d4f926
>> Author: Roel Kluin <roel.kluin@gmail.com>
>>
>> ext4: Return the PTR_ERR of the correct pointer in setup_new_group_blocks()
>>
>> # return PTR_ERR(gdb) not PTR_ERR(bh)
>>
>> commit 1065591da0c1726f0aff654a7e23062e8898d923
>> Author: Jan Kara <jack@suse.cz>
>>
>> ext4: Avoid data / filesystem corruption when write fails to copy data
>>
>> # wrap truncate_inode_pages() and ext4_truncate() in
>> ext4_truncate_failed_write(). Then replace calls to ext4_truncate()
>> with ext4_truncate_failed_write()
>>
>> commit 3b9d4e773c20b34534c46e563103071f2f540bf8
>> Author: Josef Bacik <josef@redhat.com>
>>
>> ext4: wait for log to commit when umounting
>>
>> # move code so that we wait for the transaction to finish committing
>> before we shutdown the multiblock allocator
>>
>> commit a9a3ddb71f81e2529f7c38f06981723c8af1ffd0
>> Author: Curt Wohlgemuth <curtw@google.com>
>>
>> ext4: remove blocks from inode prealloc list on failure
>>
>> # fixes leak
>>
>> commit 89ca4c75b2ad9f2610d390590dcd16e60e909f43
>> Author: Dmitry Monakhov <dmonakhov@openvz.org>
>>
>> ext4: ext4_get_reserved_space() must return bytes instead of blocks
>>
>> # return total << inode->i_blkbits
>>
>> commit e79220b94468feaf42ec05fe197a8dfe5a782f57
>> Author: Dmitry Monakhov <dmonakhov@openvz.org>
>>
>> ext4: quota macros cleanup
>>
>> # use MAXQUOTAS rather than hardcoding value
>>
>> commit 224fb952944a6ff5c4032f5cdcf0a73ac45b0702
>> Author: Dmitry Monakhov <dmonakhov@openvz.org>
>>
>> ext4: fix incorrect block reservation on quota transfer.
>>
>> # use EXT4_MAXQUOTAS_DEL_BLOCKS, not EXT4_QUOTA_DEL_BLOCKS
>>
>> commit e8f0d507456ee6ea071e0bb9d445e848b29872ac
>> Author: Jan Kara <jack@suse.cz>
>>
>> ext4: Wait for proper transaction commit on fsync
>>
>> # larger patch. tracks which transaction has last changed the inode and
>> which transaction last changed allocation and force it to disk on fsync
>>
>> commit 51a88ff8de521caa02d8d208e410ff85a3c85199
>> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT
>>
>> # Already included in security release
>>
>> commit 66d8e059a54d7aa345ef9a857986e2055870a14e
>> Author: Yang, Bo <Bo.Yang@lsi.com>
>>
>> SCSI: megaraid_sas: fix 64 bit sense pointer truncation
>>
>> # use unsigned long instead of u32
>>
>> commit fa0b90829888932592f6f99959ebc42c12356623
>> Author: Martin Michlmayr <tbm@cyrius.com>
>>
>> SCSI: osd_protocol.h: Add missing #include
>>
>> # Add #include <linux/kernel.h>
>>
>> commit 3c4f4e86d320bc7853f9aba7f8382a5a77dc6e43
>> Author: James Bottomley <James.Bottomley@suse.de>
>>
>> SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects
>>
>> # replace scsi_add_host() with scsi_add_host_with_dma() which accepts an
>> extra param for dma_dev
>>
>> commit 59cebab12f5dd741ae565ed242f1f12790d9c4ba
>> Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
>>
>> signal: Fix alternate signal stack check
>>
>> # check CONFIG_STACK_GROWSUP and return value accordingly
>>
>> commit 26973f8bd6dfee21209ef3d521c286ee485ef2a8
>> Author: Theodore Ts'o <tytso@mit.edu>
>>
>> ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem)
>>
>> # fix possible circular locking dependency by acquiring and releasing
>> i_data_sem before and after ext4_ext_find_extent(), not around
>> ext4_ext_walk_space()
>>
>> commit 047e5f383505cda6606b73d49a857895de5e2c48
>> Author: Greg Kroah-Hartman <gregkh@suse.de>
>>
>> Linux 2.6.31.8
>>
>> # update Makefile
>>
>>
>
Appending my notes in here:
0001-ext4-Fix-memory-leak-fix-when-mounting-an-ext4-files.patch
This patch fixes a memory leak problem. Allocation of a variable
is removed, since not only is it freed later but also never used.
<<code correction, small size patch, removes memory leak>>

0002-ext4-Avoid-null-pointer-dereference-when-decoding-ER.patch:
when aborting a journal check if journal address is valid before
checking the flags stored in the journal structure.
<<code correction, small size patch, necessary>>

0003-jbd2-Fail-to-load-a-journal-if-it-is-too-short.patch:
check the size of the journal. if its bigger than or equal to
the minimum size, then use it. or else do not. this patch
adds this check.
<<code correction, small size patch, necessary>>

0004-jbd2-round-commit-timer-up-to-avoid-uncommitted-tran.patch
This patch fixes the rounding up of jiffies. Without this patch,
the transaction could remain uncommited forever.
<<code correction, very small size patch, necessary>>

0005-ext4-fix-journal-ref-count-in-move_extent_par_page.patch
move_extent_per_page() calls write_begin() which increases
the reference count of journal transaction handle. However when
this write fails, the reference count is not reduced. This patch
fixes this. Without this patch, a umount will hang forever.
<<code correction patch, very small, necessary>>

0006-ext4-Fix-bugs-in-mballoc-s-stream-allocation-mode.patch
This patch fixes the setting of sbi->s_mb_last_group and sbi->s_mb_last
only when stream allocation is really done. Without this patch, these
variables were getting set unconditionally and wrongly so.
<<code correction patch, small size, necessary>>

0007-ext4-Avoid-group-preallocation-for-closed-files.patch
If we try to allocate blocks for a file that has been closed, such
that we know the final size of the file, and the filesystem is not
busy, avoid using group preallocation. This patch implements this.
<<fs performance improvement patch, medium size, necessary>>

0008-jbd2-Annotate-transaction-start-also-for-jbd2_journa.patch
lockdep annotation for a transaction start has been at the end of
jbd2_journal_start(). But a transaction is also started from
jbd2_journal_restart(). Move the lockdep annotation to start_this_handle()
which covers both cases.
<<code correction patch, small size, necessary>>

0009-ext4-Fix-possible-deadlock-between-ext4_truncate-and.patch
This patch fixes possible deadlock between ext4_truncate() and
ext4_get_blocks()
by dropping the i_data_sem before restarting the transaction and
acquiring it
immediately afterwards.
<<code correction patch, medium size, necessary>>

0010-ext4-reject-too-large-filesystems-on-32-bit-kernels.patch:
ext4: reject too-large filesystems on 32-bit kernels
On 32 bit kernels, the page cache cannot index beyond 16T.
So this patch adds a check for the fs size
<<code correction patch, small size, necessary>>

0011-ext4-Add-feature-set-check-helper-for-mount-remount-.patch
large filesystem can be mounted only if the CONFIG_LBDA was selected
while compiling the kernel. If not this should not be allowed. Prior
to this patch remount worked for such a large fs, as this check was
not a part of the remount code path. This patch added this check
in fill_super() as a function call ext4_feature_set_ok()
<<code correction patch, medium size, necessary>>

0012-ext4-Add-missing-unlock_new_inode-call-in-extent-mig.patch
We need to unlock the inode before deleting the inode using the
the iput(inode). Without this, you get a warning on iput.
This patch fixes this.
<<code correction, small patch, necessary>>

0013-ext4-Allow-rename-to-create-more-than-EXT4_LINK_MAX-patch:
EXT4_DIR_LINK_MAX instead of only: dir->i_nlink >= EXT4_LINK_MAX check.
EXT4_DIR_LINK_MAX does this check apart from the fs features checking
while doing this check.
<<code correction patch, very small, necessary>>

0014-ext4-Limit-number-of-links-that-can-be-created-by-ex.patch
In ext4_link we need to check using EXT4_LINK_MAX, and not
EXT4_DIR_LINK_MAX(), since ext4_link() is creating hard links of
regular files, and not directories.
<<code correction patch, very small, necessary>>

0015-ext4-Restore-wbc-range_start-in-ext4_da_writepages.patch
<<code improvement, very small, recommended>>

0016-ext4-fix-cache-flush-in-ext4_sync_file.patch
We need to flush the write cache unconditionally in ->fsync, otherwise
writes into already allocated blocks can get lost. This patch changes
the conditional write to unconditional writes
<<code correction, very small, necessary>>

0017-ext4-Fix-wrong-comparisons-in-mext_check_arguments.patch
The mext_check_arguments() compares a block unit and an inode unit
without this patch.
<<code correction, small, necessary>>

0018-ext4-Remove-unneeded-BUG_ON-in-ext4_move_extents.patch
An unneeded BUG_ON() is removed. Without this patch, BUG_ON
was hit even when the function succeeded.
<<code correction patch, very small, necessary>>

0019-ext4-Return-exchanged-blocks-count-to-user-space-in-.patch
Return exchanged blocks count (moved_len) to user space,
if ext4_move_extents() failed on the way. This patch copies
this count to userspace irrespective of the fact if there
was an error or not. Originally this count
was not copied in case of an error, but only when the result
was successful. This patch copies the value in both the cases.
<< code correction, very small, necessary>>

0020-ext4-Take-page-lock-before-looking-at-attached-buffe.patch
In order to check whether the buffer_heads are mapped we need to hold
page lock. Otherwise a reclaim can cleanup the attached buffer_heads
<< code correction, very small,necessary>>

0021-ext4-print-more-sysadmin-friendly-message-in-check_b.patch
Drop the WARN_ON(1) from check_block_validity(), as the stack trace
is not appropriate, since it is triggered by file system corruption,
and it misleads users into thinking there is a kernel bug.
In addition, change the message displayed by ext4_error() to
make it clear that this is a file system corruption problem.
So this patch adds a msg like "file system corruption after so and so" while
printing out the mesg to dmesg. and removes the WARN_ON() from
check_block_validity().
<<code improvement, small, recommended>>

0022-ext4-Use-bforget-in-no-journal-mode-for-ext4_journal.patch
This patch replaces brelse() with bforget() to avoid overwriting a block
after
it has been reallocated and reused for another inode's data block.
<<code correction, very small, necessary>>

0023-ext4-Assure-that-metadata-blocks-are-written-during-.patch
When there is no journal present, we must attach buffer heads
associated with extent tree and indirect blocks to the inode's
mapping->private_list via mark_buffer_dirty_inode() so that
ext4_sync_file() --- which is called to service fsync() and
fdatasync() system calls --- can write out the inode's metadata blocks
by calling sync_mapping_buffers().
<<code correction, small, necessary>>

0024-ext4-Make-non-journal-fsync-work-properly.patch:
Teach ext4_write_inode() and ext4_do_update_inode() about non-journal
mode: With this patch if we're not using a journal, ext4_do_update_inode()
calls sync_dirty_buffer() instead of ext4_handle_dirty_metadata().
This related to data loss on power failure.
<<code correction, medium size, necessary>>

0025-ext4-move-ext4_mb_init_group-function-earlier-in-the.patch
This patch rearranges the code to remove compilation problem.
<<function definition order rearrangement, medium size, necessary>>

0026-ext4-check-for-need-init-flag-in-ext4_mb_load_buddy.patch
We should check for need init flag with the group's alloc_sem held, to
make sure while we are loading the buddy cache and holding a reference
to it, a file system resize can't add new blocks to same group.
The patch also drops the need init flag check in
ext4_mb_regular_allocator() because doing the check without holding
alloc_se is racy.
<<code correction, small, necessary>>

0027-Revert-ext4-Don-t-update-superblock-write-time-when-.patch
The check for whether the filesystem is read only is removed.
The next upstream patch makes this check.
<<code revert, very small, recommended>>

0028-ext4-Don-t-update-superblock-write-time-when-filesys.patch
Checks the readonly status of the superblock
<<code correction, very small, necessary>>

0029-ext4-Always-set-dx_node-s-fake_dirent-explicitly.patch
Patch for recognising the intermediate htree node. otherwise
e2fsck identifies this as a corruption. This patch removes
this false corruption case.
<<code correction, very small, necessary>>

0030-ext4-Fix-initalization-of-s_flex_groups.patch
This patch fixes the problem of not selecting the best
block/inode block group for the inodes and blocks.
<<fs performance improvement patch, small, recommended>>

0031-ext4-Fix-include-trace-events-ext4.h-to-work-with-Sy.patch
changes the #include naming style for better work with System tap
<<coding style change, very small, necessary for systemtap>>

0032-ext4-Fix-small-typo-for-move_extent_per_page.patch
Typo change from par to per.
<<code enhancement, very small, recommended>>

0033-ext4-Replace-get_ext_path-macro-with-an-inline-funci.patch
Changed the macro to a function call as the arguments get changed
because of the inner function call.
<<code correction, very small, necessary>>

0034-ext4-Replace-BUG_ON-with-ext4_error-in-move_extents
Removed panic on error.
<<code correction, very small, necessary>>

0035-ext4-Add-null-extent-check-to-ext_get_path.patch
Adds the check for a null extent in ext_get_path().
<<code correction, small, necessary>>

0036-ext4-Fix-different-block-exchange-issue-in-EXT4_IOC_.patch
This patch is a ext4 coding bug fix. The patch adds checks to
mext_calc_swap_extents() to handle the error when the extents
to be exchanged turn out to be different than what was donated.
<<code correction, medium, necessary>>

0037-ext4-limit-block-allocations-for-indirect-block-file.patch
Toda, the ext4 allocator will happily allocate blocks past
2^32 for indirect-block files, which results in the block
numbers getting truncated, and corruption ensues.

This patch limits such allocations to < 2^32, and adds
BUG_ONs if we do get blocks larger than that.
<<code correction, medium, necessary>>

0038-ext4-store-EXT4_EXT_MIGRATE-in-i_state-instead-of-i_.patch
EXT4_EXT_MIGRATE is only intended to be used for an in-memory flag,
and the hex value assigned to it collides with FS_DIRECTIO_FL (which
is also stored in i_flags). There's no reason for the
EXT4_EXT_MIGRATE bit to be stored in i_flags, so we switch it to use
i_state instead.
* <<code correction, small, necessary>>

0039-ext4-Fix-the-alloc-on-close-after-a-truncate-huerist.patch
Blocks are allocated on close. When a truncate is called on opening
a file, the allocation is done only if inode->i_size is 0.
The previous check was ei->disksize which is always 0.
<< code improvement/performance enhancement, small size, recommended >>

0040-ext4-Fix-hueristic-which-avoids-group-preallocation
Avoid block preallocation for large files.
This patch adds a check for this heuristic. This check
avoids the preallocation for a clean inode.a
<<code correction, very small, necessary>>

0041-ext4-Adjust-ext4_da_writepages-to-write-out-larger- contiguous chunks
Work around problems in the writeback code to force out writebacks in
larger chunks than just 4mb, which is just too small. This also works
around limitations in the ext4 block allocator, which can't allocate
more than 2048 blocks at a time. So we need to defeat the round-robin
characteristics of the writeback code and try to write out as many
blocks in one inode before allowing the writeback code to move on to
another inode. We add a a new per-filesystem tunable,
max_writeback_mb_bump, which caps this to a default of 128mb per
inode.
<< fs Performance enhancement, big, necessary>>


0042-ext4-release-reserved-quota-when-block-reservation-for delalloc retry
ext4_da_reserve_space() can reserve quota blocks multiple times if
ext4_claim_free_blocks() fail and we retry the allocation. We should
release the quota reservation before restarting.
<<functional correction patch - necessary >>

0043-ext4-Split-uninitialized-extents-for-direct-I-O.patch
This patch splits the extents to be written into initialized and
uninitialized extents. This code removes/handles the NOSPC error
in callback function. We split the extents and merge appropriately on
completing the I/O(next patch), otherwise thousands of extents would be
created with every split.

This patch is big because it adds a new
functionality which was missing in ext4fs. When you try to write to a
hole, the corresponding extents which are unallocated are converted to
uninitialized extents. The next patch converts these uninitialized
extents to initialized only after making sure that the i/o is done.
<<Functionality correction patch, very big, necessary >>


0044-ext4-Use-end_io-callback-to-avoid-direct-I-O-fallbac.patch
this patch creates unitialized extents when a direct I/O writes into
holes. It then registers an end_io callback which converts the
uninitialized extent to an initialized extent after the
I/O is completed write into holes in sparse files. We cannot convert the
uninitialized extents into initialized ones before the write is complete
as we could crash in between and risk exposing stale data.
Without these two patches(43 and 44), the direct i/o occurs through the
normal page cache which defeats the purpose of direct i/o.

This patch is big, because it adds functionality for direct I/O.
This patch is necessary for the correct functionality and performance
benefit of DIO.
<<Functionality correction patch, very big, necessary>>


0045-ext4-async-direct-IO-for-holes-and-fallocate-support.patch
user expects the metadata also being updated before fsync returns.
This patch is big because it aids the functionality addition for correct
working of DIO.
<<code correction patch, big, necessary>>


0046-ext4-EXT4_IOC_MOVE_EXT-Check-for-different-original-.patch
Move the check to make sure the original and donor inodes are
different earlier, to avoid a potential deadlock by trying to lock the
same inode twice.
<<code correction patch, small, necessary>>

0047-ext4-Avoid-updating-the-inode-table-bh-twice-in-no-journal-mode.patch
This patch does the code clean up with ext4_do_update_inode() being
called the
second time from ext4_write_inode(). The code in ext4_write_inode()
which was
associated with the fact that it could be called from ext4_write_inode() was
also removed. This code avoids updating the inode table twice.
<<code improvement patch, small, recommended>>

0048-Make sure
ext4_dirty_inode()-updates-the-inode-in-no-journal-mode.patch
In no journal mode, the current_handle is not valid. This patch checks
if the current_handle is invalid, correctly assumes that then this is
the no journal mode and syncs the diry inode. Without this patch, the
dirty inode was lost in journal mode!
<<code correction patch, small, necessary>>

0049-ext4-Handle-nested-ext4_journal_start-stop-calls-wit.patch
This patch fixes a problem with handling nested calls to
ext4_journal_start/ext4_journal_stop, when there is no journal present
<<code correction patch, small, necessary>>

0050-ext4-Fix-time-encoding-with-extra-epoch-bits.patch
This patch fixes the problem of setting the extra time field which
overwrote the nsec field. This patch masks the extra time field and
avoids this overwriting.
<<code correction patch, very small, necessary>>


0051-ext4-fix-a-BUG_ON-crash-by-checking-that-page-has-bu.patch
In ext4_num_dirty_pages() we were calling page_buffers() before
checking to see if the page actually had pages attached to it; this
would cause a BUG check crash in the inline function page_buffers().
This is related to patch 0041.
<<code correction patch, small, necessary>>

0052-ext4-retry-failed-direct-IO-allocations.patch
As with other block allocation callers, it looks like we need to
potentially retry the allocations on the initial ENOSPC.
This patch retries block allocation when we get a ENOSPC.
<<code correction patch, small, necessary>>

0053-ext4-discard-preallocation-when-restarting-a-transac.patch
When restart a transaction during a truncate operation, we drop and
reacquire i_data_sem. After reacquiring i_data_sem, we need to
discard any inode-based preallocation that might have been grabbed
while we released i_data_sem (for example, if pdflush is allocating
blocks and racing against the truncate).
<<code correction patch, very small, necessary>>

0054-ext4-fix-ext4_ext_direct_IO-s-return-value-after-con.patch
After a direct I/O request covering an uninitalized extent (i.e.,
created using the fallocate system call) or a hole in a file, ext4
will convert the uninitialized extent so it is marked as initialized
by calling ext4_convert_unwritten_extents(). This function returns
zero on success. This return value was getting returned by
ext4_direct_IO(); however
the file system's direct_IO function is supposed to return the number
of bytes read or written on a success. By returning zero, it confused
the direct I/O code into falling back to buffered I/O unnecessarily.
This patch returns the correct value of num of bytes read, rather than
just 0.
<<code correction patch, small, necessary>>


0055-ext4-skip-conversion-of-uninit-extents-after-direct-.patch
This commit adds a state flag so that ext4_ext_direct_IO() only calls
ext4_convert_unwritten_extents() when necessary.
<<Code improvement patch, medium, recommended>>

0056-ext4-code-clean-up-for-dio-fallocate-handling.patch
The ext4_debug() call in ext4_end_io_dio() should be moved after the
check to make sure that io_end is non-NULL.
<<Code correction patch, small, necessary>>


0057-ext4-Fix-return-value-of-ext4_split_unwritten_extent.patch
When no extents needed to be split, ext4_split_unwritten_extents()
was incorrectly returning 0 instead of the size of uninitialized extents.
This bug caused the wrong return value sent back to VFS code when it
gets called from
async IO path, leading to an unnecessary fall back to buffered IO.
This bug also hid the fact that the check to see whether or not a
split would be necessary was incorrect; we can only skip splitting the
extent if the write completely covers the uninitialized extent.
<<Code correction patch, small, necessary>>

0058-ext4-fix-potential-buffer-head-leak-when-add_dirent_.patch
now add_dirent_to_buf() *never* frees the passed-in buffer
head, and leaves that to the responsibility of its caller. This makes
things cleaner and easier. Since the freeing of memory is now
upto the caller always.
<<Code correction patch, small, necessary>>

0059-ext4-avoid-divide-by-zero-when-trying-to-mount-a-cor.patch
If s_log_groups_per_flex is greater than 31, then groups_per_flex will
will overflow and cause a divide by zero error. This can cause kernel
BUG if such a file system is mounted.
<<Code correction patch, very small, necessary>>

0060-ext4-fix-the-returned-block-count-if-EXT4_IOC_MOVE_E.patch
If the EXT4_IOC_MOVE_EXT ioctl fails, the number of blocks that were
exchanged before the failure should be returned to the userspace
caller. Unfortunately, currently if the block size is not the same as
the page size, the returned block count that is returned is the
page-aligned block count instead of the actual block count. This
commit addresses this bug.
<<Code correction patch, big, necessary>>

0061-ext4-fix-lock-order-problem-in-ext4_move_extents.patch
- fix lock order problem in ext4_move_extents()
<<Code correction patch, big, necessary>>

0062-ext4-fix-possible-recursive-locking-warning-in-EXT4_.patch
removes a FALSE positive warning of deadlock. If this patch is not
included, you will only have a false alarm !
<< code improvement, very small, recommended>

0063-ext4-plug-a-buffer_head-leak-in-an-error-path-of-ext.patch
Releases the inode head buffer in a specific corner case.
<< Code correction patch, very small, necessary>>

0064-ext4-make-sure-directory-and-symlink-blocks-are-revo.patch
This patch is to avoid data corruption on a crash.
<<code correction patch, medium, necessary>>

0065-ext4-fix-i_flags-access-in-ext4_da_writepages_trans_.patch
correctly check the i_flags field in the ext4 inode rather than
the generic inode structure.
<< code correction patch, very small, necessary>>

0066-ext4-journal-all-modifications-in-ext4_xattr_set_han.patch
fs corruption without this patch
<<code correction patch, very small, necessary>>


0067-ext4-don-t-update-the-superblock-in-ext4_statfs.patch
causes fs corruption without this patch
<<code correction patch, very small, necessary>>

0068-ext4-fix-uninit-block-bitmap-initialization-when-s_m.patch
<<Code correction patch, small, necessary>>

0069-ext4-fix-block-validity-checks-so-they-work-correctl.patch
<<code correction patch, small, necessary >>


0070-ext4-avoid-issuing-unnecessary-barriers.patch
<< Performance enhancement/code correction patch, small, necessary>>


0071-ext4-fix-error-handling-in-ext4_ind_get_blocks.patch
<< code correction, small, necessary >>

0072-ext4-make-trim-discard-optional-and-off-by-default.patch
This patch corrects the code related to trim device "discard" option
in the function release_blocks_on_commit(). It also adds some code
related to the same option in a few other functions. It also corrects
the documentation related to this option.
<< functionality correction/addition - medium, necessary>>

0073-ext4-make-norecovery-an-alias-for-noload.patch
Mounting a filesystem with no journal replay is changed
to "norecovery" option rather than the old "noload". This
change is to keep the semantics the same across the various f.s.
<<semantics improvement patch, small, necessary>>


0074-ext4-Fix-double-free-of-blocks-with-EXT4_IOC_MOVE_EX.patch
the blocks in extents were getting freed twice. This patch fixes
this error.
<<code correction patch, small, necessary >>

0075-ext4-initialize-moved_len-before-calling-ext4_move_e.patch
This is a small code enhancement patch. It removes the check of a
variable value and removes it being passed as an argument to another
function.
<<code enhancement patch, small, recommended >>

0076-ext4-move_extent_per_page-cleanup.patch
This patch is a code quality improvement patch or code enhancement patch.
It has no impact on functionality. It reduces the object code size.
<<code enhancement patch, small size, recommended>>

0077-jbd2-Add-ENOMEM-checking-in-and-for-jbd2_journal_wri.patch
This patch checks for the "Out of memory check" condition.
<<code correction patch, small, necessary>>

0078-ext4-Return-the-PTR_ERR-of-the-correct-pointer-in-se.patch
<<code correction patch, very small, necessary>>

0079-ext4-Avoid-data-filesystem-corruption-when-write-fai.patch
This patch removes the page cache mapping of pages for which block
writes failed. Without this patch, data and filesystem corruption can
occur.
<<data corruption related code correction patch, small, necessary>>


0080-ext4-wait-for-log-to-commit-when-umounting.patch
A journal transaction could end up using a freed block if the block
allocator is shutdown while a transaction is completing. The trick is
to shut down the multiblock allocator only when the transactions are over.
This can occur during unmount.
<<code correction patch, small, necessary>>

0081-ext4-remove-blocks-from-inode-prealloc-list-on-failu.patch"
This patch fixes a leak of blocks when a disk failure does not allow you to
mark the preallocated blocks as used up.
<<code correction patch, small, necessary>>

0082-ext4-ext4_get_reserved_space-must-return-bytes-inste.patch
This code fixes the return value from ext4_get_reserved_space(), which
must return the correct number of blocks rather than number of bits.
<<code correction patch, very small, necessary>>

0083-ext4-quota-macros-cleanup.patch
This patch replaces the digit 2 with an appropriate macro
"EXT4_MAXQUOTAS_*". This patch makes the code more readable.
<<code enhancement patch, small>>

0084-ext4-fix-incorrect-block-reservation-on-quota-transf.patch
This patch adds code for reserving the EXT4_MAXQUOTAS_DEL_BLOCKS in the
ext4_setattr().
<<code correction patch, small>>


0085-ext4-Wait-for-proper-transaction-commit-on-fsync.patch
This is an important patch for code correction. This patch tracks
transactions that last changed an inode and appropriately forces
a transaction flush. We cannot rely on the buffer dirty bit because
pdflush can clear this bit and occur before fsync.
Transaction is flushed only on fsync and so instead now we track the
transactions in fsync by noting one down when necessary.
<<code correction patch, medium size, necessary patch>>

0086-SCSI-megaraid_sas-fix-64-bit-sense-pointer-truncatio.patch
The current sense pointer is cast to a u32 pointer, which can truncate
on 64 bits. Fix by using unsigned long instead.
<<code correction patch, small size, necessary>>


0087-SCSI-osd_protocol.h-Add-missing-include.patch
Adds a +#include <linux/kernel.h> in the file scsi/osd_protocol.h, which
uses ALIGN from kernel.h.
<<code correction patch, very small, necessary>>

0088-SCSI-scsi_lib_dma-fix-bug-with-dma-maps-on-nested-sc.patch
Some scsi devices do not have a proper bus parent at the top, which
is needed for dma. This patch fixes this problem and also modifies the
vport logic for qla2xxx and lpfc.
<<Code correction, medium size, necessary>>

0089-signal-Fix-alternate-signal-stack-check.patch
This patch fixes the stack usage scenario for certain architectures.
<<Code correction, necessary patch>>


0090-ext4-Fix-potential-fiemap-deadlock-mmap_sem-vs.-i_da.patch
This patch removes the circular locking dependecies and thus a potential
livelock/deadlock.
<<Code correction patch, small, necessary>>


Warm Regards,
Surbhi.






--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 01-06-2010, 04:13 PM
Stefan Bader
 
Default SRU: Update to 2.6.31.8 stable kernel

Leann Ogasawara wrote:
> Hi All,
>
> https://bugs.edge.launchpad.net/ubuntu/karmic/+source/linux/+bug/496816
>
> SRU Justification/Impact:
>
> The 2.6.31.8 stable kernel has recently been released. The 2.6.31.8
> Upstream Stable Kernel brings in 91 patches (2 of which we already
> have). I've applied and pushed these to my tree for review.
>
> git://kernel.ubuntu.com/ogasawara/ubuntu-karmic.git stable-2.6.31.8
>
> http://kernel.ubuntu.com/git?p=ogasawara/ubuntu-karmic.git;a=shortlog;h=refs/heads/stable-2.6.31.8
>
> The upstream process for stable tree updates is quite similar in scope
> to the Ubuntu SRU process, e.g., each patch has to demonstrably fix a
> bug, and each patch is vetted by upstream by originating either directly
> from Linus' tree or in a minimally backported form of that patch. The
> 2.6.31.8 upstream stable patch set is now available. It should be
> included in the Ubuntu kernel as well.
>
> TEST CASE: TBD
>
> http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.31.8
>
> http://kernel.org/pub/linux/kernel/v2.6/patch-2.6.31.8.bz2
>
> The following bugs might be resolved via patches from 2.6.31.8:
>
> https://bugs.launchpad.net/ubuntu/+bug/453579 - "in-place corruption of
> large files *without fsck or reboot* reported with linux 2.6.31-14.46 on
> ext4"
>
> The 91 stable patches are as follows. I've inlined my own review
> comments (marked by #).
>
> Thanks,
> Leann
>
> commit 0e84042ca40e55904c9a6ee36cab2b753bd123e9
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: Fix memory leak fix when mounting an ext4 filesystem
>
> # Removes unused code which did the memory allocation that never got
> free'd.
>
> commit 4ef61f0aecd7792e7678f29434d1b34860e78280
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Avoid null pointer dereference when decoding EROFS w/o a journal
>
> # Check pointer before dereferencing. Looks sane.
>
> commit 34dd3ffe4b57ce9e38ad3258dae5051c7c6a204b
> Author: Jan Kara <jack@suse.cz>
>
> jbd2: Fail to load a journal if it is too short
>
> # Prevents potential oops.
>
> commit 65ccfef90fb74d4afd2414bc389a29f1a2dd94db
> Author: Andreas Dilger <adilger@sun.com>
>
> jbd2: round commit timer up to avoid uncommitted transaction
>
> # Use round_jiffies_up instead of round_jiffies
>
> commit 8be78bc620adf972f6d33bc6202ba1b85fdd4db5
> Author: Peng Tao <bergwolf@gmail.com>
>
> ext4: fix journal ref count in move_extent_par_page
>
> # Adds ext4_journal_stop()
>
> commit 5a69bbda790cdc3deb8425c6f726d22005e99b93
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix bugs in mballoc's stream allocation mode
>
> # Add check to determine if stream allocation should take place
>
> commit 225ff23eb45e5ad1229c27b00b2a0729cc3d8b85
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Avoid group preallocation for closed files
>
> # Prevents fragmentation.
>
> commit 18623c3d1d26a30943cc1a97a99f385884f1ddca
> Author: Jan Kara <jack@suse.cz>
>
> jbd2: Annotate transaction start also for jbd2_journal_restart()
>
> # move lock_map_acquire ()
>
> commit e2177295902d4849d61ad677e51e2d84eae617e5
> Author: Jan Kara <jack@suse.cz>
>
> ext4: Fix possible deadlock between ext4_truncate() and ext4_get_blocks()
>
> # drop i_data_sem before ext4_journal_restart() and acquire it right
> after
>
> commit 74ba8fe3abdfcd3f58e01ebb15b1fe9d2db86053
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: reject too-large filesystems on 32-bit kernels
>
> # Add check if more sectors exist than will fit in sector_t and also
> check whether the max offset is addressable by the page cache.
>
> commit e139f5b68b7aea8959a7e0fcd1f08a70c19846ba
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: Add feature set check helper for mount & remount paths
>
> # Add ext4_feature_set_ok() to check if fs can be mounted/remounted
> based on features present
>
> commit 100acdbadc9707c6ddee16c3288759bcbe317ac1
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: Add missing unlock_new_inode() call in extent migration code
>
> # Fixes warning
>
> commit 929c7112197d58053117b3303f3bcf160bcdca45
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: Allow rename to create more than EXT4_LINK_MAX subdirectories
>
> # use EXT4_DIR_LINK_MAX(new_dir)
>
> commit e4670b394dd5cdfc5fda17e3ec94c444dcaecac2
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Limit number of links that can be created by ext4_link()
>
> # check if inode->i_nlink >= EXT4_LINK_MAX
>
> commit 63762a2387882e4ff8ae77133b331abef8e6f555
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Restore wbc->range_start in ext4_da_writepages()
>
> # Avoid lock inversion issue by saving and restoring wbc->range_start
>
> commit 2a8af5d4d0f69036fc02e91642f862e473350143
> Author: Christoph Hellwig <hch@lst.de>
>
> ext4: fix cache flush in ext4_sync_file
>
> # flush the write cache unconditionally in ext4_sync_file(), this
> prevents data loss after fdatasync
>
> commit ad6030eecf171af161ad4c215c8d3f967b5ddfc5
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Fix wrong comparisons in mext_check_arguments()
>
> # fix up comparisons, this prevents BUG_ON due to previously invalid
> comparisons.
>
> commit 4062fc4957707493ff8d53d21c058838a8425f2a
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Remove unneeded BUG_ON() in ext4_move_extents()
>
> # Removes BUG_ON()
>
> commit de48efe24d0e6a2291dc4fe23271b5e5b16b01a7
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Return exchanged blocks count to user space in failure
>
> # remove !err check
>
> commit f112250b558ed59538502992570272253b4ef129
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: Take page lock before looking at attached buffer_heads flags
>
> # Grab lock_page(page), and make sure to balance with unlock_page(page)
>
> commit 6758feb58f9c66dbbd8ef67543deb03311296f3a
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: print more sysadmin-friendly message in check_block_validity()
>
> # Remove WARN_ON() and modify message printed from ext4_error()
>
> commit 523a2ab5bf81efa0fc9a1b6afc43e729ddae58f0
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Use bforget() in no journal mode for ext4_journal_{forget,revoke}()
>
> # Add bforget() call to ext4_journal_{forget,revoke}() to prevent dirty
> metadata block overwriting a block after it has been reallocated and
> reused for another inode's data block
>
> commit 75c1a3f1f6b164f280b7713a8b301e125ae86292
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Assure that metadata blocks are written during fsync in no journal mode
>
> # if no journal present, mark_buffer_dirty_inode() so that
> ext4_sync_file() can write out the inode's metadata blocks by calling
> sync_mapping_buffers()
>
> commit 90608af946cb40a743f3d7af58310ff8381b7101
> Author: Frank Mayhar <fmayhar@google.com>
>
> ext4: Make non-journal fsync work properly
>
> # Best described in commit message.
>
> commit ee0cc3fed6eacd6d791b89fa8fd839918e41fefb
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: move ext4_mb_init_group() function earlier in the mballoc.c
>
> # no change in actual ext4_mb_init_group() code, just moved to different
> location in file.
>
> commit 44373f34a740e9155cc011734ae0342b34e40d2c
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: check for need init flag in ext4_mb_load_buddy
>
> # check EXT4_MB_GRP_NEED_INIT(grp) while holding alloc_sem, otherwise
> doing so is racy
>
> commit 7a71dacba604fee399884a5f3d2c53e21e9c3a79
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Don't update superblock write time when filesystem is read-only
>
> # we were already carrying this. replace existing commit in favor of
> this one from stable.
>
> commit d78f2ac343787f48e97c87676fccaef850a50cbe
> Author: Andreas Schlick <schlick@lavabit.com>
>
> ext4: Always set dx_node's fake_dirent explicitly.
>
> # Use memset()
>
> commit 1de54d1bc0248c2b0f21e22b48f145271d38cbd5
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix initalization of s_flex_groups
>
> # Use atomic_add() instead of atomic_set()
>
> commit e4a8cc648a9a3decca1bc5f0f16aacdfc0d72d5a
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix include/trace/events/ext4.h to work with Systemtap
>
> # Don't use relative pathnames in #include statements
>
> commit 77e8c777ef2f4e31b690688fc27014b88feead9d
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Fix small typo for move_extent_per_page()
>
> # Replace move_extent_par_page with move_extent_per_page
>
> commit cc61eb8051988796a4a5103b749bb06e24df236c
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Replace get_ext_path macro with an inline funciton
>
> # use inline function instead of a macro
>
> commit 06f3ce16b31eb2015f873c96d459494964f9b7cd
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Replace BUG_ON() with ext4_error() in move_extents.c
>
> # ext4_error() provides better debug info. patch also adds some helper
> functions.
>
> commit f9211e5e69570ec989a5297d1637229340cadb61
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Add null extent check to ext_get_path
>
> # Return -ENODATA if null
>
> commit 45d2735a0725d39b77a22cf535566ed570d6fc0a
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Fix different block exchange issue in EXT4_IOC_MOVE_EXT
>
> # add check to make sure data exchange is done between the same blocks
> in EXT4_IOC_MOVE_EXT
>
> commit d55f431a04b186cc1ede0f100a030c9dda25bd9c
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: limit block allocations for indirect-block files to < 2^32
>
> # prevents corruption.
>
> commit 1f51991dec0bd679d172b55a86d54ca3f6227c51
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: store EXT4_EXT_MIGRATE in i_state instead of i_flags
>
> # patch does what the description says
>
> commit a6c92a88b556da1073e03d6936ae70c2c045421c
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix the alloc on close after a truncate hueristic
>
> # remove unnecessary check for ei->i_disksize being zero
>
> commit 0be3bd025b9893a0f2ed3d1cbeb06d7abc0e27df
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix hueristic which avoids group preallocation for closed files
>
> # move size = max(size, isize); until after checking size == isize
>
> commit 54088f5df9e352c41ef0f2eeb17ec9ae995ab4b3
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Adjust ext4_da_writepages() to write out larger contiguous chunks
>
> # Larger patch than usual. Adjust writeback to be > 4mb chunks.
>
> commit f26ac96224871adf0647496e4154eabdee3689a6
> Author: Mingming Cao <cmm@us.ibm.com>
>
> ext4: release reserved quota when block reservation for delalloc retry
>
> # move vfs_dq_release_reservation_block()
>
> commit 45eef039f3a5d0bce583d0a9b34818127ea79e49
> Author: Mingming Cao <cmm@us.ibm.com>
>
> ext4: Split uninitialized extents for direct I/O
>
> # Larger patch. split the extent into uninitialized and initialized
> extents before submitting the I/O. After I/O is complete, the written
> extent will be marked as initialized.
>
> commit 1295e40acf6d150d129fac939bc97aed771e6c7b
> Author: Mingming Cao <cmm@us.ibm.com>
>
> ext4: Use end_io callback to avoid direct I/O fallback to buffered I/O
>
> # Large patch. Appreciate additional comments/reviews on this.
>
> commit 3c42b7eb297192519fbfa80e1c77abd01c223114
> Author: Mingming Cao <cmm@us.ibm.com>
>
> ext4: async direct IO for holes and fallocate support
>
> # Again, large patch. Flush the conversion work when fsync() is called.
> Again, additional comments/review appreciated.
>
> commit ca23b5fd5bd6fd09e90008f9390cff248e01b718
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: EXT4_IOC_MOVE_EXT: Check for different original and donor inodes first
>
> # Avoid potential deadlock. move check for orig_inode->i_ino == donor_inode->i_ino
>
> commit 46d67b3c075b0d1630b57630f956edb1dad61baa
> Author: Frank Mayhar <fmayhar@google.com>
>
> ext4: Avoid updating the inode table bh twice in no journal mode
>
> # clean up for commit 91ac6f4.
>
> commit 94ab12a2649b1e86677771d310a20752ba5b1542
> Author: Curt Wohlgemuth <curtw@google.com>
>
> ext4: Make sure ext4_dirty_inode() updates the inode in no journal mode
>
> # always call ext4_mark_inode_dirty() from ext4_dirty_inode()
>
> commit e39f1920521ed14d874d638265e27a16526df494
> Author: Curt Wohlgemuth <curtw@google.com>
>
> ext4: Handle nested ext4_journal_start/stop calls without a journal
>
> # Add ext4_{get|put}_nojournal() calls
>
> commit 28c72b7fbc403ec439b0108e6559c9c67a3afe8d
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix time encoding with extra epoch bits
>
> # mask EXT4_EPOCH_MASK
>
> commit 2489f42e40972d65e50a0b842297f90ce02e6cb0
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: fix a BUG_ON crash by checking that page has buffers attached to it
>
> # check page_has_buffers(page)
>
> commit 620c66ab00f5b06de7119fbe0cc7dba3cc9aca7d
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: retry failed direct IO allocations
>
> # retry allocation if -ENOSPC
>
> commit ba593a59c912b3ae1f18b74d8ad66594ba3a47b6
> Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
> ext4: discard preallocation when restarting a transaction during truncate
>
> # Add ext4_discard_preallocations()
>
> commit 3e270fa58d81a994d1e4371be444f2e5bb072866
> Author: Mingming <cmm@us.ibm.com>
>
> ext4: fix ext4_ext_direct_IO()'s return value after converting uninit extents
>
> # check return value of ext4_convert_unwritten_extents() and return err if < 0
>
> commit 3e6c8d3881736079664aad465e26486d1d4152b9
> Author: Mingming <cmm@us.ibm.com>
>
> ext4: skip conversion of uninit extents after direct IO if there isn't any
>
> # Add state flag so that ext4_ext_direct_IO() only calls
> ext4_convert_unwritten_extents() when necessary
>
> commit 2bcfe650d1b5c9994ce58a25efd5a6f5eb4ad0ee
> Author: Mingming <cmm@us.ibm.com>
>
> ext4: code clean up for dio fallocate handling
>
> # move (!io_end || !size) check prior to ext_debug().
>
> commit 00909f7247db77fa3a3237b1d7b3d69ea25edd8a
> Author: Mingming <cmm@us.ibm.com>
>
> ext4: Fix return value of ext4_split_unwritten_extents() to fix direct I/O
>
> # return size of uninitialized extents
>
> commit 37bd334da00d116dba0526292891b1b572f1955b
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: fix potential buffer head leak when add_dirent_to_buf() returns ENOSPC
>
> # call brelse()
>
> commit a7aaaff940e284035a16e07cf90424da386ddce1
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: avoid divide by zero when trying to mount a corrupted file system
>
> # check groups_per_flex < 2
>
> commit 9a88a5ad2afe14b6f077c805a9c6dd95679aabba
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails
>
> # return number of blocks that were exchanged before the failure
>
> commit c6b24d6fd81cf34718b0a075e9ce0584e7f6a784
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: fix lock order problem in ext4_move_extents()
>
> # Add i_data_sem protection between ext4_ext_find_extent() and
> mext_next_extent() with a slight modification for move_extent_per_page()
> to start transaction first, and then acquire i_data_sem
>
> commit 1cb0b894567626e02ad2fb6d8e74356918624499
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT
>
> # Use down_write_nested() instead of down_write(), without this a
> warning would be printed if CONFIG_PROVE_LOCKING was enabled. However,
> we don't enable this in Karmic.
>
> commit 97a9a2516af7df77a961e36466be866f7facfec3
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: plug a buffer_head leak in an error path of ext4_iget()
>
> # move brelse() to error path
>
> commit 063875158fa59b569ba26b9b259e822b5b51657e
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: make sure directory and symlink blocks are revoked
>
> # call ext4_forget() with non-zero is_metadata parameter, otherwise
> could lead to data corruption
>
> commit 882e3a7d67adf1bd773efd2d9999383b414832fd
> Author: Julia Lawall <julia@diku.dk>
>
> ext4: fix i_flags access in ext4_da_writepages_trans_blocks()
>
> # check EXT4_I(inode)->i_flags and not inode->i_flags
>
> commit c1e25a5675eac46bee85953720705efceceb70a2
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: journal all modifications in ext4_xattr_set_handle
>
> # move call to ext4_journal_get_write_access()
>
> commit a0dacfcfac479a5b950a8d863fe8b55328a6e1cd
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: don't update the superblock in ext4_statfs()
>
> # might resolve LP bug 453579
>
> commit 433a171d4c17eff96511617e132efb985f200fad
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: fix uninit block bitmap initialization when s_meta_first_bg is non-zero
>
> # check EXT4_FEATURE_INCOMPAT_META_BG is set and if so return
> le32_to_cpu(EXT4_SB(sb)->s_es->s_first_meta_bg)
>
> commit b284e381f7b816a523636271274e38af7aae3dbd
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: fix block validity checks so they work correctly with meta_bg
>
> # check !ext4_data_block_valid()
>
> commit 84d77b74f7ce2e4937b18864fe6d033b29831918
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: avoid issuing unnecessary barriers
>
> # immediately return on error.
>
> commit 648d9cddf46454ef6aad9f8faf1dd051543647dd
> Author: Jan Kara <jack@suse.cz>
>
> ext4: fix error handling in ext4_ind_get_blocks()
>
> # check if fext4_splice_branch() returns an error
>
> commit c46e04b9e788d6abed811128aa4e61dc0996509c
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: make trim/discard optional (and off by default)
>
> # make sb_issue_discard off by default and mount time optional
>
> commit 360bfe0d07db42ee99a47b5549ac06d81016f356
> Author: Eric Sandeen <sandeen@redhat.com>
>
> ext4: make "norecovery" an alias for "noload"
>
> # on ext4 ml discussions "norecovery" was noted as being more
> descriptive than "noload" so create alias
>
> commit b9894156432b3013cb46567a2a9a9c46027f4444
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT
>
> # move ext4_discard_preallocations() to end of ext4_move_extents()
>
> commit 3f54503c2b00d8d908f23621f090915bc51c0797
> Author: Kazuya Mio <k-mio@sx.jp.nec.com>
>
> ext4: initialize moved_len before calling ext4_move_extents()
>
> # remove checks for moved_len
>
> commit eee4dabf625a44ee556cf6869bd90d54364cf38b
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: move_extent_per_page() cleanup
>
> # condense code
>
> commit aea93db412553d4d7319945868293a3f9b65a3a8
> Author: Theodore Ts'o <tytso@mit.edu>
>
> jbd2: Add ENOMEM checking in and for jbd2_journal_write_metadata_buffer()
>
> # check return value of jbd2_journal_write_metadata_buffer() and jbd2_alloc()
>
> commit 5e5c63120a3f3be8b89d09198bb0bc76e8d4f926
> Author: Roel Kluin <roel.kluin@gmail.com>
>
> ext4: Return the PTR_ERR of the correct pointer in setup_new_group_blocks()
>
> # return PTR_ERR(gdb) not PTR_ERR(bh)
>
> commit 1065591da0c1726f0aff654a7e23062e8898d923
> Author: Jan Kara <jack@suse.cz>
>
> ext4: Avoid data / filesystem corruption when write fails to copy data
>
> # wrap truncate_inode_pages() and ext4_truncate() in
> ext4_truncate_failed_write(). Then replace calls to ext4_truncate()
> with ext4_truncate_failed_write()
>
> commit 3b9d4e773c20b34534c46e563103071f2f540bf8
> Author: Josef Bacik <josef@redhat.com>
>
> ext4: wait for log to commit when umounting
>
> # move code so that we wait for the transaction to finish committing
> before we shutdown the multiblock allocator
>
> commit a9a3ddb71f81e2529f7c38f06981723c8af1ffd0
> Author: Curt Wohlgemuth <curtw@google.com>
>
> ext4: remove blocks from inode prealloc list on failure
>
> # fixes leak
>
> commit 89ca4c75b2ad9f2610d390590dcd16e60e909f43
> Author: Dmitry Monakhov <dmonakhov@openvz.org>
>
> ext4: ext4_get_reserved_space() must return bytes instead of blocks
>
> # return total << inode->i_blkbits
>
> commit e79220b94468feaf42ec05fe197a8dfe5a782f57
> Author: Dmitry Monakhov <dmonakhov@openvz.org>
>
> ext4: quota macros cleanup
>
> # use MAXQUOTAS rather than hardcoding value
>
> commit 224fb952944a6ff5c4032f5cdcf0a73ac45b0702
> Author: Dmitry Monakhov <dmonakhov@openvz.org>
>
> ext4: fix incorrect block reservation on quota transfer.
>
> # use EXT4_MAXQUOTAS_DEL_BLOCKS, not EXT4_QUOTA_DEL_BLOCKS
>
> commit e8f0d507456ee6ea071e0bb9d445e848b29872ac
> Author: Jan Kara <jack@suse.cz>
>
> ext4: Wait for proper transaction commit on fsync
>
> # larger patch. tracks which transaction has last changed the inode and
> which transaction last changed allocation and force it to disk on fsync
>
> commit 51a88ff8de521caa02d8d208e410ff85a3c85199
> Author: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT
>
> # Already included in security release
>
> commit 66d8e059a54d7aa345ef9a857986e2055870a14e
> Author: Yang, Bo <Bo.Yang@lsi.com>
>
> SCSI: megaraid_sas: fix 64 bit sense pointer truncation
>
> # use unsigned long instead of u32
>
> commit fa0b90829888932592f6f99959ebc42c12356623
> Author: Martin Michlmayr <tbm@cyrius.com>
>
> SCSI: osd_protocol.h: Add missing #include
>
> # Add #include <linux/kernel.h>
>
> commit 3c4f4e86d320bc7853f9aba7f8382a5a77dc6e43
> Author: James Bottomley <James.Bottomley@suse.de>
>
> SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects
>
> # replace scsi_add_host() with scsi_add_host_with_dma() which accepts an
> extra param for dma_dev
>
> commit 59cebab12f5dd741ae565ed242f1f12790d9c4ba
> Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
>
> signal: Fix alternate signal stack check
>
> # check CONFIG_STACK_GROWSUP and return value accordingly
>
> commit 26973f8bd6dfee21209ef3d521c286ee485ef2a8
> Author: Theodore Ts'o <tytso@mit.edu>
>
> ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem)
>
> # fix possible circular locking dependency by acquiring and releasing
> i_data_sem before and after ext4_ext_find_extent(), not around
> ext4_ext_walk_space()
>
> commit 047e5f383505cda6606b73d49a857895de5e2c48
> Author: Greg Kroah-Hartman <gregkh@suse.de>
>
> Linux 2.6.31.8
>
> # update Makefile
>
>


--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 

Thread Tools




All times are GMT. The time now is 08:31 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org