+ ext2-reservations-fix-42.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled
     ext2-reservations-fix-42
has been added to the -mm tree.  Its filename is
     ext2-reservations-fix-42.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
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
ia64-irqs-use-name-not-typename.patch
ia64-use-generic_handle_irq-fix.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-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
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
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
pre-x86_64-mm-i386-reloc-abssym.patch
post-x86_64-mm-i386-reloc-abssym.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
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
add-numa-node-information-to-struct-device-tidy.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
elf-fix-kcore-note-size-calculation-fix.patch
reiserfs-add-missing-d-cache-flushing-tweak.patch
ext2-reservations.patch
ext2-reservations-fix-42.patch
ext2-reservations-bitmap_search_next_usable_block-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
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-fb-modedb-uses-wrong-default_mode-fix.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

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux