Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/md/raid5.c check_reshape() -> has_failed()

Type Parameter Key Value
PARAM_VALUE 0 conf 4096-ptr_max
PARAM_VALUE 0 conf->mddev 4096-ptr_max
BUF_SIZE 0 conf 1216,1600,2712
BUF_SIZE 0 conf 1216,1600,2712
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &rs->md.reconfig_mutex

drivers/md/raid5.c raid5_add_disk() -> has_failed()

Type Parameter Key Value
PARAM_VALUE 0 conf 4096-ptr_max
BUF_SIZE 0 conf 1216,1600,2712
BUF_SIZE 0 conf 1216,1600,2712
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &md->suspend_lock
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex

drivers/md/raid5.c raid5_error() -> has_failed()

Type Parameter Key Value
PARAM_VALUE 0 conf 4096-ptr_max
BUF_SIZE 0 conf 1216,1600,2712
BUF_SIZE 0 conf 1216,1600,2712
CAPPED_DATA 0 conf->previous_raid_disks 1
CAPPED_DATA 0 conf->raid_disks 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &conf->device_lock
HALF_LOCKED2 &cinfo->recv_mutex
HALF_LOCKED2 &mddev->cluster_info->recv_mutex
HALF_LOCKED2 &mddev->lock
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct r5conf)->device_lock

drivers/md/raid5.c raid5_remove_disk() -> has_failed()

Type Parameter Key Value
PARAM_VALUE 0 conf 4096-ptr_max
BUF_SIZE 0 conf 1216,1600,2712
BUF_SIZE 0 conf 1216,1600,2712
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &md->suspend_lock
HALF_LOCKED2 &mddev->reconfig_mutex

drivers/md/raid5.c raid5_start_reshape() -> has_failed()

Type Parameter Key Value
PARAM_VALUE 0 conf 4096-ptr_max
BUF_SIZE 0 conf 1216,1600,2712
BUF_SIZE 0 conf 1216,1600,2712
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &cinfo->recv_mutex
HALF_LOCKED2 &md->suspend_lock
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex