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 <[email protected]> --- 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); -- 2.2.1 _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
