diff mbox

Btrfs-prog/send: fix wrong dump_fd check in cmd_send_start()

Message ID 510A2984.6010601@cn.fujitsu.com (mailing list archive)
State New, archived
Headers show

Commit Message

Chen Yang Jan. 31, 2013, 8:21 a.m. UTC
In cmd_send_start(), there is a check to make sure dump_fd is not a tty
before parsing command options. So if we use the option "-f file",
it doesn't work for the dump_fd has not been created. So fix it.

Signed-off-by: Cheng Yang <chenyang.fnst@cn.fujitsu.com>
---
 cmds-send.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

Comments

David Sterba Jan. 31, 2013, 4:52 p.m. UTC | #1
On Thu, Jan 31, 2013 at 04:21:24PM +0800, Chen Yang wrote:
> In cmd_send_start(), there is a check to make sure dump_fd is not a tty
> before parsing command options. So if we use the option "-f file",
> it doesn't work for the dump_fd has not been created. So fix it.

Good catch, thanks. I see that there's no special handling of the '-'
filename that usually means stdout. We may want to add this as a common
command line usage pattern.

david
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Chen Yang Feb. 1, 2013, 2:58 a.m. UTC | #2
> On Thu, Jan 31, 2013 at 04:21:24PM +0800, Chen Yang wrote:
>> In cmd_send_start(), there is a check to make sure dump_fd is not a tty
>> before parsing command options. So if we use the option "-f file",
>> it doesn't work for the dump_fd has not been created. So fix it.
> 
> Good catch, thanks. I see that there's no special handling of the '-'
> filename that usually means stdout. We may want to add this as a common
> command line usage pattern.
> 
> david
> 
We can touch a file name "-", so I think special handling of the '-' is unnecessary.

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Sterba Feb. 1, 2013, 12:31 p.m. UTC | #3
On Fri, Feb 01, 2013 at 10:58:33AM +0800, Chen Yang wrote:
> > Good catch, thanks. I see that there's no special handling of the '-'
> > filename that usually means stdout. We may want to add this as a common
> > command line usage pattern.
> > 
> We can touch a file name "-", so I think special handling of the '-' is unnecessary.

I want to avoid creating a file named '-'. It would work the same way as
'cat -' etc.

david
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/cmds-send.c b/cmds-send.c
index 2b9a610..aafa800 100644
--- a/cmds-send.c
+++ b/cmds-send.c
@@ -429,11 +429,6 @@  int cmd_send_start(int argc, char **argv)
 	memset(&send, 0, sizeof(send));
 	send.dump_fd = fileno(stdout);
 
-	if (isatty(send.dump_fd)) {
-		fprintf(stderr, "ERROR: not dumping send stream into a terminal, redirect it into a file\n");
-		return 1;
-	}
-
 	while ((c = getopt(argc, argv, "vf:i:p:")) != -1) {
 		switch (c) {
 		case 'v':
@@ -497,6 +492,13 @@  int cmd_send_start(int argc, char **argv)
 		}
 	}
 
+	if (isatty(send.dump_fd)) {
+		fprintf(stderr, 
+			"ERROR: not dumping send stream into a terminal, "
+			"redirect it into a file\n");
+		return 1;
+	}
+
 	/* use first send subvol to determine mount_root */
 	subvol = argv[optind];