]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
drbd: drop drbd_md_flush
authorLars Ellenberg <lars.ellenberg@linbit.com>
Fri, 25 Apr 2014 11:27:50 +0000 (13:27 +0200)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 10 Jul 2014 16:35:07 +0000 (18:35 +0200)
The only user of drbd_md_flush was bm_rw(),
and it is always followed by either a drbd_md_sync(),
or an al_write_transaction(), which, if so configured,
both end up submiting a FLUSH|FUA request anyways.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
drivers/block/drbd/drbd_bitmap.c
drivers/block/drbd/drbd_int.h

index dab6923493cb122e885790b6354ef8d972643d18..29af96038e6940f34578736d327ba3108abc99e9 100644 (file)
@@ -1155,9 +1155,7 @@ static int bm_rw(struct drbd_device *device, int rw, unsigned flags, unsigned la
                err = -EIO; /* Disk timeout/force-detach during IO... */
 
        now = jiffies;
-       if (rw == WRITE) {
-               drbd_md_flush(device);
-       } else /* rw == READ */ {
+       if (rw == READ) {
                b->bm_set = bm_count_bits(b);
                drbd_info(device, "recounting of set bits took additional %lu jiffies\n",
                     jiffies - now);
index a71f8bb9dc80340c0d1774d23f92bce41c0e99cf..d85f43c9ef56f2606ca45a2dd9e3326c6ff99734 100644 (file)
@@ -2182,25 +2182,6 @@ static inline int drbd_queue_order_type(struct drbd_device *device)
        return QUEUE_ORDERED_NONE;
 }
 
-static inline void drbd_md_flush(struct drbd_device *device)
-{
-       int r;
-
-       if (device->ldev == NULL) {
-               drbd_warn(device, "device->ldev == NULL in drbd_md_flush\n");
-               return;
-       }
-
-       if (test_bit(MD_NO_FUA, &device->flags))
-               return;
-
-       r = blkdev_issue_flush(device->ldev->md_bdev, GFP_NOIO, NULL);
-       if (r) {
-               set_bit(MD_NO_FUA, &device->flags);
-               drbd_err(device, "meta data flush failed with status %d, disabling md-flushes\n", r);
-       }
-}
-
 static inline struct drbd_connection *first_connection(struct drbd_resource *resource)
 {
        return list_first_entry_or_null(&resource->connections,