| Submitter | Luis Henriques |
|---|---|
| Date | March 6, 2013, 3:14 p.m. |
| Message ID | <1362582871-25468-1-git-send-email-luis.henriques@canonical.com> |
| Download | mbox | patch |
| Permalink | /patch/225524/ |
| State | New |
| Headers | show |
Comments
Patch
diff --git a/drivers/md/md.c b/drivers/md/md.c index 97edf9e..b7a551d 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -344,6 +344,10 @@ static void md_make_request(struct request_queue *q, struct bio *bio) bio_io_error(bio); return; } + if (mddev->ro == 1 && unlikely(rw == WRITE)) { + bio_endio(bio, bio_sectors(bio) == 0 ? 0 : -EROFS); + return; + } smp_rmb(); /* Ensure implications of 'active' are visible */ rcu_read_lock(); if (mddev->suspended) {
This is a note to let you know that I have just added a patch titled md: protect against crash upon fsync on ro array to the linux-3.5.y-queue branch of the 3.5.y.z extended stable tree which can be found at: http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.5.y-queue If you, or anyone else, feels it should not be added to this tree, please reply to this email. For more information about the 3.5.y.z tree, see https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable Thanks. -Luis ------ From 7575be628a869e4bf9afd0b1e26cba0610edc3e8 Mon Sep 17 00:00:00 2001 From: Sebastian Riemer <sebastian.riemer@profitbricks.com> Date: Thu, 21 Feb 2013 13:28:09 +1100 Subject: [PATCH] md: protect against crash upon fsync on ro array commit bbfa57c0f2243a7c31fd248d22e9861a2802cad5 upstream. If an fsync occurs on a read-only array, we need to send a completion for the IO and may not increment the active IO count. Otherwise, we hit a bug trace and can't stop the MD array anymore. By advice of Christoph Hellwig we return success upon a flush request but we return -EROFS for other writes. We detect flush requests by checking if the bio has zero sectors. This patch is suitable to any -stable kernel to which it applies. Cc: Christoph Hellwig <hch@infradead.org> Cc: Ben Hutchings <ben@decadent.org.uk> Cc: NeilBrown <neilb@suse.de> Signed-off-by: Sebastian Riemer <sebastian.riemer@profitbricks.com> Reported-by: Ben Hutchings <ben@decadent.org.uk> Acked-by: Paul Menzel <paulepanter@users.sourceforge.net> Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Luis Henriques <luis.henriques@canonical.com> --- drivers/md/md.c | 4 ++++ 1 file changed, 4 insertions(+) -- 1.8.1.2