X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fmtd%2Fubi%2Feba.c;fp=drivers%2Fmtd%2Fubi%2Feba.c;h=2ff34923e51d74d91d319a52da06e041cae6ef3b;hb=c63a491d3737aec3c47c5e785d87021752ad9fa6;hp=b2b0f29bdc53b421be451f9b9343b547e50a0cc4;hpb=cae0a77125467c42f0918e78457913ee4a2f925b;p=linux-2.6-omap-h63xx.git diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c index b2b0f29bdc5..2ff34923e51 100644 --- a/drivers/mtd/ubi/eba.c +++ b/drivers/mtd/ubi/eba.c @@ -797,7 +797,7 @@ write_error: /* * ubi_eba_atomic_leb_change - change logical eraseblock atomically. * @ubi: UBI device description object - * @vol: volume escription object + * @vol: volume description object * @lnum: logical eraseblock number * @buf: data to write * @len: how many bytes to write @@ -955,6 +955,12 @@ int ubi_eba_copy_leb(struct ubi_device *ubi, int from, int to, /* * We may race with volume deletion/re-size, so we have to hold * @ubi->volumes_lock. + * + * Note, it is not a problem if we race with volume deletion or re-size + * here. If the volume is deleted or re-sized while we are moving an + * eraseblock which belongs to this volume, we'll end up with finding + * out that this LEB was unmapped at the end (see WL), and drop this + * PEB. */ spin_lock(&ubi->volumes_lock); vol = ubi->volumes[idx];