- readahead-context-based-method-locking-fix-2.patch removed from -mm tree

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

 



The patch titled
     readahead-context-based-method-locking-fix-2
has been removed from the -mm tree.  Its filename was
     readahead-context-based-method-locking-fix-2.patch

This patch was dropped because it was folded into readahead-context-based-method.patch

------------------------------------------------------
Subject: readahead-context-based-method-locking-fix-2
From: Andrew Morton <akpm@xxxxxxxx>

Some locking was missing around radix-tree lookups.

Cc: Wu Fengguang <wfg@xxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 mm/readahead.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff -puN mm/readahead.c~readahead-context-based-method-locking-fix-2 mm/readahead.c
--- a/mm/readahead.c~readahead-context-based-method-locking-fix-2
+++ a/mm/readahead.c
@@ -1305,14 +1305,15 @@ try_context_based_readahead(struct addre
 	 * Case 1: we have a current page.
 	 * 	   Search forward for a nearby hole.
 	 */
+	read_lock_irq(&mapping->tree_lock);
 	if (page) {
 		unsigned long max_scan = ra_max + ra_min;
 		start = radix_tree_scan_hole(&mapping->page_tree,
 							offset, max_scan);
 		if (start != 0 && start - offset < max_scan)
 			goto has_history_pages;
-		else
-			return -1;
+		read_unlock_irq(&mapping->tree_lock);
+		return -1;
 	}
 
 	/* Case 2: current page is missing; previous page is present.
@@ -1332,7 +1333,7 @@ try_context_based_readahead(struct addre
 	 * It can be the early stage of semi-sequential reads(interleaved/nfsd),
 	 * or an ugly random one.  So be conservative.
 	 */
-	if (readahead_hit_rate && probe_page(mapping, offset - 1)) {
+	if (readahead_hit_rate && __probe_page(mapping, offset - 1)) {
 		start = offset;
 		if (ra_min > 2 * readahead_hit_rate)
 		    ra_min = 2 * readahead_hit_rate;
@@ -1352,10 +1353,12 @@ try_context_based_readahead(struct addre
 			goto has_history_pages;
 		}
 	}
+	read_unlock_irq(&mapping->tree_lock);
 
 	return 0;
 
 has_history_pages:
+	read_unlock_irq(&mapping->tree_lock);
 	ra_size = count_history_pages(mapping, ra, offset, ra_max);
 	if (!ra_size)
 		return 0;
_

Patches currently in -mm which might be from akpm@xxxxxxxx are

origin.patch
macintosh-mangle-caps-lock-events-on-adb-keyboards.patch
git-ia64.patch
git-ieee1394.patch
sata_nv-add-back-some-verbosity-into-adma-error_handler.patch
git-ubi.patch
update-smc91x-driver-with-arm-versatile-board-info.patch
drivers-net-ns83820c-add-paramter-to-disable-auto.patch
net-uninline-skb_put.patch
git-ioat-vs-git-md-accel.patch
ioat-warning-fix.patch
drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch
scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch
git-ipwireless_cs.patch
arch-i386-kernel-alternativec-dont-include-bugsh.patch
deprecate-smbfs-in-favour-of-cifs.patch
block_write_full_page-handle-enospc.patch
filesystem-disk-errors-at-boot-time-caused-by-probe.patch
merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch
sync_sb_inodes-propagate-errors.patch
mips-convert-to-use-shared-apm-emulation-fix.patch
schedule_on_each_cpu-use-preempt_disable.patch
implement-flush_work-sanity.patch
implement-flush_work_keventd.patch
flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch
aio-use-flush_work.patch
kblockd-use-flush_work.patch
relayfs-use-flush_keventd_work.patch
tg3-use-flush_keventd_work.patch
e1000-use-flush_keventd_work.patch
libata-use-flush_work.patch
phy-use-flush_work.patch
extend-notifier_call_chain-to-count-nr_calls-made.patch
eliminate-lock_cpu_hotplug-in-kernel-schedc.patch
move-page-writeback-acounting-out-of-macros.patch
per-backing_dev-dirty-and-writeback-page-accounting.patch
ext2-reservations.patch
edac-new-opteron-athlon64-memory-controller-driver.patch
aio-is-unlikely.patch
mm-implement-swap-prefetching.patch
rcu-preemptible-rcu.patch
readahead-kconfig-options.patch
readahead-minmax_ra_pages.patch
readahead-sysctl-parameters.patch
readahead-context-based-method.patch
readahead-context-based-method-locking-fix-2.patch
readahead-call-scheme-ifdef-fix.patch
readahead-call-scheme-build-fix.patch
readahead-nfsd-case-fix.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
reiser4-kmem_cache_t-removal.patch
reiser4-test_clear_page_dirty.patch
statistics-infrastructure-fix-buffer-overflow-in-histogram-with-linear-tidy.patch
slim-main-include-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
vdso-print-fatal-signals-use-ctl_unnumbered.patch
restore-rogue-readahead-printk.patch
put_bh-debug.patch
e1000-printk-warning-fixes.patch
acpi_format_exception-debug.patch
add-debugging-aid-for-memory-initialisation-problems-fix.patch
kmap_atomic-debugging.patch
shrink_slab-handle-bad-shrinkers.patch
ia64-enable-config_debug_spinlock_sleep.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