The function is_loopdev does not set errno if the supplied string does
not reference a valid loop device. Fix this to avoid an error message
like this one:
losetup: /: failed to use device: Success
I prefer this one:
losetup: /: failed to use device: No such device
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
{
struct stat st;
- if (!device)
- return 0;
-
- return (stat(device, &st) == 0 &&
+ if (device && stat(device, &st) == 0 &&
S_ISBLK(st.st_mode) &&
- major(st.st_rdev) == LOOPDEV_MAJOR);
+ major(st.st_rdev) == LOOPDEV_MAJOR)
+ return 1;
+
+ errno = ENODEV;
+ return 0;
}
/*