SRU Justification/Impact: 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.
The 2.6.31.8 Upstream Stable Kernel brings in the following 91 patches:
* ext4: Fix memory leak fix when mounting an ext4 filesystem
* ext4: Avoid null pointer dereference when decoding EROFS w/o a journal
* jbd2: Fail to load a journal if it is too short
* jbd2: round commit timer up to avoid uncommitted transaction
* ext4: fix journal ref count in move_extent_par_page
* ext4: Fix bugs in mballoc's stream allocation mode
* ext4: Avoid group preallocation for closed files
* jbd2: Annotate transaction start also for jbd2_journal_restart()
* ext4: Fix possible deadlock between ext4_truncate() and ext4_get_blocks()
* ext4: reject too-large filesystems on 32-bit kernels
* ext4: Add feature set check helper for mount & remount paths
* ext4: Add missing unlock_new_inode() call in extent migration code
* ext4: Allow rename to create more than EXT4_LINK_MAX subdirectories
* ext4: Limit number of links that can be created by ext4_link()
* ext4: Restore wbc->range_start in ext4_da_writepages()
* ext4: fix cache flush in ext4_sync_file
* ext4: Fix wrong comparisons in mext_check_arguments()
* ext4: Remove unneeded BUG_ON() in ext4_move_extents()
* ext4: Return exchanged blocks count to user space in failure
* ext4: Take page lock before looking at attached buffer_heads flags
* ext4: print more sysadmin-friendly message in check_block_validity()
* ext4: Use bforget() in no journal mode for ext4_journal_{forget,revoke}()
* ext4: Assure that metadata blocks are written during fsync in no journal mode
* ext4: Make non-journal fsync work properly
* ext4: move ext4_mb_init_group() function earlier in the mballoc.c
* ext4: check for need init flag in ext4_mb_load_buddy
* ext4: Don't update superblock write time when filesystem is read-only
* ext4: Always set dx_node's fake_dirent explicitly.
* ext4: Fix initalization of s_flex_groups
* ext4: Fix include/trace/events/ext4.h to work with Systemtap
* ext4: Fix small typo for move_extent_per_page()
* ext4: Replace get_ext_path macro with an inline funciton
* ext4: Replace BUG_ON() with ext4_error() in move_extents.c
* ext4: Add null extent check to ext_get_path
* ext4: Fix different block exchange issue in EXT4_IOC_MOVE_EXT
* ext4: limit block allocations for indirect-block files to < 2^32
* ext4: store EXT4_EXT_MIGRATE in i_state instead of i_flags
* ext4: Fix the alloc on close after a truncate hueristic
* ext4: Fix hueristic which avoids group preallocation for closed files
* ext4: Adjust ext4_da_writepages() to write out larger contiguous chunks
* ext4: release reserved quota when block reservation for delalloc retry
* ext4: Split uninitialized extents for direct I/O
* ext4: Use end_io callback to avoid direct I/O fallback to buffered I/O
* ext4: async direct IO for holes and fallocate support
* ext4: EXT4_IOC_MOVE_EXT: Check for different original and donor inodes first
* ext4: Avoid updating the inode table bh twice in no journal mode
* ext4: Make sure ext4_dirty_inode() updates the inode in no journal mode
* ext4: Handle nested ext4_journal_start/stop calls without a journal
* ext4: Fix time encoding with extra epoch bits
* ext4: fix a BUG_ON crash by checking that page has buffers attached to it
* ext4: retry failed direct IO allocations
* ext4: discard preallocation when restarting a transaction during truncate
* ext4: fix ext4_ext_direct_IO()'s return value after converting uninit extents
* ext4: skip conversion of uninit extents after direct IO if there isn't any
* ext4: code clean up for dio fallocate handling
* ext4: Fix return value of ext4_split_unwritten_extents() to fix direct I/O
* ext4: fix potential buffer head leak when add_dirent_to_buf() returns ENOSPC
* ext4: avoid divide by zero when trying to mount a corrupted file system
* ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails
* ext4: fix lock order problem in ext4_move_extents()
* ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT
* ext4: plug a buffer_head leak in an error path of ext4_iget()
* ext4: make sure directory and symlink blocks are revoked
* ext4: fix i_flags access in ext4_da_writepages_trans_blocks()
* ext4: journal all modifications in ext4_xattr_set_handle
* ext4: don't update the superblock in ext4_statfs()
* ext4: fix uninit block bitmap initialization when s_meta_first_bg is non-zero
* ext4: fix block validity checks so they work correctly with meta_bg
* ext4: avoid issuing unnecessary barriers
* ext4: fix error handling in ext4_ind_get_blocks()
* ext4: make trim/discard optional (and off by default)
* ext4: make "norecovery" an alias for "noload"
* ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT
* ext4: initialize moved_len before calling ext4_move_extents()
* ext4: move_extent_per_page() cleanup
* jbd2: Add ENOMEM checking in and for jbd2_journal_write_metadata_buffer()
* ext4: Return the PTR_ERR of the correct pointer in setup_new_group_blocks()
* ext4: Avoid data / filesystem corruption when write fails to copy data
* ext4: wait for log to commit when umounting
* ext4: remove blocks from inode prealloc list on failure
* ext4: ext4_get_reserved_space() must return bytes instead of blocks
* ext4: quota macros cleanup
* ext4: fix incorrect block reservation on quota transfer.
* ext4: Wait for proper transaction commit on fsync
* ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT
* SCSI: megaraid_sas: fix 64 bit sense pointer truncation
* SCSI: osd_protocol.h: Add missing #include
* SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects
* signal: Fix alternate signal stack check
* ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem)
* Linux 2.6.31.8
SRU Justification/ Impact: 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 2.6.31.8 Upstream Stable Kernel brings in the following 91 patches:
* ext4: Fix memory leak fix when mounting an ext4 filesystem par_page restart( ) writepages( ) arguments( ) validity( ) {forget, revoke} () init_group( ) function earlier in the mballoc.c trace/events/ ext4.h to work with Systemtap per_page( ) writepages( ) to write out larger contiguous chunks start/stop calls without a journal direct_ IO()'s return value after converting uninit extents unwritten_ extents( ) to fix direct I/O writepages_ trans_blocks( ) set_handle get_blocks( ) per_page( ) cleanup write_metadata_ buffer( ) group_blocks( ) reserved_ space() must return bytes instead of blocks
* ext4: Avoid null pointer dereference when decoding EROFS w/o a journal
* jbd2: Fail to load a journal if it is too short
* jbd2: round commit timer up to avoid uncommitted transaction
* ext4: fix journal ref count in move_extent_
* ext4: Fix bugs in mballoc's stream allocation mode
* ext4: Avoid group preallocation for closed files
* jbd2: Annotate transaction start also for jbd2_journal_
* ext4: Fix possible deadlock between ext4_truncate() and ext4_get_blocks()
* ext4: reject too-large filesystems on 32-bit kernels
* ext4: Add feature set check helper for mount & remount paths
* ext4: Add missing unlock_new_inode() call in extent migration code
* ext4: Allow rename to create more than EXT4_LINK_MAX subdirectories
* ext4: Limit number of links that can be created by ext4_link()
* ext4: Restore wbc->range_start in ext4_da_
* ext4: fix cache flush in ext4_sync_file
* ext4: Fix wrong comparisons in mext_check_
* ext4: Remove unneeded BUG_ON() in ext4_move_extents()
* ext4: Return exchanged blocks count to user space in failure
* ext4: Take page lock before looking at attached buffer_heads flags
* ext4: print more sysadmin-friendly message in check_block_
* ext4: Use bforget() in no journal mode for ext4_journal_
* ext4: Assure that metadata blocks are written during fsync in no journal mode
* ext4: Make non-journal fsync work properly
* ext4: move ext4_mb_
* ext4: check for need init flag in ext4_mb_load_buddy
* ext4: Don't update superblock write time when filesystem is read-only
* ext4: Always set dx_node's fake_dirent explicitly.
* ext4: Fix initalization of s_flex_groups
* ext4: Fix include/
* ext4: Fix small typo for move_extent_
* ext4: Replace get_ext_path macro with an inline funciton
* ext4: Replace BUG_ON() with ext4_error() in move_extents.c
* ext4: Add null extent check to ext_get_path
* ext4: Fix different block exchange issue in EXT4_IOC_MOVE_EXT
* ext4: limit block allocations for indirect-block files to < 2^32
* ext4: store EXT4_EXT_MIGRATE in i_state instead of i_flags
* ext4: Fix the alloc on close after a truncate hueristic
* ext4: Fix hueristic which avoids group preallocation for closed files
* ext4: Adjust ext4_da_
* ext4: release reserved quota when block reservation for delalloc retry
* ext4: Split uninitialized extents for direct I/O
* ext4: Use end_io callback to avoid direct I/O fallback to buffered I/O
* ext4: async direct IO for holes and fallocate support
* ext4: EXT4_IOC_MOVE_EXT: Check for different original and donor inodes first
* ext4: Avoid updating the inode table bh twice in no journal mode
* ext4: Make sure ext4_dirty_inode() updates the inode in no journal mode
* ext4: Handle nested ext4_journal_
* ext4: Fix time encoding with extra epoch bits
* ext4: fix a BUG_ON crash by checking that page has buffers attached to it
* ext4: retry failed direct IO allocations
* ext4: discard preallocation when restarting a transaction during truncate
* ext4: fix ext4_ext_
* ext4: skip conversion of uninit extents after direct IO if there isn't any
* ext4: code clean up for dio fallocate handling
* ext4: Fix return value of ext4_split_
* ext4: fix potential buffer head leak when add_dirent_to_buf() returns ENOSPC
* ext4: avoid divide by zero when trying to mount a corrupted file system
* ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails
* ext4: fix lock order problem in ext4_move_extents()
* ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT
* ext4: plug a buffer_head leak in an error path of ext4_iget()
* ext4: make sure directory and symlink blocks are revoked
* ext4: fix i_flags access in ext4_da_
* ext4: journal all modifications in ext4_xattr_
* ext4: don't update the superblock in ext4_statfs()
* ext4: fix uninit block bitmap initialization when s_meta_first_bg is non-zero
* ext4: fix block validity checks so they work correctly with meta_bg
* ext4: avoid issuing unnecessary barriers
* ext4: fix error handling in ext4_ind_
* ext4: make trim/discard optional (and off by default)
* ext4: make "norecovery" an alias for "noload"
* ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT
* ext4: initialize moved_len before calling ext4_move_extents()
* ext4: move_extent_
* jbd2: Add ENOMEM checking in and for jbd2_journal_
* ext4: Return the PTR_ERR of the correct pointer in setup_new_
* ext4: Avoid data / filesystem corruption when write fails to copy data
* ext4: wait for log to commit when umounting
* ext4: remove blocks from inode prealloc list on failure
* ext4: ext4_get_
* ext4: quota macros cleanup
* ext4: fix incorrect block reservation on quota transfer.
* ext4: Wait for proper transaction commit on fsync
* ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT
* SCSI: megaraid_sas: fix 64 bit sense pointer truncation
* SCSI: osd_protocol.h: Add missing #include
* SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects
* signal: Fix alternate signal stack check
* ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem)
* Linux 2.6.31.8