tools: env: Refactor write path of flash_io()

Extract write path of flash_io() into a separate function. This patch
should be a functional no-op.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Reviewed-by: Stefano Babic <sbabic@denx.de>
This commit is contained in:
Alex Kiernan 2018-03-09 12:13:01 +00:00 committed by Tom Rini
parent 2deb3cac08
commit 899b5338fa

36
tools/env/fw_env.c vendored
View File

@ -1225,25 +1225,15 @@ static int flash_read(int fd)
return 0;
}
static int flash_io(int mode)
static int flash_io_write(int fd_current)
{
int fd_current, fd_target, rc, dev_target;
int fd_target, rc, dev_target;
/* dev_current: fd_current, erase_current */
fd_current = open(DEVNAME(dev_current), mode);
if (fd_current < 0) {
fprintf(stderr,
"Can't open %s: %s\n",
DEVNAME(dev_current), strerror(errno));
return -1;
}
if (mode == O_RDWR) {
if (have_redund_env) {
/* switch to next partition for writing */
dev_target = !dev_current;
/* dev_target: fd_target, erase_target */
fd_target = open(DEVNAME(dev_target), mode);
fd_target = open(DEVNAME(dev_target), O_RDWR);
if (fd_target < 0) {
fprintf(stderr,
"Can't open %s: %s\n",
@ -1279,11 +1269,29 @@ static int flash_io(int mode)
rc = -1;
}
}
exit:
return rc;
}
static int flash_io(int mode)
{
int fd_current, rc;
/* dev_current: fd_current, erase_current */
fd_current = open(DEVNAME(dev_current), mode);
if (fd_current < 0) {
fprintf(stderr,
"Can't open %s: %s\n",
DEVNAME(dev_current), strerror(errno));
return -1;
}
if (mode == O_RDWR) {
rc = flash_io_write(fd_current);
} else {
rc = flash_read(fd_current);
}
exit:
if (close(fd_current)) {
fprintf(stderr,
"I/O error on %s: %s\n",