UBI: release locks in check_corruption()
PATCH 1/1 UBI: release locks in check_corruption()
Commit 45aafd32996e27 "UBI: tighten the corrupted PEB criteria" introduced some return paths that didn't release the ubi->buf_mutex;
Signed-off-by Dan Carpenter <[email protected]>
drivers/mtd/ubi/scan.c +9 -7
@@ -787,16 +787,15 @@ static int check_corruption(struct ubi_device *ubi, struct ubi_vid_hdr *vid_hdr,* erased, so it became unstable and corrupted, and should be * erased. */ -return 0 ; + err =0 ; + goto out_unlock; }if (err) -return err; + goto out_unlock; -if (ubi_check_pattern (ubi->peb_buf1,0xFF , ubi->leb_size)) { -mutex_unlock (&ubi->buf_mutex); -return 0 ; - } +if (ubi_check_pattern (ubi->peb_buf1,0xFF , ubi->leb_size)) + goto out_unlock;ubi_err ("PEB %d contains corrupted VID header, and the data does not " "contain all 0xFF, this may be a non-UBI PEB or a severe VID "
@@ -806,8 +805,11 @@ static int check_corruption(struct ubi_device *ubi, struct ubi_vid_hdr *vid_hdr, pnum, ubi->leb_start, ubi->leb_size);ubi_dbg_print_hex_dump (KERN_DEBUG ,"" ,DUMP_PREFIX_OFFSET ,32 ,1 , ubi->peb_buf1, ubi->leb_size,1 ); + err =1 ; + +out_unlock:mutex_unlock (&ubi->buf_mutex); -return 1 ; +return err; }/**
drivers/mtd/ubi/scan.c
Quoted 6 lines · Dan Carpenter
Commit
45aafd32996e27"UBI: tighten the corrupted PEB criteria" introduced some return paths that didn't release theubi->buf_mutex;Signed-off-by Dan Carpenter <[email protected]>drivers/mtd/ubi/scan.c +0
-0
Thank you, pushed to ubi-2.6.git tree.
Signature · 2 lines
Best Regards, Artem Bityutskiy (Артём Битюцкий)