[PATCH] libbb/loop: don't try to re-use existing loop device

Denys Vlasenko vda.linux at googlemail.com
Sat Feb 7 18:14:10 UTC 2015


Applied, thanks!

On Wed, Feb 4, 2015 at 1:17 AM, Kevin Wallace <k at igneous.io> wrote:
> 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 at igneous.io>
> ---
>  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
> busybox at busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox


More information about the busybox mailing list