The patch titled ext2-reservations-fix-42 has been removed from the -mm tree. Its filename was ext2-reservations-fix-42.patch This patch was dropped because it was folded into ext2-reservations.patch ------------------------------------------------------ Subject: ext2-reservations-fix-42 From: Andrew Morton <akpm@xxxxxxxx> Sync various ext3 things into ext2. No bugs fixed, afaict. 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 | 33 +++++++++++++++------------------ include/linux/ext2_fs_sb.h | 8 ++++---- 2 files changed, 19 insertions(+), 22 deletions(-) diff -puN fs/ext2/balloc.c~ext2-reservations-fix-42 fs/ext2/balloc.c --- a/fs/ext2/balloc.c~ext2-reservations-fix-42 +++ a/fs/ext2/balloc.c @@ -159,8 +159,8 @@ restart: rsv = list_entry(n, struct ext2_reserve_window_node, rsv_node); if (verbose) printk("reservation window 0x%p " - "start: %d, end: %d\n", - rsv, rsv->rsv_start, rsv->rsv_end); + "start: %lu, end: %lu\n", + rsv, rsv->rsv_start, rsv->rsv_end); if (rsv->rsv_start && rsv->rsv_start >= rsv->rsv_end) { printk("Bad reservation %p (start >= end)\n", rsv); @@ -514,9 +514,8 @@ error_return: * @bh: bufferhead contains the block group bitmap * @maxblocks: the ending block (group relative) of the reservation * - * The bitmap search --- search forward alternately through the actual - * bitmap on disk and the last-committed copy in journal, until we find a - * bit free in both bitmaps. + * The bitmap search --- search forward through the actual bitmap on disk until + * we find a bit free. */ static ext2_grpblk_t bitmap_search_next_usable_block(ext2_grpblk_t start, struct buffer_head *bh, @@ -926,10 +925,8 @@ retry: * Before we reserve this reservable space, we need * to make sure there is at least a free block inside this region. * - * searching the first free bit on the block bitmap and copy of - * last committed bitmap alternatively, until we found a allocatable - * block. Search start from the start block of the reservable space - * we just found. + * Search the first free bit on the block bitmap. Search starts from + * the start block of the reservable space we just found. */ spin_unlock(rsv_lock); first_free_block = bitmap_search_next_usable_block( @@ -1040,8 +1037,8 @@ ext2_try_to_allocate_with_rsv(struct sup struct ext2_reserve_window_node * my_rsv, unsigned long *count) { - ext2_fsblk_t group_first_block; - int ret = 0; + ext2_fsblk_t group_first_block, group_last_block; + ext2_grpblk_t ret = 0; unsigned long num = *count; /* @@ -1050,7 +1047,7 @@ ext2_try_to_allocate_with_rsv(struct sup * or the file is not a regular file * or last attempt to allocate a block with reservation turned on failed */ - if (my_rsv == NULL ) { + if (my_rsv == NULL) { return ext2_try_to_allocate(sb, group, bitmap_bh, grp_goal, count, NULL); } @@ -1061,6 +1058,7 @@ ext2_try_to_allocate_with_rsv(struct sup * first block is the block number of the first block in this group */ group_first_block = ext2_group_first_block_no(sb, group); + group_last_block = group_first_block + (EXT2_BLOCKS_PER_GROUP(sb) - 1); /* * Basically we will allocate a new block from inode's reservation @@ -1079,8 +1077,8 @@ ext2_try_to_allocate_with_rsv(struct sup */ while (1) { if (rsv_is_empty(&my_rsv->rsv_window) || (ret < 0) || - !goal_in_my_reservation(&my_rsv->rsv_window, grp_goal, - group, sb)) { + !goal_in_my_reservation(&my_rsv->rsv_window, + grp_goal, group, sb)) { if (my_rsv->rsv_goal_size < *count) my_rsv->rsv_goal_size = *count; ret = alloc_new_reservation(my_rsv, grp_goal, sb, @@ -1092,13 +1090,12 @@ ext2_try_to_allocate_with_rsv(struct sup grp_goal, group, sb)) grp_goal = -1; } else if (grp_goal > 0 && - (my_rsv->rsv_end - grp_goal + 1) < *count) + (my_rsv->rsv_end-grp_goal+1) < *count) try_to_extend_reservation(my_rsv, sb, *count-my_rsv->rsv_end + grp_goal - 1); - if ((my_rsv->rsv_start >= - group_first_block + EXT2_BLOCKS_PER_GROUP(sb)) - || (my_rsv->rsv_end < group_first_block)) { + if ((my_rsv->rsv_start > group_last_block) || + (my_rsv->rsv_end < group_first_block)) { rsv_window_dump(&EXT2_SB(sb)->s_rsv_window_root, 1); BUG(); } diff -puN include/linux/ext2_fs_sb.h~ext2-reservations-fix-42 include/linux/ext2_fs_sb.h --- a/include/linux/ext2_fs_sb.h~ext2-reservations-fix-42 +++ a/include/linux/ext2_fs_sb.h @@ -31,8 +31,8 @@ typedef unsigned long ext2_fsblk_t; #define E2FSBLK "%lu" struct ext2_reserve_window { - __u32 _rsv_start; /* First byte reserved */ - __u32 _rsv_end; /* Last byte reserved or 0 */ + ext2_fsblk_t _rsv_start; /* First byte reserved */ + ext2_fsblk_t _rsv_end; /* Last byte reserved or 0 */ }; struct ext2_reserve_window_node { @@ -51,7 +51,7 @@ struct ext2_block_alloc_info { * most-recently-allocated block in this file. * We use this for detecting linearly ascending allocation requests. */ - __u32 last_alloc_logical_block; + __u32 last_alloc_logical_block; /* * Was i_next_alloc_goal in ext2_inode_info * is the *physical* companion to i_next_alloc_block. @@ -59,7 +59,7 @@ struct ext2_block_alloc_info { * allocated to this file. This give us the goal (target) for the next * allocation when we detect linearly ascending requests. */ - __u32 last_alloc_physical_block; + ext2_fsblk_t last_alloc_physical_block; }; #define rsv_start rsv_window._rsv_start _ Patches currently in -mm which might be from akpm@xxxxxxxx are origin.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-alsa-fixup.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-gfs2-nmw.patch git-ia64.patch git-input.patch git-input-fixup.patch git-libata-all.patch via-pata-controller-xfer-fixes-fix.patch git-mtd.patch git-netdev-all.patch git-netdev-all-fixup.patch libphy-dont-do-that.patch update-smc91x-driver-with-arm-versatile-board-info.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 pci-fix-multiple-problems-with-via-hardware-warning-fix.patch git-scsi-misc.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch git-sas-fixup.patch nokia-e70-is-an-unusual-device.patch git-watchdog.patch pre-x86_64-mm-i386-reloc-abssym.patch post-x86_64-mm-i386-reloc-abssym.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 add-numa-node-information-to-struct-device-tidy.patch node-aware-skb-allocation-fix-for-device-tree-changes.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 add-include-linux-freezerh-and-move-definitions-from-ucb1400_ts-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 elf-fix-kcore-note-size-calculation-fix.patch reiserfs-add-missing-d-cache-flushing-tweak.patch io-accounting-remove-current-io-accounting.patch io-accounting-core-statistics.patch io-accounting-core-statistics-fix.patch clean-up-__set_page_dirty_nobuffers.patch io-accounting-write-accounting.patch io-accounting-write-cancel-accounting.patch io-accounting-read-accounting.patch io-accounting-read-accounting-nfs-fix.patch io-accounting-read-accounting-cifs-fix.patch io-accounting-metadata-read-accounting.patch io-accounting-direct-io.patch io-accounting-report-in-procfs.patch cleanup-taskstatsh.patch io-accounting-via-taskstats.patch getdelays-various-fixes.patch io-accounting-add-to-getdelays.patch ext2-reservations.patch ext2-reservations-fix-42.patch ext2-reservations-fix-ext2_new_blocks-type.patch ext2-reservations-fix-ext2_new_block-type.patch ext2-reservations-add-truncate_mutex.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 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-minmax_ra_pages.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 video-get-the-default-mode-from-the-right-database.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