diff options
author | Kevin Wallace <k@igneous.io> | 2015-02-04 03:17:29 +0300 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2015-02-07 21:13:57 +0300 |
commit | 782ee2aa0e1646aebc96c8590ddc0a16405b8297 (patch) | |
tree | 8fd6b0c0a5ca7f1657d764b359f78dd0f1f25b9b /libbb | |
parent | a03195941b40f0d740f06d23648f672fe81d4ecf (diff) |
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>
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/loop.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/libbb/loop.c b/libbb/loop.c index c96c5e070..d30b378d7 100644 --- a/libbb/loop.c +++ b/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); |