sfdisk: don't use BLKRRPART to check loopdev usage
It seesm that kernel always returns EINVAL for BLKRRPART on loop devices, we call the ioctl to check if nobody else uses the device. Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
2daf61b734
commit
a53e37f9d4
|
@ -44,6 +44,7 @@
|
|||
#include "blkdev.h"
|
||||
#include "all-io.h"
|
||||
#include "rpmatch.h"
|
||||
#include "loopdev.h"
|
||||
|
||||
#include "libfdisk.h"
|
||||
#include "fdisk-list.h"
|
||||
|
@ -1083,7 +1084,8 @@ static int is_device_used(struct sfdisk *sf)
|
|||
if (fd < 0)
|
||||
return 0;
|
||||
|
||||
if (fstat(fd, &st) == 0 && S_ISBLK(st.st_mode))
|
||||
if (fstat(fd, &st) == 0 && S_ISBLK(st.st_mode)
|
||||
&& major(st.st_rdev) != LOOPDEV_MAJOR)
|
||||
return ioctl(fd, BLKRRPART) != 0;
|
||||
#endif
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue