diff --git a/tapeserver/castor/tape/tapeserver/system/FileWrappers.cpp b/tapeserver/castor/tape/tapeserver/system/FileWrappers.cpp index 95805001ce521752c9d1cd06c4d0be10fdb5fdf5..c159d43cff78100bd9aad6514c6a5a6feda495f4 100644 --- a/tapeserver/castor/tape/tapeserver/system/FileWrappers.cpp +++ b/tapeserver/castor/tape/tapeserver/system/FileWrappers.cpp @@ -214,6 +214,20 @@ int System::stDeviceFile::ioctlReadPosition(sg_io_hdr_t* sgio_h) { return 0; } +int System::stDeviceFile::ioctlRequestSense(sg_io_hdr_t* sgio_h) { + if (SG_DXFER_FROM_DEV != sgio_h->dxfer_direction) { + errno = EINVAL; + return -1; + } + SCSI::Structures::requestSenseData_t &requestSenseData = + *reinterpret_cast<SCSI::Structures::requestSenseData_t*>(sgio_h->dxferp); + if(sizeof(requestSenseData) > sgio_h->dxfer_len) { + errno = EINVAL; + return -1; + } + return 0; +} + int System::stDeviceFile::ioctlLogSelect(sg_io_hdr_t * sgio_h) { if (SG_DXFER_NONE != sgio_h->dxfer_direction) { errno = EINVAL;