[Karmic] SRU: Update to 2.6.31.8 stable kernel
Surbhi Palande
surbhi.palande at canonical.com
Tue Jan 5 18:03:03 UTC 2010
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 at 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 at 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 at suse.cz>
>>
>> jbd2: Fail to load a journal if it is too short
>>
>> # Prevents potential oops.
>>
>> commit 65ccfef90fb74d4afd2414bc389a29f1a2dd94db
>> Author: Andreas Dilger <adilger at 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 at gmail.com>
>>
>> ext4: fix journal ref count in move_extent_par_page
>>
>> # Adds ext4_journal_stop()
>>
>> commit 5a69bbda790cdc3deb8425c6f726d22005e99b93
>> Author: Theodore Ts'o <tytso at 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 at mit.edu>
>>
>> ext4: Avoid group preallocation for closed files
>>
>> # Prevents fragmentation.
>>
>> commit 18623c3d1d26a30943cc1a97a99f385884f1ddca
>> Author: Jan Kara <jack at suse.cz>
>>
>> jbd2: Annotate transaction start also for jbd2_journal_restart()
>>
>> # move lock_map_acquire ()
>>
>> commit e2177295902d4849d61ad677e51e2d84eae617e5
>> Author: Jan Kara <jack at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at rs.jp.nec.com>
>>
>> ext4: Remove unneeded BUG_ON() in ext4_move_extents()
>>
>> # Removes BUG_ON()
>>
>
>> commit de48efe24d0e6a2291dc4fe23271b5e5b16b01a7
>> Author: Akira Fujita <a-fujita at 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 at 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 at 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 at 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 at 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 at google.com>
>>
>> ext4: Make non-journal fsync work properly
>>
>> # Best described in commit message.
>>
>> commit ee0cc3fed6eacd6d791b89fa8fd839918e41fefb
>> Author: Aneesh Kumar K.V <aneesh.kumar at 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 at 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 at 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 at lavabit.com>
>>
>> ext4: Always set dx_node's fake_dirent explicitly.
>>
>> # Use memset()
>>
>> commit 1de54d1bc0248c2b0f21e22b48f145271d38cbd5
>> Author: Theodore Ts'o <tytso at mit.edu>
>>
>> ext4: Fix initalization of s_flex_groups
>>
>> # Use atomic_add() instead of atomic_set()
>>
>> commit e4a8cc648a9a3decca1bc5f0f16aacdfc0d72d5a
>> Author: Theodore Ts'o <tytso at 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 at 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 at 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 at 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 at rs.jp.nec.com>
>>
>> ext4: Add null extent check to ext_get_path
>>
>> # Return -ENODATA if null
>>
>> commit 45d2735a0725d39b77a22cf535566ed570d6fc0a
>> Author: Akira Fujita <a-fujita at 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 at redhat.com>
>>
>> ext4: limit block allocations for indirect-block files to < 2^32
>>
>> # prevents corruption.
>>
>> commit 1f51991dec0bd679d172b55a86d54ca3f6227c51
>> Author: Theodore Ts'o <tytso at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at mit.edu>
>>
>> ext4: Fix time encoding with extra epoch bits
>>
>> # mask EXT4_EPOCH_MASK
>>
>> commit 2489f42e40972d65e50a0b842297f90ce02e6cb0
>> Author: Theodore Ts'o <tytso at 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 at redhat.com>
>>
>> ext4: retry failed direct IO allocations
>>
>> # retry allocation if -ENOSPC
>>
>> commit ba593a59c912b3ae1f18b74d8ad66594ba3a47b6
>> Author: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
>>
>> ext4: discard preallocation when restarting a transaction during truncate
>>
>> # Add ext4_discard_preallocations()
>>
>> commit 3e270fa58d81a994d1e4371be444f2e5bb072866
>> Author: Mingming <cmm at 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 at 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 at 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 at 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 at mit.edu>
>>
>> ext4: fix potential buffer head leak when add_dirent_to_buf() returns ENOSPC
>>
>> # call brelse()
>>
>> commit a7aaaff940e284035a16e07cf90424da386ddce1
>> Author: Theodore Ts'o <tytso at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at mit.edu>
>>
>> ext4: don't update the superblock in ext4_statfs()
>>
>> # might resolve LP bug 453579
>>
>> commit 433a171d4c17eff96511617e132efb985f200fad
>> Author: Theodore Ts'o <tytso at 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 at 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 at mit.edu>
>>
>> ext4: avoid issuing unnecessary barriers
>>
>> # immediately return on error.
>>
>> commit 648d9cddf46454ef6aad9f8faf1dd051543647dd
>> Author: Jan Kara <jack at 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 at 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 at 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 at 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 at 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 at rs.jp.nec.com>
>>
>> ext4: move_extent_per_page() cleanup
>>
>> # condense code
>>
>> commit aea93db412553d4d7319945868293a3f9b65a3a8
>> Author: Theodore Ts'o <tytso at 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 at 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 at 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 at 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 at google.com>
>>
>> ext4: remove blocks from inode prealloc list on failure
>>
>> # fixes leak
>>
>> commit 89ca4c75b2ad9f2610d390590dcd16e60e909f43
>> Author: Dmitry Monakhov <dmonakhov at openvz.org>
>>
>> ext4: ext4_get_reserved_space() must return bytes instead of blocks
>>
>> # return total << inode->i_blkbits
>>
>> commit e79220b94468feaf42ec05fe197a8dfe5a782f57
>> Author: Dmitry Monakhov <dmonakhov at openvz.org>
>>
>> ext4: quota macros cleanup
>>
>> # use MAXQUOTAS rather than hardcoding value
>>
>> commit 224fb952944a6ff5c4032f5cdcf0a73ac45b0702
>> Author: Dmitry Monakhov <dmonakhov at 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 at 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 at 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 at lsi.com>
>>
>> SCSI: megaraid_sas: fix 64 bit sense pointer truncation
>>
>> # use unsigned long instead of u32
>>
>> commit fa0b90829888932592f6f99959ebc42c12356623
>> Author: Martin Michlmayr <tbm at cyrius.com>
>>
>> SCSI: osd_protocol.h: Add missing #include
>>
>> # Add #include <linux/kernel.h>
>>
>> commit 3c4f4e86d320bc7853f9aba7f8382a5a77dc6e43
>> Author: James Bottomley <James.Bottomley at 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 at breakpoint.cc>
>>
>> signal: Fix alternate signal stack check
>>
>> # check CONFIG_STACK_GROWSUP and return value accordingly
>>
>> commit 26973f8bd6dfee21209ef3d521c286ee485ef2a8
>> Author: Theodore Ts'o <tytso at 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 at 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.
More information about the kernel-team
mailing list