From: Kevin Wallace Date: Wed, 4 Feb 2015 00:17:29 +0000 (-0800) Subject: libbb/loop: don't try to re-use existing loop device X-Git-Tag: 1_24_0~197 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=782ee2aa0e1646aebc96c8590ddc0a16405b8297;p=oweals%2Fbusybox.git 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 --- 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);