Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc7b0cbe authored by Jay Freeman (saurik)'s avatar Jay Freeman (saurik)
Browse files

Open file and loop device with O_RDONLY when -o loop,ro.

Otherwise: ioctl LOOP_SET_FD failed: Bad file number.
parent abb9638e
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -138,14 +138,17 @@ do_mount(char *dev, char *dir, char *type, unsigned long rwflag, void *data, int

    if (loop) {
        int file_fd, device_fd;
        int flags;

        flags = (rwflag & MS_RDONLY) ? O_RDONLY : O_RDWR;
        
        // FIXME - only one loop mount supported at a time
        file_fd = open(dev, O_RDWR);
        file_fd = open(dev, flags);
        if (file_fd < -1) {
            perror("open backing file failed");
            return 1;
        }
        device_fd = open(LOOP_DEVICE, O_RDWR);
        device_fd = open(LOOP_DEVICE, flags);
        if (device_fd < -1) {
            perror("open loop device failed");
            close(file_fd);