From: Richard Weinberger <richard@nod.at>
To: linux-mtd@lists.infradead.org
Cc: linux-kernel@vger.kernel.org, tglx@linutronix.de,
Heinz.Egger@linutronix.de, artem.bityutskiy@linux.intel.com,
tim.bird@am.sony.com, Richard Weinberger <richard@nod.at>
Subject: [PATCH 06/10] UBI: Wire-up ->fm_sem
Date: Wed, 26 Sep 2012 17:51:46 +0200 [thread overview]
Message-ID: <1348674710-102885-7-git-send-email-richard@nod.at> (raw)
In-Reply-To: <1348674710-102885-1-git-send-email-richard@nod.at>
Fastmap uses ->fm_sem to stop EBA changes while writing
a new fastmap.
Signed-off-by: Richard Weinberger <richard@nod.at>
---
drivers/mtd/ubi/eba.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c
index d56ae1c..0e11671 100644
--- a/drivers/mtd/ubi/eba.c
+++ b/drivers/mtd/ubi/eba.c
@@ -340,7 +340,9 @@ int ubi_eba_unmap_leb(struct ubi_device *ubi, struct ubi_volume *vol,
dbg_eba("erase LEB %d:%d, PEB %d", vol_id, lnum, pnum);
+ down_read(&ubi->fm_sem);
vol->eba_tbl[lnum] = UBI_LEB_UNMAPPED;
+ up_read(&ubi->fm_sem);
err = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 0);
out_unlock:
@@ -548,7 +550,9 @@ retry:
mutex_unlock(&ubi->buf_mutex);
ubi_free_vid_hdr(ubi, vid_hdr);
+ down_read(&ubi->fm_sem);
vol->eba_tbl[lnum] = new_pnum;
+ up_read(&ubi->fm_sem);
ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1);
ubi_msg("data was successfully recovered");
@@ -665,7 +669,9 @@ retry:
}
}
+ down_read(&ubi->fm_sem);
vol->eba_tbl[lnum] = pnum;
+ up_read(&ubi->fm_sem);
leb_write_unlock(ubi, vol_id, lnum);
ubi_free_vid_hdr(ubi, vid_hdr);
@@ -783,7 +789,9 @@ retry:
}
ubi_assert(vol->eba_tbl[lnum] < 0);
+ down_read(&ubi->fm_sem);
vol->eba_tbl[lnum] = pnum;
+ up_read(&ubi->fm_sem);
leb_write_unlock(ubi, vol_id, lnum);
ubi_free_vid_hdr(ubi, vid_hdr);
@@ -904,7 +912,9 @@ retry:
goto out_leb_unlock;
}
+ down_read(&ubi->fm_sem);
vol->eba_tbl[lnum] = pnum;
+ up_read(&ubi->fm_sem);
out_leb_unlock:
leb_write_unlock(ubi, vol_id, lnum);
@@ -1151,7 +1161,9 @@ int ubi_eba_copy_leb(struct ubi_device *ubi, int from, int to,
}
ubi_assert(vol->eba_tbl[lnum] == from);
+ down_read(&ubi->fm_sem);
vol->eba_tbl[lnum] = to;
+ up_read(&ubi->fm_sem);
out_unlock_buf:
mutex_unlock(&ubi->buf_mutex);
--
1.7.6.5
next prev parent reply other threads:[~2012-09-26 15:53 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-26 15:51 UBI: Fastmap request for inclusion (v19) Richard Weinberger
2012-09-26 15:51 ` [PATCH 01/10] UBI: Add fastmap on-flash data structures Richard Weinberger
2012-09-26 15:51 ` [PATCH 02/10] UBI: Add fastmap stuff to ubi.h Richard Weinberger
2012-09-26 15:51 ` [PATCH 03/10] UBI: Export next_sqnum() Richard Weinberger
2012-09-26 15:51 ` [PATCH 04/10] UBI: Add self_check_eba() Richard Weinberger
2012-09-26 15:51 ` [PATCH 05/10] UBI: Add fastmap bits to build.c Richard Weinberger
2012-09-26 15:51 ` Richard Weinberger [this message]
2012-09-26 15:51 ` [PATCH 07/10] UBI: Add fastmap stuff to attach.c Richard Weinberger
2012-09-26 15:51 ` [PATCH 08/10] UBI: Add fastmap support to the WL sub-system Richard Weinberger
2012-09-26 15:51 ` [PATCH 09/10] UBI: Add fastmap core Richard Weinberger
2012-09-26 15:51 ` [PATCH 10/10] UBI: Wire-up fastmap Richard Weinberger
2012-09-27 22:18 ` UBI: Fastmap request for inclusion (v19) richard -rw- weinberger
2012-10-03 8:25 ` Artem Bityutskiy
2012-10-03 8:36 ` Richard Weinberger
2012-10-03 8:43 ` Artem Bityutskiy
2012-10-03 8:44 ` Artem Bityutskiy
2012-10-03 9:03 ` Richard Weinberger
2012-10-03 9:30 ` Artem Bityutskiy
2012-10-03 9:32 ` Richard Weinberger
2012-10-03 11:05 ` Artem Bityutskiy
2012-10-03 11:18 ` Artem Bityutskiy
2012-10-03 12:13 ` Artem Bityutskiy
-- strict thread matches above, loose matches on Subject: below --
2012-09-24 18:31 UBI: Fastmap request for inclusion (v18) Richard Weinberger
2012-09-24 18:31 ` [PATCH 06/10] UBI: Wire-up ->fm_sem Richard Weinberger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1348674710-102885-7-git-send-email-richard@nod.at \
--to=richard@nod.at \
--cc=Heinz.Egger@linutronix.de \
--cc=artem.bityutskiy@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=tglx@linutronix.de \
--cc=tim.bird@am.sony.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®