diff --git a/smartmontools/os_freebsd.cpp b/smartmontools/os_freebsd.cpp index 01cfadb5a56f9ac8b081d06e29fbed916f656209..3f31ca063eb0b604ba92e81049711ea9a5d368ff 100644 --- a/smartmontools/os_freebsd.cpp +++ b/smartmontools/os_freebsd.cpp @@ -1172,12 +1172,11 @@ freebsd_cciss_device::freebsd_cciss_device(smart_interface * intf, bool freebsd_cciss_device::scsi_pass_through(scsi_cmnd_io * iop) { - int report=con->reportscsiioctl; - int fd=get_fd(); - #ifdef HAVE_DEV_CISS_CISSIO_H - // check that "file descriptor" is valid - return cciss_io_interface(fd, m_disknum-1, iop, report); + int status = cciss_io_interface(get_fd(), m_disknum, iop, con->reportscsiioctl); + if (status < 0) + return set_err(-status); + return true; #else { static int warned = 0;