netfilter: xt_TCPMSS: SYN packets are allowed to contain data
[safe/jmp/linux-2.6] / block / blk-settings.c
index 7f986ca..6ae118d 100644 (file)
@@ -8,6 +8,7 @@
 #include <linux/blkdev.h>
 #include <linux/bootmem.h>     /* for max_pfn/max_low_pfn */
 #include <linux/gcd.h>
+#include <linux/jiffies.h>
 
 #include "blk.h"
 
@@ -100,6 +101,7 @@ void blk_set_default_limits(struct queue_limits *lim)
        lim->discard_granularity = 0;
        lim->discard_alignment = 0;
        lim->discard_misaligned = 0;
+       lim->discard_zeroes_data = -1;
        lim->logical_block_size = lim->physical_block_size = lim->io_min = 512;
        lim->bounce_pfn = (unsigned long)(BLK_BOUNCE_ANY >> PAGE_SHIFT);
        lim->alignment_offset = 0;
@@ -144,7 +146,7 @@ void blk_queue_make_request(struct request_queue *q, make_request_fn *mfn)
        q->nr_batching = BLK_BATCH_REQ;
 
        q->unplug_thresh = 4;           /* hmm */
-       q->unplug_delay = (3 * HZ) / 1000;      /* 3 milliseconds */
+       q->unplug_delay = msecs_to_jiffies(3);  /* 3 milliseconds */
        if (q->unplug_delay == 0)
                q->unplug_delay = 1;
 
@@ -543,6 +545,7 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b,
 
        t->io_min = max(t->io_min, b->io_min);
        t->no_cluster |= b->no_cluster;
+       t->discard_zeroes_data &= b->discard_zeroes_data;
 
        /* Bottom device offset aligned? */
        if (offset &&
@@ -551,11 +554,18 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b,
                ret = -1;
        }
 
+       /*
+        * Temporarily disable discard granularity. It's currently buggy
+        * since we default to 0 for discard_granularity, hence this
+        * "failure" will always trigger for non-zero offsets.
+        */
+#if 0
        if (offset &&
            (offset & (b->discard_granularity - 1)) != b->discard_alignment) {
                t->discard_misaligned = 1;
                ret = -1;
        }
+#endif
 
        /* If top has no alignment offset, inherit from bottom */
        if (!t->alignment_offset)