summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.osdl.org>2003-10-26 17:16:45 -0800
committerLinus Torvalds <torvalds@home.osdl.org>2003-10-26 17:16:45 -0800
commitb0200965681b6fa3d13f4c0f07565e28eda5c1d1 (patch)
treef53e04ff7bd9d22af512946fc90d2d285961d37d
parent1cfab8d7f701de0015eb8404cff3a96b186a3efc (diff)
parent25f532b9218d9016be36cdd3cf9fa841d3826ba3 (diff)
Merge bk://kernel.bkbits.net/davem/net-2.5
into home.osdl.org:/home/torvalds/v2.5/linux
-rw-r--r--drivers/md/dm-table.c12
-rw-r--r--include/linux/preempt.h2
2 files changed, 13 insertions, 1 deletions
diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
index f66599634582..46eaee908b40 100644
--- a/drivers/md/dm-table.c
+++ b/drivers/md/dm-table.c
@@ -489,6 +489,18 @@ int dm_get_device(struct dm_target *ti, const char *path, sector_t start,
rs->max_sectors =
min_not_zero(rs->max_sectors, q->max_sectors);
+ /* FIXME: Device-Mapper on top of RAID-0 breaks because DM
+ * currently doesn't honor MD's merge_bvec_fn routine.
+ * In this case, we'll force DM to use PAGE_SIZE or
+ * smaller I/O, just to be safe. A better fix is in the
+ * works, but add this for the time being so it will at
+ * least operate correctly.
+ */
+ if (q->merge_bvec_fn)
+ rs->max_sectors =
+ min_not_zero(rs->max_sectors,
+ (unsigned short)(PAGE_SIZE >> 9));
+
rs->max_phys_segments =
min_not_zero(rs->max_phys_segments,
q->max_phys_segments);
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
index 1b227b3c8ccb..0bd40fb2048f 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -32,8 +32,8 @@ do { \
#define preempt_enable_no_resched() \
do { \
- dec_preempt_count(); \
barrier(); \
+ dec_preempt_count(); \
} while (0)
#define preempt_check_resched() \