The patch titled ext2-reservations-bring-ext2-reservations-code-in-line-with-latest-ext3-fix has been removed from the -mm tree. Its filename was ext2-reservations-bring-ext2-reservations-code-in-line-with-latest-ext3-fix.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: ext2-reservations-bring-ext2-reservations-code-in-line-with-latest-ext3-fix From: Andrew Morton <akpm@xxxxxxxx> Cc: "Martin J. Bligh" <mbligh@xxxxxxxxxx> Cc: Valerie Henson <val_henson@xxxxxxxxxxxxxxx> Cc: Mingming Cao <cmm@xxxxxxxxxx> Cc: Mel Gorman <mel@xxxxxxxxx> Cc: Hugh Dickins <hugh@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- fs/ext2/balloc.c | 39 +++++++++++++++++++-------------------- 1 files changed, 19 insertions(+), 20 deletions(-) diff -puN fs/ext2/balloc.c~ext2-reservations-bring-ext2-reservations-code-in-line-with-latest-ext3-fix fs/ext2/balloc.c --- a/fs/ext2/balloc.c~ext2-reservations-bring-ext2-reservations-code-in-line-with-latest-ext3-fix +++ a/fs/ext2/balloc.c @@ -1155,9 +1155,10 @@ int ext2_new_blocks(struct inode *inode, struct buffer_head *gdp_bh; int group_no; int goal_group; + ext2_grpblk_t grp_target_blk; /* blockgroup relative goal block */ + ext2_grpblk_t grp_alloc_blk; /* blockgroup-relative allocated block*/ ext2_fsblk_t ret_block; /* filesyetem-wide allocated block */ int bgi; /* blockgroup iteration index */ - int target_block; int performed_allocation = 0; ext2_grpblk_t free_blocks; /* number of free blocks in a group */ struct super_block *sb; @@ -1197,8 +1198,10 @@ int ext2_new_blocks(struct inode *inode, * reservation on that particular file) */ block_i = EXT2_I(inode)->i_block_alloc_info; - if (block_i && ((windowsz = block_i->rsv_window_node.rsv_goal_size) > 0)) { - my_rsv = &block_i->rsv_window_node; + if (block_i) { + windowsz = block_i->rsv_window_node.rsv_goal_size; + if (windowsz > 0) + my_rsv = &block_i->rsv_window_node; } if (!ext2_has_free_blocks(sbi)) { @@ -1230,14 +1233,15 @@ retry_alloc: my_rsv = NULL; if (free_blocks > 0) { - ret_block = ((goal - le32_to_cpu(es->s_first_data_block)) % + grp_target_blk = ((goal - le32_to_cpu(es->s_first_data_block)) % EXT2_BLOCKS_PER_GROUP(sb)); bitmap_bh = read_block_bitmap(sb, group_no); if (!bitmap_bh) goto io_error; - ret_block = ext2_try_to_allocate_with_rsv(sb, group_no, - bitmap_bh, ret_block, my_rsv, &num); - if (ret_block >= 0) + grp_alloc_blk = ext2_try_to_allocate_with_rsv(sb, group_no, + bitmap_bh, grp_target_blk, + my_rsv, &num); + if (grp_alloc_blk >= 0) goto allocated; } @@ -1273,9 +1277,9 @@ retry_alloc: /* * try to allocate block(s) from this group, without a goal(-1). */ - ret_block = ext2_try_to_allocate_with_rsv(sb, group_no, + grp_alloc_blk = ext2_try_to_allocate_with_rsv(sb, group_no, bitmap_bh, -1, my_rsv, &num); - if (ret_block >= 0) + if (grp_alloc_blk >= 0) goto allocated; } /* @@ -1299,25 +1303,20 @@ allocated: ext2_debug("using block group %d(%d)\n", group_no, gdp->bg_free_blocks_count); - target_block = ret_block + group_no * EXT2_BLOCKS_PER_GROUP(sb) - + le32_to_cpu(es->s_first_data_block); + ret_block = grp_alloc_blk + ext2_group_first_block_no(sb, group_no); - if (in_range(le32_to_cpu(gdp->bg_block_bitmap), target_block, num) || - in_range(le32_to_cpu(gdp->bg_inode_bitmap), target_block, num) || - in_range(target_block, le32_to_cpu(gdp->bg_inode_table), + if (in_range(le32_to_cpu(gdp->bg_block_bitmap), ret_block, num) || + in_range(le32_to_cpu(gdp->bg_inode_bitmap), ret_block, num) || + in_range(ret_block, le32_to_cpu(gdp->bg_inode_table), EXT2_SB(sb)->s_itb_per_group) || - in_range(target_block + num - 1, le32_to_cpu(gdp->bg_inode_table), + in_range(ret_block + num - 1, le32_to_cpu(gdp->bg_inode_table), EXT2_SB(sb)->s_itb_per_group)) ext2_error(sb, "ext2_new_blocks", "Allocating block in system zone - " - "blocks from %u, length %lu", target_block, num); + "blocks from %u, length %lu", ret_block, num); performed_allocation = 1; - - /* ret_block was blockgroup-relative. Now it becomes fs-relative */ - ret_block = target_block; - if (ret_block + num - 1 >= le32_to_cpu(es->s_blocks_count)) { ext2_error(sb, "ext2_new_blocks", "block("E2FSBLK") >= blocks count(%d) - " _ Patches currently in -mm which might be from akpm@xxxxxxxx are origin.patch setup_irq-better-mismatch-debugging.patch revert-pci-quirk-for-ibm-dock-ii-cardbus-controllers.patch ia64-irqs-use-name-not-typename.patch ia64-use-generic_handle_irq-fix.patch revert-fix-data-acess-error-in-dup_fd.patch fix-hugetlb-check-for-brk-entering-a-hugepage-region.patch hfs_fill_super-returns-success-even-if-no-root-inode-fix.patch git-acpi.patch video-sysfs-support-take-2-add-dev-argument-for-backlight_device_register.patch acpi-asus-s3-resume-fix.patch sony_apci-resume.patch video-sysfs-support-take-2-add-dev-argument-for-backlight_device_register-sony_acpi-fix.patch git-cpufreq-prep.patch git-cpufreq.patch git-powerpc.patch fix-gregkh-driver-sound-device.patch git-dvb.patch git-dvb-fixup.patch git-ia64.patch git-input.patch git-input-fixup.patch git-libata-all.patch sata_vsc-build-fix.patch via-pata-controller-xfer-fixes-fix.patch git-mtd.patch git-netdev-all.patch libphy-dont-do-that.patch update-smc91x-driver-with-arm-versatile-board-info.patch e1000-linkage-fix.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch git-net.patch net-uninline-skb_put.patch ioat-warning-fix.patch tidy-gregkh-pci-pci-check-szhi-when-sz-is-0-when-64-bit-iomem-bigger-than-4g.patch fix-gregkh-pci-pci-check-szhi-when-sz-is-0-when-64-bit-iomem-bigger-than-4g.patch fix-2-gregkh-pci-pci-check-szhi-when-sz-is-0-when-64-bit-iomem-bigger-than-4g.patch git-scsi-rc-fixes.patch revert-scsi-ips-soft-lockup-during-reset-initialization.patch scsi-ips-soft-lockup-during-reset-initialization-2.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch nokia-e70-is-an-unusual-device.patch git-watchdog.patch fix-x86_64-mm-patch-inline-replacements-for.patch revert-x86_64-mm-try-multiple-timer-pins.patch revert-x86_64-mm-try-multiple-timer-pins-wanring-fix.patch fix-x86_64-mm-i386-reloc-cleanup-align.patch arch-i386-kernel-io_apicc-handle-a-negative-return-value.patch touchkit-ps-2-touchscreen-driver.patch get-rid-of-zone_table.patch new-scheme-to-preempt-swap-token-tidy.patch balance_pdgat-cleanup.patch radix-tree-rcu-lockless-readside.patch acx1xx-wireless-driver.patch security-introduce-file-caps-tweaks.patch security-introduce-file-caps-warning-fix.patch swsusp-add-resume_offset-command-line-parameter-rev-2.patch add-include-linux-freezerh-and-move-definitions-from-ueagle-fix.patch cciss-set-sector_size-to-2048-for-performance-tidy.patch deprecate-smbfs-in-favour-of-cifs.patch edac-new-opteron-athlon64-memory-controller-driver.patch kbuild-dont-put-temp-files-in-the-source-tree.patch lockdep-annotate-nfs-nfsd-in-kernel-sockets-tidy.patch drivers-add-lcd-support-3-Kconfig-fix.patch probe_kernel_address-needs-to-do-set_fs.patch slab-use-probe_kernel_address.patch lockdep-spin_lock_irqsave_nested-fix.patch lockdep-spin_lock_irqsave_nested-fix-2.patch aio-use-prepare_to_wait.patch exar-quad-port-serial-fix.patch vfs_getattr-remove-dead-code.patch ext3-uninline-large-functions.patch ext4-uninline-large-functions.patch uninline-module_put.patch sleep-profiling-fixes.patch sleep-profiling-fix.patch debug-workqueue-locking-sanity-fix.patch pcengines-wrap-led-support-fix.patch driver-base-memoryc-remove-warnings-of.patch remove-kernel-syscalls-x86_64-fix.patch protect-ext2-ioctl-modifying-append_only-immutable-etc-with-i_mutex.patch remove-hash_highmem.patch ext2-reservations.patch ext2-reservations-bring-ext2-reservations-code-in-line-with-latest-ext3-fix.patch pktcdvd-bio-write-congestion-using-blk_congestion_wait-fix.patch bug-test-1.patch fsstack-introduce-fsstack_copy_attrinode_-tidy.patch log2-implement-a-general-integer-log2-facility-in-the-kernel-fix.patch log2-implement-a-general-integer-log2-facility-in-the-kernel-vs-git-cryptodev.patch log2-implement-a-general-integer-log2-facility-in-the-kernel-ppc-fix.patch add-process_session-helper-routine-deprecate-old-field-tidy.patch add-process_session-helper-routine-deprecate-old-field-fix-warnings.patch add-process_session-helper-routine-deprecate-old-field-fix-warnings-2.patch fs-cache-provide-a-filesystem-specific-syncable-page-bit-ext4.patch fs-cache-make-kafs-use-fs-cache-fix.patch fs-cache-make-kafs-use-fs-cache-vs-streamline-generic_file_-interfaces-and-filemap.patch nfs-use-local-caching-12-fix.patch fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-log2-fix.patch mxser-session-warning-fix.patch tty-switch-to-ktermios-and-new-framework-warning-fix.patch tty-switch-to-ktermios-bluetooth-fix.patch tty_ioctl-use-termios-for-the-old-structure-and-termios2-fix.patch char-istallion-correct-fail-paths-fix.patch drivers-isdn-handcrafted-min-max-macro-removal-fix.patch fault-injection-capabilities-infrastructure-tidy.patch fault-injection-capabilities-infrastructure-tweaks.patch fault-injection-Kconfig-cleanup.patch fault-injection-stacktrace-filtering-kconfig-fix.patch kernel-schedc-whitespace-cleanups-more.patch swap_prefetch-vs-zoned-counters.patch add-include-linux-freezerh-and-move-definitions-from-prefetch.patch readahead-sysctl-parameters.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch resier4-add-include-linux-freezerh-and-move-definitions-from.patch make-kmem_cache_destroy-return-void-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch reiser4-temp-fix.patch hpt3xx-rework-rate-filtering-tidy.patch various-fbdev-files-mark-structs-fix.patch md-allow-reads-that-have-bypassed-the-cache-to-be-retried-on-failure-fix.patch statistics-infrastructure-fix-buffer-overflow-in-histogram-with-linear-tidy.patch extend-notifier_call_chain-to-count-nr_calls-made.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch gtod-persistent-clock-support-i386.patch updated-hrtimers-state-tracking.patch updated-i386-convert-to-clock-event-devices.patch updated-i386-convert-to-clock-event-devices-fix.patch updated-gtod-mark-tsc-unusable-for-highres-timers.patch round_jiffies-infrastructure-fix.patch clocksource-small-cleanup-2-fix.patch kevent_user_wait-retval-fix.patch kevent-v23-socket-notifications-fix-again.patch kevent-timer-notifications-fix.patch nr_blockdev_pages-in_interrupt-warning.patch device-suspend-debug.patch mutex-subsystem-synchro-test-module-fix.patch slab-leaks3-default-y.patch x86-kmap_atomic-debugging.patch restore-rogue-readahead-printk.patch put_bh-debug.patch e1000-printk-warning-fixes.patch acpi_format_exception-debug.patch jmicron-warning-fix.patch squash-ipc-warnings.patch squash-udf-warnings.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html