45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From e8c8ddccfc63574069c30b7e75f0ccfd5b03eab9 Mon Sep 17 00:00:00 2001
 | |
| From: Tom Gundersen <teg@jklm.no>
 | |
| Date: Mon, 29 Sep 2014 13:20:54 +0200
 | |
| Subject: [PATCH] nspawn: log when tearing down of loop device fails
 | |
| 
 | |
| ---
 | |
|  src/nspawn/nspawn.c | 13 ++++++++++---
 | |
|  1 file changed, 10 insertions(+), 3 deletions(-)
 | |
| 
 | |
| diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
 | |
| index 4c1cfabca4..34436b82a2 100644
 | |
| --- a/src/nspawn/nspawn.c
 | |
| +++ b/src/nspawn/nspawn.c
 | |
| @@ -2607,20 +2607,27 @@ static int mount_devices(
 | |
|  
 | |
|  static void loop_remove(int nr, int *image_fd) {
 | |
|          _cleanup_close_ int control = -1;
 | |
| +        int r;
 | |
|  
 | |
|          if (nr < 0)
 | |
|                  return;
 | |
|  
 | |
|          if (image_fd && *image_fd >= 0) {
 | |
| -                ioctl(*image_fd, LOOP_CLR_FD);
 | |
| +                r = ioctl(*image_fd, LOOP_CLR_FD);
 | |
| +                if (r < 0)
 | |
| +                        log_warning("Failed to close loop image: %m");
 | |
|                  *image_fd = safe_close(*image_fd);
 | |
|          }
 | |
|  
 | |
|          control = open("/dev/loop-control", O_RDWR|O_CLOEXEC|O_NOCTTY|O_NONBLOCK);
 | |
| -        if (control < 0)
 | |
| +        if (control < 0) {
 | |
| +                log_warning("Failed to open /dev/loop-control: %m");
 | |
|                  return;
 | |
| +        }
 | |
|  
 | |
| -        ioctl(control, LOOP_CTL_REMOVE, nr);
 | |
| +        r = ioctl(control, LOOP_CTL_REMOVE, nr);
 | |
| +        if (r < 0)
 | |
| +                log_warning("Failed to remove loop %d: %m", nr);
 | |
|  }
 | |
|  
 | |
|  static int spawn_getent(const char *database, const char *key, pid_t *rpid) {
 |