On 06/10/2015 01:08 PM, Cyril Hrubis wrote:
> Hi!
>> Signed-off-by: Stanislav Kholmanskikh <[email protected]>
>> ---
>> lib/tst_device.c | 17 ++++++-----------
>> 1 files changed, 6 insertions(+), 11 deletions(-)
>>
>> diff --git a/lib/tst_device.c b/lib/tst_device.c
>> index 3bded53..9a92fc8 100644
>> --- a/lib/tst_device.c
>> +++ b/lib/tst_device.c
>> @@ -150,30 +150,25 @@ static void attach_device(void (*cleanup_fn)(void),
>>
>> static void detach_device(void (*cleanup_fn)(void), const char *dev)
>> {
>> - int dev_fd, err, i;
>> + int dev_fd, ret, i;
>>
>> dev_fd = SAFE_OPEN(cleanup_fn, dev, O_RDONLY);
>>
>> - /* keep trying to clear LOOPDEV fd if EBUSY, a quick succession
>> + /* keep trying to clear LOOPDEV until we get ENXIO, a quick succession
>> * of attach/detach might not give udev enough time to complete */
>> for (i = 0; i < 40; i++) {
>> - if (ioctl(dev_fd, LOOP_CLR_FD, 0) == 0) {
>> + ret = ioctl(dev_fd, LOOP_CLR_FD, 0);
>> +
>> + if (ret && (errno == ENXIO)) {
>> close(dev_fd);
>> return;
>> }
>> - if (errno != EBUSY) {
>> - err = errno;
>> - close(dev_fd);
>> - tst_brkm(TBROK, cleanup_fn,
>> - "ioctl(%s, LOOP_CLR_FD, 0) failed: %s",
>> - dev, tst_strerrno(err));
>> - }
>
> I would be a bit more verbose and would print an TINFO or TWARN message
> if we get error different from the expected EBUSY or ENXIO.
Do you mean printing of TINFO/TWARN messages right in the cycle?
if (errno != EBUSY) {
err = errno;
tst_resm(TWARN,
"ioctl(%s, LOOP_CLR_FD, 0) unexpectedly failed
with: %s",
dev, tst_strerrno(err));
}
But in the worst case, we may end up with 40 messages generated.
Or do you mean saving the last errno and printing it to the final tst_brkm?
>
> Otherwise it looks fine, acked.
>
------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list