]> err.no Git - util-linux/commitdiff
losetup: fix return codes of functions arounf is_associated()
authorKarel Zak <kzak@redhat.com>
Mon, 29 Jun 2009 22:48:15 +0000 (00:48 +0200)
committerKarel Zak <kzak@redhat.com>
Mon, 29 Jun 2009 22:48:15 +0000 (00:48 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
mount/lomount.c

index 1b191ab71c719011e4674e96a14c4552883d4f4f..f0f81ed6df17fece705cdaabb8c6cb10c4965205 100644 (file)
@@ -500,8 +500,7 @@ show_associated_loop_devices(char *filename, unsigned long long offset, int isof
 /* check if the loopfile is already associated with the same given
  * parameters.
  *
- * returns: -1 error
- *           0 unused
+ * returns:  0 unused / error
  *           1 loop device already used
  */
 static int
@@ -516,17 +515,15 @@ is_associated(int dev, struct stat *file, unsigned long long offset, int isoff)
                    file->st_ino == linfo64.lo_inode &&
                    (isoff == 0 || offset == linfo64.lo_offset))
                        ret = 1;
-               return ret;
-       }
-       if (ioctl(dev, LOOP_GET_STATUS, &linfo) == 0) {
+
+       } else if (ioctl(dev, LOOP_GET_STATUS, &linfo) == 0) {
                if (file->st_dev == linfo.lo_device &&
                    file->st_ino == linfo.lo_inode &&
                    (isoff == 0 || offset == linfo.lo_offset))
                        ret = 1;
-               return ret;
        }
 
-       return errno == ENXIO ? 0 : -1;
+       return ret;
 }
 
 /* check if the loop file is already used with the same given
@@ -572,18 +569,14 @@ loopfile_used_with(char *devname, const char *filename, unsigned long long offse
        if (!is_loop_device(devname))
                return 0;
 
-       if (stat(filename, &statbuf) == -1) {
-               perror(filename);
-               return -1;
-       }
+       if (stat(filename, &statbuf) == -1)
+               return 0;
 
        fd = open(devname, O_RDONLY);
-       if (fd == -1) {
-               perror(devname);
-               return -1;
-       }
-       ret = is_associated(fd, &statbuf, offset, 1);
+       if (fd == -1)
+               return 0;
 
+       ret = is_associated(fd, &statbuf, offset, 1);
        close(fd);
        return ret;
 }