diff options
author | H. Peter Anvin <hpa@zytor.com> | 2009-12-11 10:57:42 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-12-11 10:57:42 -0800 |
commit | 5c6baba84e1ac6a79b266b40e17e692aab6604a1 (patch) | |
tree | 6ba34db1109107023d753dd9fd5c359b3b990a04 /drivers/mtd/ubi/upd.c | |
parent | 893f38d144a4d96d2483cd7c3801d26e1b2c23e9 (diff) | |
parent | 3ef884b4c04e857c283cc77ca70ad8f638d94b0e (diff) | |
download | kernel-crypto-5c6baba84e1ac6a79b266b40e17e692aab6604a1.tar.gz kernel-crypto-5c6baba84e1ac6a79b266b40e17e692aab6604a1.tar.xz kernel-crypto-5c6baba84e1ac6a79b266b40e17e692aab6604a1.zip |
Merge commit 'linus/master' into x86/urgent
Diffstat (limited to 'drivers/mtd/ubi/upd.c')
-rw-r--r-- | drivers/mtd/ubi/upd.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/mtd/ubi/upd.c b/drivers/mtd/ubi/upd.c index 74fdc40c862..c1d7b880c79 100644 --- a/drivers/mtd/ubi/upd.c +++ b/drivers/mtd/ubi/upd.c @@ -147,12 +147,14 @@ int ubi_start_update(struct ubi_device *ubi, struct ubi_volume *vol, } if (bytes == 0) { + err = ubi_wl_flush(ubi); + if (err) + return err; + err = clear_update_marker(ubi, vol, 0); if (err) return err; - err = ubi_wl_flush(ubi); - if (!err) - vol->updating = 0; + vol->updating = 0; } vol->upd_buf = vmalloc(ubi->leb_size); @@ -362,16 +364,16 @@ int ubi_more_update_data(struct ubi_device *ubi, struct ubi_volume *vol, ubi_assert(vol->upd_received <= vol->upd_bytes); if (vol->upd_received == vol->upd_bytes) { + err = ubi_wl_flush(ubi); + if (err) + return err; /* The update is finished, clear the update marker */ err = clear_update_marker(ubi, vol, vol->upd_bytes); if (err) return err; - err = ubi_wl_flush(ubi); - if (err == 0) { - vol->updating = 0; - err = to_write; - vfree(vol->upd_buf); - } + vol->updating = 0; + err = to_write; + vfree(vol->upd_buf); } return err; |