libbb/loop: don't try to re-use existing loop device
loopinfo.lo_file_name is not enough to uniquely identify a file on a system with multiple mount namespaces. We could conceivably change this to dedup on (lo_rdevice, lo_inode), but, as the comment above the deleted code notes, this whole approach of reusing devices is racy anyway, so it seems better to stop doing it entirely. Signed-off-by: Kevin Wallace <k@igneous.io> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
a03195941b
commit
782ee2aa0e
11
libbb/loop.c
11
libbb/loop.c
@ -154,16 +154,7 @@ int FAST_FUNC set_loop(char **device, const char *file, unsigned long long offse
|
||||
else
|
||||
ioctl(dfd, LOOP_CLR_FD, 0);
|
||||
}
|
||||
|
||||
/* If this block device already set up right, re-use it.
|
||||
* (Yes this is racy, but associating two loop devices with the same
|
||||
* file isn't pretty either. In general, mounting the same file twice
|
||||
* without using losetup manually is problematic.)
|
||||
*/
|
||||
} else
|
||||
if (strcmp(file, (char *)loopinfo.lo_file_name) != 0
|
||||
|| offset != loopinfo.lo_offset
|
||||
) {
|
||||
} else {
|
||||
rc = -1;
|
||||
}
|
||||
close(dfd);
|
||||
|
Loading…
Reference in New Issue
Block a user