Whitespace cleanup and minor tweak (return -ERRNO instead of ERRNO so

EPERM doesn't register as a successful read-only mount.
This commit is contained in:
Rob Landley 2006-03-18 02:38:10 +00:00
parent 5a57821565
commit aae8b3405e

View File

@ -93,15 +93,16 @@ int set_loop(char **device, const char *file, int offset)
/* Open the file. Barf if this doesn't work. */ /* Open the file. Barf if this doesn't work. */
if((ffd = open(file, mode=O_RDWR))<0 && (ffd = open(file,mode=O_RDONLY))<0) if((ffd = open(file, mode=O_RDWR))<0 && (ffd = open(file,mode=O_RDONLY))<0)
return errno; return -errno;
/* Find a loop device. */ /* Find a loop device. */
try=*device ? : dev; try=*device ? : dev;
for(i=0;rc;i++) { for(i=0;rc;i++) {
sprintf(dev, LOOP_FORMAT, i); sprintf(dev, LOOP_FORMAT, i);
/* Ran out of block devices, return failure. */ /* Ran out of block devices, return failure. */
if(stat(try, &statbuf) || !S_ISBLK(statbuf.st_mode)) { if(stat(try, &statbuf) || !S_ISBLK(statbuf.st_mode)) {
rc=ENOENT; rc=-ENOENT;
break; break;
} }
/* Open the sucker and check its loopiness. */ /* Open the sucker and check its loopiness. */
@ -120,6 +121,7 @@ int set_loop(char **device, const char *file, int offset)
if(!ioctl(dfd, LOOP_SET_FD, ffd) && if(!ioctl(dfd, LOOP_SET_FD, ffd) &&
!ioctl(dfd, BB_LOOP_SET_STATUS, &loopinfo)) rc=0; !ioctl(dfd, BB_LOOP_SET_STATUS, &loopinfo)) rc=0;
else ioctl(dfd, LOOP_CLR_FD, 0); else ioctl(dfd, LOOP_CLR_FD, 0);
/* If this block device already set up right, re-use it. /* If this block device already set up right, re-use it.
(Yes this is racy, but associating two loop devices with the same (Yes this is racy, but associating two loop devices with the same
file isn't pretty either. In general, mounting the same file twice file isn't pretty either. In general, mounting the same file twice
@ -137,12 +139,3 @@ try_again:
return mode==O_RDONLY ? 1 : 0; return mode==O_RDONLY ? 1 : 0;
} else return rc; } else return rc;
} }
/* END CODE */
/*
Local Variables:
c-file-style: "linux"
c-basic-offset: 4
tab-width: 4
End:
*/