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;

Reply via email to