Skip to content

Commit

Permalink
UBI: do not panic if volume check fails
Browse files Browse the repository at this point in the history
If a volume paranoid check fails, do not return an error
code to the caller, but just print error messages and go
forward. The primary reason for this is that it is difficult
to recover and cancel the operation at that stage.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
  • Loading branch information
Artem Bityutskiy authored and Artem Bityutskiy committed May 18, 2009
1 parent cfcf0ec commit d38dce5
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions drivers/mtd/ubi/vmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,8 @@ int ubi_create_volume(struct ubi_device *ubi, struct ubi_mkvol_req *req)
ubi->vol_count += 1;
spin_unlock(&ubi->volumes_lock);

err = paranoid_check_volumes(ubi);
if (paranoid_check_volumes(ubi))
dbg_err("check failed while creating volume %d", vol_id);
return err;

out_sysfs:
Expand Down Expand Up @@ -465,8 +466,9 @@ int ubi_remove_volume(struct ubi_volume_desc *desc, int no_vtbl)
ubi->vol_count -= 1;
spin_unlock(&ubi->volumes_lock);

if (!no_vtbl)
err = paranoid_check_volumes(ubi);
if (!no_vtbl && paranoid_check_volumes(ubi))
dbg_err("check failed while removing volume %d", vol_id);

return err;

out_err:
Expand Down Expand Up @@ -587,7 +589,8 @@ int ubi_resize_volume(struct ubi_volume_desc *desc, int reserved_pebs)
(long long)vol->used_ebs * vol->usable_leb_size;
}

err = paranoid_check_volumes(ubi);
if (paranoid_check_volumes(ubi))
dbg_err("check failed while re-sizing volume %d", vol_id);
return err;

out_acc:
Expand Down Expand Up @@ -635,8 +638,8 @@ int ubi_rename_volumes(struct ubi_device *ubi, struct list_head *rename_list)
}
}

if (!err)
err = paranoid_check_volumes(ubi);
if (!err && paranoid_check_volumes(ubi))
;
return err;
}

Expand Down Expand Up @@ -688,7 +691,8 @@ int ubi_add_volume(struct ubi_device *ubi, struct ubi_volume *vol)
return err;
}

err = paranoid_check_volumes(ubi);
if (paranoid_check_volumes(ubi))
dbg_err("check failed while adding volume %d", vol_id);
return err;

out_gluebi:
Expand Down

0 comments on commit d38dce5

Please sign in to comment.