From 782ee2aa0e1646aebc96c8590ddc0a16405b8297 Mon Sep 17 00:00:00 2001 From: Kevin Wallace Date: Tue, 3 Feb 2015 16:17:29 -0800 Subject: 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 Signed-off-by: Denys Vlasenko --- libbb/loop.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/libbb/loop.c b/libbb/loop.c index c96c5e0..d30b378 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); -- cgit v1.1