Hi,
(I'm not a list member and may not see any responses to this)
I've been using btrfs on my Raspberry Pi. Yesterday I tried to use the
"btrfs scrub" function and, while the scrub started OK, I couldn't run
"btrfs scrub status" to see what was happening. Whenever I ran it, I
just got the command help.
The same command on my x86 box worked OK. Checking out the git sources,
I found that, in a couple of places, "char c" is used to store the
return value from getopt. On the Pi, char is unsigned, so the
subsequent test for getopt returning -1 never succeeds.
I'm attaching a patch to fix this.
Cheers,
Alun.
diff --recursive '--context=5' btrfs-progs.orig/cmds-scrub.c btrfs-progs/cmds-scrub.c
*** btrfs-progs.orig/cmds-scrub.c Sat Nov 10 08:24:33 2012
--- btrfs-progs/cmds-scrub.c Sat Nov 10 08:24:52 2012
***************
*** 1602,1612 ****
};
int ret;
int i;
int print_raw = 0;
int do_stats_per_dev = 0;
! char c;
char fsid[37];
int fdres = -1;
int err = 0;
optind = 1;
--- 1602,1612 ----
};
int ret;
int i;
int print_raw = 0;
int do_stats_per_dev = 0;
! int c;
char fsid[37];
int fdres = -1;
int err = 0;
optind = 1;
diff --recursive '--context=5' btrfs-progs.orig/cmds-send.c btrfs-progs/cmds-send.c
*** btrfs-progs.orig/cmds-send.c Sat Nov 10 08:24:33 2012
--- btrfs-progs/cmds-send.c Sat Nov 10 08:24:43 2012
***************
*** 412,422 ****
}
int cmd_send_start(int argc, char **argv)
{
char *subvol = NULL;
! char c;
int ret;
char *outname = NULL;
struct btrfs_send send;
u32 i;
char *mount_root = NULL;
--- 412,422 ----
}
int cmd_send_start(int argc, char **argv)
{
char *subvol = NULL;
! int c;
int ret;
char *outname = NULL;
struct btrfs_send send;
u32 i;
char *mount_root = NULL;