diff options
Diffstat (limited to 'util-linux/losetup.c')
-rw-r--r-- | util-linux/losetup.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/util-linux/losetup.c b/util-linux/losetup.c index 4424d9cbb..d356f49c2 100644 --- a/util-linux/losetup.c +++ b/util-linux/losetup.c | |||
@@ -127,12 +127,37 @@ int losetup_main(int argc UNUSED_PARAM, char **argv) | |||
127 | d = *argv++; | 127 | d = *argv++; |
128 | 128 | ||
129 | if (argv[0]) { | 129 | if (argv[0]) { |
130 | if (set_loop(&d, argv[0], offset, (opt & OPT_r)) < 0) | 130 | if (set_loop(&d, argv[0], offset, (opt & OPT_r) ? BB_LO_FLAGS_READ_ONLY : 0) < 0) |
131 | bb_simple_perror_msg_and_die(argv[0]); | 131 | bb_simple_perror_msg_and_die(argv[0]); |
132 | return EXIT_SUCCESS; | 132 | return EXIT_SUCCESS; |
133 | } | 133 | } |
134 | } | 134 | } |
135 | 135 | ||
136 | /* TODO: util-linux 2.28 shows this when run w/o params: | ||
137 | * NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO | ||
138 | * /dev/loop0 0 0 1 0 /PATH/TO/FILE 0 | ||
139 | * | ||
140 | * implemented by reading /sys: | ||
141 | * | ||
142 | * open("/sys/block", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3 | ||
143 | * newfstatat(3, "loop0/loop/backing_file", {st_mode=S_IFREG|0444, st_size=4096, ...}, 0) = 0 | ||
144 | * stat("/dev/loop0", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 0), ...}) = 0 | ||
145 | * open("/sys/dev/block/7:0/loop/offset", O_RDONLY|O_CLOEXEC) = 5 | ||
146 | * read(5, "0\n", 4096) = 2 | ||
147 | * open("/sys/dev/block/7:0/loop/sizelimit", O_RDONLY|O_CLOEXEC) = 5 | ||
148 | * read(5, "0\n", 4096) = 2 | ||
149 | * open("/sys/dev/block/7:0/loop/offset", O_RDONLY|O_CLOEXEC) = 5 | ||
150 | * read(5, "0\n", 4096) = 2 | ||
151 | * open("/sys/dev/block/7:0/loop/autoclear", O_RDONLY|O_CLOEXEC) = 5 | ||
152 | * read(5, "1\n", 4096) = 2 | ||
153 | * open("/sys/dev/block/7:0/ro", O_RDONLY|O_CLOEXEC) = 5 | ||
154 | * read(5, "0\n", 4096) = 2 | ||
155 | * open("/sys/dev/block/7:0/loop/backing_file", O_RDONLY|O_CLOEXEC) = 5 | ||
156 | * read(5, "/PATH/TO/FILE", 4096) = 37 | ||
157 | * open("/sys/dev/block/7:0/loop/dio", O_RDONLY|O_CLOEXEC) = 5 | ||
158 | * read(5, "0\n", 4096) = 2 | ||
159 | */ | ||
160 | |||
136 | bb_show_usage(); /* does not return */ | 161 | bb_show_usage(); /* does not return */ |
137 | /*return EXIT_FAILURE;*/ | 162 | /*return EXIT_FAILURE;*/ |
138 | } | 163 | } |