86
86
fdmnt = open_file_or_dir(mntpnt, &dirstream);
88
fprintf(stderr, "ERROR: can't access to '%s'\n", mntpnt);
88
fprintf(stderr, "ERROR: can't access '%s'\n", mntpnt);
112
112
res = btrfs_prepare_device(devfd, argv[i], 1, &dev_block_count,
113
113
0, &mixed, discard);
115
fprintf(stderr, "ERROR: Unable to init '%s'\n", argv[i]);
122
120
strncpy_null(ioctl_args.name, argv[i]);
123
121
res = ioctl(fdmnt, BTRFS_IOC_ADD_DEV, &ioctl_args);
154
153
fdmnt = open_file_or_dir(mntpnt, &dirstream);
156
fprintf(stderr, "ERROR: can't access to '%s'\n", mntpnt);
155
fprintf(stderr, "ERROR: can't access '%s'\n", mntpnt);
161
160
struct btrfs_ioctl_vol_args arg;
163
if (!is_block_device(argv[i])) {
165
"ERROR: %s is not a block device\n", argv[i]);
164
169
strncpy_null(arg.name, argv[i]);
165
170
res = ioctl(fdmnt, BTRFS_IOC_RM_DEV, &arg);
184
189
static const char * const cmd_scan_dev_usage[] = {
185
"btrfs device scan [<--all-devices>|<device> [<device>...]]",
190
"btrfs device scan [(-d|--all-devices)|<device> [<device>...]]",
186
191
"Scan devices for a btrfs filesystem",
190
195
static int cmd_scan_dev(int argc, char **argv)
193
int where = BTRFS_SCAN_LBLKID;
198
int where = BTRFS_SCAN_LBLKID;
196
if( argc > 1 && !strcmp(argv[1],"--all-devices")){
197
if (check_argc_max(argc, 2))
206
static struct option long_options[] = {
207
{ "all-devices", no_argument, NULL, 'd'},
210
int c = getopt_long(argc, argv, "d", long_options,
216
where = BTRFS_SCAN_DEV;
198
220
usage(cmd_scan_dev_usage);
200
where = BTRFS_SCAN_DEV;
224
if (all && check_argc_max(argc, 2))
225
usage(cmd_scan_dev_usage);
227
if (all || argc == 1) {
206
228
printf("Scanning for Btrfs filesystems\n");
207
229
ret = scan_for_btrfs(where, BTRFS_UPDATE_KERNEL);
209
231
fprintf(stderr, "ERROR: error %d while scanning\n", ret);
215
235
fd = open("/dev/btrfs-control", O_RDWR);
217
237
perror("failed to open /dev/btrfs-control");
221
242
for( i = devstart ; i < argc ; i++ ){
222
243
struct btrfs_ioctl_vol_args args;
245
if (!is_block_device(argv[i])) {
247
"ERROR: %s is not a block device\n", argv[i]);
225
251
printf("Scanning for Btrfs filesystems in '%s'\n", argv[i]);
227
253
strncpy_null(args.name, argv[i]);
265
292
perror("failed to open /dev/btrfs-control");
295
if (!is_block_device(argv[1])) {
297
"ERROR: %s is not a block device\n", argv[1]);
269
302
strncpy(args.name, argv[argc - 1], BTRFS_PATH_NAME_MAX);
270
303
ret = ioctl(fd, BTRFS_IOC_DEVICES_READY, &args);
309
fprintf(stderr, "ERROR: device stat args invalid.\n"
310
" device stat [-z] <path>|<device>\n"
311
" -z to reset stats after reading.\n");
342
usage(cmd_dev_stats_usage);
316
if (optind + 1 != argc) {
317
fprintf(stderr, "ERROR: device stat needs path|device as single"
346
argc = argc - optind;
347
if (check_argc_exact(argc, 1))
348
usage(cmd_dev_stats_usage);
322
350
dev_path = argv[optind];