@@ -1644,7 +1644,7 @@ struct gendisk *__alloc_disk_node(int minors, int node_id)
disk = kzalloc_node(sizeof(struct gendisk), GFP_KERNEL, node_id);
if (disk) {
- if (!init_part_stats(&disk->part0)) {
+ if (init_part_stats(&disk->part0)) {
kfree(disk);
return NULL;
}
@@ -377,7 +377,7 @@ struct hd_struct *add_partition(struct gendisk *disk, int partno,
if (!p)
return ERR_PTR(-EBUSY);
- if (!init_part_stats(p)) {
+ if (init_part_stats(p)) {
err = -ENOMEM;
goto out_free;
}
@@ -48,8 +48,8 @@ static inline int init_part_stats(struct hd_struct *part)
{
part->dkstats = alloc_percpu(struct disk_stats);
if (!part->dkstats)
- return 0;
- return 1;
+ return -ENOMEM;
+ return 0;
}
static inline void free_part_stats(struct hd_struct *part)
@@ -72,7 +72,7 @@ static inline void part_stat_set_all(struct hd_struct *part, int value)
static inline int init_part_stats(struct hd_struct *part)
{
- return 1;
+ return 0;
}
static inline void free_part_stats(struct hd_struct *part)
Return 0 / -ENOMEM instead of a boolean dressed up as int. Signed-off-by: Christoph Hellwig <hch@lst.de> --- block/genhd.c | 2 +- block/partitions/core.c | 2 +- include/linux/part_stat.h | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-)