Loading drivers/s390/scsi/zfcp_ext.h +0 −1 Original line number Diff line number Diff line Loading @@ -109,7 +109,6 @@ extern int zfcp_fsf_req_create(struct zfcp_adapter *, u32, int, mempool_t *, extern int zfcp_fsf_send_ct(struct zfcp_send_ct *, mempool_t *, struct zfcp_erp_action *); extern int zfcp_fsf_send_els(struct zfcp_send_els *); extern int zfcp_fsf_req_wait_and_cleanup(struct zfcp_fsf_req *, int, u32 *); extern int zfcp_fsf_send_fcp_command_task(struct zfcp_adapter *, struct zfcp_unit *, struct scsi_cmnd *, Loading drivers/s390/scsi/zfcp_fsf.c +0 −46 Original line number Diff line number Diff line Loading @@ -4548,52 +4548,6 @@ zfcp_fsf_control_file_handler(struct zfcp_fsf_req *fsf_req) return retval; } /* * function: zfcp_fsf_req_wait_and_cleanup * * purpose: * * FIXME(design): signal seems to be <0 !!! * returns: 0 - request completed (*status is valid), cleanup succ. * <0 - request completed (*status is valid), cleanup failed * >0 - signal which interrupted waiting (*status invalid), * request not completed, no cleanup * * *status is a copy of status of completed fsf_req */ int zfcp_fsf_req_wait_and_cleanup(struct zfcp_fsf_req *fsf_req, int interruptible, u32 * status) { int retval = 0; int signal = 0; if (interruptible) { __wait_event_interruptible(fsf_req->completion_wq, fsf_req->status & ZFCP_STATUS_FSFREQ_COMPLETED, signal); if (signal) { ZFCP_LOG_DEBUG("Caught signal %i while waiting for the " "completion of the request at %p\n", signal, fsf_req); retval = signal; goto out; } } else { __wait_event(fsf_req->completion_wq, fsf_req->status & ZFCP_STATUS_FSFREQ_COMPLETED); } *status = fsf_req->status; /* cleanup request */ zfcp_fsf_req_free(fsf_req); out: return retval; } static inline int zfcp_fsf_req_sbal_check(unsigned long *flags, struct zfcp_qdio_queue *queue, int needed) Loading drivers/s390/scsi/zfcp_scsi.c +9 −12 Original line number Diff line number Diff line Loading @@ -558,9 +558,8 @@ static int zfcp_task_management_function(struct zfcp_unit *unit, u8 tm_flags) { struct zfcp_adapter *adapter = unit->port->adapter; int retval; int status; struct zfcp_fsf_req *fsf_req; int retval = 0; /* issue task management function */ fsf_req = zfcp_fsf_send_fcp_command_task_management Loading @@ -574,18 +573,16 @@ zfcp_task_management_function(struct zfcp_unit *unit, u8 tm_flags) goto out; } retval = zfcp_fsf_req_wait_and_cleanup(fsf_req, ZFCP_UNINTERRUPTIBLE, &status); /* * check completion status of task management function * (status should always be valid since no signals permitted) */ if (status & ZFCP_STATUS_FSFREQ_TMFUNCFAILED) __wait_event(fsf_req->completion_wq, fsf_req->status & ZFCP_STATUS_FSFREQ_COMPLETED); /* check completion status of task management function */ if (fsf_req->status & ZFCP_STATUS_FSFREQ_TMFUNCFAILED) retval = -EIO; else if (status & ZFCP_STATUS_FSFREQ_TMFUNCNOTSUPP) else if (fsf_req->status & ZFCP_STATUS_FSFREQ_TMFUNCNOTSUPP) retval = -ENOTSUPP; else retval = 0; zfcp_fsf_req_free(fsf_req); out: return retval; } Loading Loading
drivers/s390/scsi/zfcp_ext.h +0 −1 Original line number Diff line number Diff line Loading @@ -109,7 +109,6 @@ extern int zfcp_fsf_req_create(struct zfcp_adapter *, u32, int, mempool_t *, extern int zfcp_fsf_send_ct(struct zfcp_send_ct *, mempool_t *, struct zfcp_erp_action *); extern int zfcp_fsf_send_els(struct zfcp_send_els *); extern int zfcp_fsf_req_wait_and_cleanup(struct zfcp_fsf_req *, int, u32 *); extern int zfcp_fsf_send_fcp_command_task(struct zfcp_adapter *, struct zfcp_unit *, struct scsi_cmnd *, Loading
drivers/s390/scsi/zfcp_fsf.c +0 −46 Original line number Diff line number Diff line Loading @@ -4548,52 +4548,6 @@ zfcp_fsf_control_file_handler(struct zfcp_fsf_req *fsf_req) return retval; } /* * function: zfcp_fsf_req_wait_and_cleanup * * purpose: * * FIXME(design): signal seems to be <0 !!! * returns: 0 - request completed (*status is valid), cleanup succ. * <0 - request completed (*status is valid), cleanup failed * >0 - signal which interrupted waiting (*status invalid), * request not completed, no cleanup * * *status is a copy of status of completed fsf_req */ int zfcp_fsf_req_wait_and_cleanup(struct zfcp_fsf_req *fsf_req, int interruptible, u32 * status) { int retval = 0; int signal = 0; if (interruptible) { __wait_event_interruptible(fsf_req->completion_wq, fsf_req->status & ZFCP_STATUS_FSFREQ_COMPLETED, signal); if (signal) { ZFCP_LOG_DEBUG("Caught signal %i while waiting for the " "completion of the request at %p\n", signal, fsf_req); retval = signal; goto out; } } else { __wait_event(fsf_req->completion_wq, fsf_req->status & ZFCP_STATUS_FSFREQ_COMPLETED); } *status = fsf_req->status; /* cleanup request */ zfcp_fsf_req_free(fsf_req); out: return retval; } static inline int zfcp_fsf_req_sbal_check(unsigned long *flags, struct zfcp_qdio_queue *queue, int needed) Loading
drivers/s390/scsi/zfcp_scsi.c +9 −12 Original line number Diff line number Diff line Loading @@ -558,9 +558,8 @@ static int zfcp_task_management_function(struct zfcp_unit *unit, u8 tm_flags) { struct zfcp_adapter *adapter = unit->port->adapter; int retval; int status; struct zfcp_fsf_req *fsf_req; int retval = 0; /* issue task management function */ fsf_req = zfcp_fsf_send_fcp_command_task_management Loading @@ -574,18 +573,16 @@ zfcp_task_management_function(struct zfcp_unit *unit, u8 tm_flags) goto out; } retval = zfcp_fsf_req_wait_and_cleanup(fsf_req, ZFCP_UNINTERRUPTIBLE, &status); /* * check completion status of task management function * (status should always be valid since no signals permitted) */ if (status & ZFCP_STATUS_FSFREQ_TMFUNCFAILED) __wait_event(fsf_req->completion_wq, fsf_req->status & ZFCP_STATUS_FSFREQ_COMPLETED); /* check completion status of task management function */ if (fsf_req->status & ZFCP_STATUS_FSFREQ_TMFUNCFAILED) retval = -EIO; else if (status & ZFCP_STATUS_FSFREQ_TMFUNCNOTSUPP) else if (fsf_req->status & ZFCP_STATUS_FSFREQ_TMFUNCNOTSUPP) retval = -ENOTSUPP; else retval = 0; zfcp_fsf_req_free(fsf_req); out: return retval; } Loading