linux-erofs.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] erofs-utils: erofs_io.c: clean up dev_open()
@ 2018-12-19 12:40 Gao Xiang
  2018-12-19 12:40 ` [PATCH 2/2] erofs-utils: introduce blk_write and clean up related code Gao Xiang
  2018-12-21  1:51 ` [PATCH 1/2] erofs-utils: erofs_io.c: clean up dev_open() Li Guifu
  0 siblings, 2 replies; 4+ messages in thread
From: Gao Xiang @ 2018-12-19 12:40 UTC (permalink / raw)


Signed-off-by: Gao Xiang <gaoxiang25 at huawei.com>
---
 erofs_io.c  | 74 ++++++++++++++++++-------------------------------------------
 mkfs_main.c | 11 ++++-----
 2 files changed, 27 insertions(+), 58 deletions(-)

diff --git a/erofs_io.c b/erofs_io.c
index 57e283e..563ca3f 100644
--- a/erofs_io.c
+++ b/erofs_io.c
@@ -22,93 +22,61 @@
 #define pr_fmt(fmt) "DEVICE IO: " FUNC_LINE_FMT fmt "\n"
 #include "erofs_debug.h"
 
-static char *erofs_devname;
+static const char *erofs_devname;
 static int erofs_devfd = -1;
 static u64 erofs_devsz;
 
 void dev_close(void)
 {
 	close(erofs_devfd);
-	free(erofs_devname);
 	erofs_devname = NULL;
 	erofs_devfd   = -1;
 	erofs_devsz   = 0;
 }
 
-int dev_open(const char *devname)
+int dev_open(const char *dev)
 {
-	char *dev;
 	struct stat st;
-	int fd;
-	int ret;
-
-	dev = strdup(devname);
-	if (!dev)
-		return -ENOMEM;
-again:
-	fd = open(dev, O_RDWR);
-	if (fd < 0 && errno != ENOENT) {
-		erofs_err("Open device/file(%s) fail.", dev);
-		free(dev);
-		return -errno;
-	}
+	int fd, ret;
 
+	fd = open(dev, O_RDWR | O_CREAT, 0644);
 	if (fd < 0) {
-		fd = open(dev, O_RDWR | O_CREAT | O_NOCTTY,
-			  S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH);
-		if (fd < 0) {
-			if (errno != EEXIST) {
-				erofs_err("Create image file(%s) fail.", dev);
-				free(dev);
-				return -errno;
-			}
-
-			erofs_dbg("Image file(%s) existed, it might be created by the other users.",
-				  dev);
-			goto again;
-
-		}
+		erofs_err("failed to open(%s).", dev);
+		return -errno;
 	}
 
 	ret = fstat(fd, &st);
 	if (ret) {
-		erofs_err("Get stat of device/file(%s) fail.", dev);
+		erofs_err("failed to fstat(%s).", dev);
 		close(fd);
-		free(dev);
 		return -errno;
 	}
 
-	if (!S_ISBLK(st.st_mode) && !S_ISREG(st.st_mode)) {
-		erofs_err("File (%s) type is wrong.", dev);
-		close(fd);
-		free(dev);
-		return -EINVAL;
-	}
-
-	if (S_ISREG(st.st_mode)) {
+	switch(st.st_mode & S_IFMT) {
+	case S_IFBLK:
+		erofs_devsz = st.st_size;
+		break;
+	case S_IFREG:
 		ret = ftruncate(fd, 0);
 		if (ret) {
-			erofs_err("Truncate file(%s) fail.", dev);
+			erofs_err("failed to ftruncate(%s).", dev);
 			close(fd);
-			free(dev);
 			return -errno;
 		}
-	}
-
-	erofs_devname = dev;
-	erofs_devfd   = fd;
-
-	if (S_ISBLK(st.st_mode)) {
-		erofs_devsz = st.st_size;
-	} else {
 		/* INT64_MAX is the limit of kernel vfs */
 		erofs_devsz = INT64_MAX;
+		break;
+	default:
+		erofs_err("bad file type (%s, %o).", dev, st.st_mode);
+		close(fd);
+		return -EINVAL;
 	}
 
+	erofs_devname = dev;
+	erofs_devfd = fd;
 	erofs_devsz = round_down(erofs_devsz, EROFS_BLKSIZE);
 
-	erofs_info("Open device/file %s", erofs_devname);
-
+	erofs_info("successfully to open %s", dev);
 	return 0;
 }
 
diff --git a/mkfs_main.c b/mkfs_main.c
index 17611f4..30b0a22 100644
--- a/mkfs_main.c
+++ b/mkfs_main.c
@@ -107,11 +107,6 @@ static void mkfs_parse_options_cfg(int argc, char *argv[])
 	erofs_compress_alg_init(erofs_cfg.c_alg_name);
 
 	mkfs_dump_config();
-
-	if (dev_open(erofs_cfg.c_img_path) < 0) {
-		erofs_err("dev_open is failed!!!");
-		usage(argv[0]);
-	}
 }
 
 void mkfs_update_erofs_header(u64 root_addr)
@@ -156,6 +151,12 @@ int main(int argc, char **argv)
 	mkfs_init_configure();
 	mkfs_parse_options_cfg(argc, argv);
 
+	err = dev_open(erofs_cfg.c_img_path);
+	if (err) {
+		usage(argv[0]);
+		return -1;
+	}
+
 	proot_node = mkfs_prepare_root_inode(erofs_cfg.c_src_path);
 	if (!proot_node)
 		goto exit;
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] erofs-utils: introduce blk_write and clean up related code
  2018-12-19 12:40 [PATCH 1/2] erofs-utils: erofs_io.c: clean up dev_open() Gao Xiang
@ 2018-12-19 12:40 ` Gao Xiang
  2018-12-21  1:51   ` Li Guifu
  2018-12-21  1:51 ` [PATCH 1/2] erofs-utils: erofs_io.c: clean up dev_open() Li Guifu
  1 sibling, 1 reply; 4+ messages in thread
From: Gao Xiang @ 2018-12-19 12:40 UTC (permalink / raw)


Signed-off-by: Gao Xiang <gaoxiang25 at huawei.com>
---
 erofs_cache.c |  3 +--
 erofs_io.c    |  7 -------
 erofs_io.h    |  8 ++++++--
 mkfs_inode.c  | 56 +++++++++++++++++++-------------------------------------
 4 files changed, 26 insertions(+), 48 deletions(-)

diff --git a/erofs_cache.c b/erofs_cache.c
index cfecd7f..c8af3de 100644
--- a/erofs_cache.c
+++ b/erofs_cache.c
@@ -174,8 +174,7 @@ int erofs_flush_all_blocks(void)
 			pbuf += count;
 		}
 
-		ret = dev_write(erofs_blk_buf,
-				blknr_to_addr(blk->bb_blkaddr), EROFS_BLKSIZE);
+		ret = blk_write(erofs_blk_buf, blk->bb_blkaddr);
 		if (ret)
 			break;
 	}
diff --git a/erofs_io.c b/erofs_io.c
index 563ca3f..1b6087d 100644
--- a/erofs_io.c
+++ b/erofs_io.c
@@ -119,13 +119,6 @@ int dev_write(void *buf, u64 offset, size_t len)
 	return 0;
 }
 
-int dev_write_block(void *buf, u32 blkaddr)
-{
-	erofs_info("Write data to block %u", blkaddr);
-
-	return dev_write(buf, blknr_to_addr(blkaddr), EROFS_BLKSIZE);
-}
-
 int dev_fsync(void)
 {
 	int ret;
diff --git a/erofs_io.h b/erofs_io.h
index b447062..caec141 100644
--- a/erofs_io.h
+++ b/erofs_io.h
@@ -10,15 +10,19 @@
 #define __EROFS_IO_H
 
 #include <sys/cdefs.h>
-#include "erofs_types.h"
+#include "mkfs_erofs.h"
 
 int dev_open(const char *devname);
 void dev_close(void);
 int dev_write(void *buf, u64 offset, size_t len);
-int dev_write_block(void *buf, u32 blkaddr);
 int dev_fsync(void);
 u64 dev_length(void);
 
+static inline int blk_write(void *buf, u32 blkaddr)
+{
+	return dev_write(buf, blknr_to_addr(blkaddr), EROFS_BLKSIZE);
+}
+
 #endif
 
 
diff --git a/mkfs_inode.c b/mkfs_inode.c
index db8e586..0985e77 100644
--- a/mkfs_inode.c
+++ b/mkfs_inode.c
@@ -389,17 +389,14 @@ static int mkfs_write_inode_dir(struct erofs_node_info *inode)
 
 			if (dentrys_size + EROFS_DIRENT_SIZE + len >
 			    EROFS_BLKSIZE) {
-				const u32 addr = inode->i_blkaddr + blk_cnt;
+				const u32 blkaddr = inode->i_blkaddr + blk_cnt;
 
 				write_dirents(pbuf, sum, start, pos);
-				ret = dev_write(pbuf,
-						blknr_to_addr(addr),
-						EROFS_BLKSIZE);
+				ret = blk_write(pbuf, blkaddr);
 				if (ret < 0) {
-					erofs_err(
-						"dev_write inode[%s] error[%s]",
-						inode->i_fullpath,
-						strerror(errno));
+					erofs_err("blk_write(file %s, err %s)",
+						  inode->i_fullpath,
+						  strerror(errno));
 					return ret;
 				}
 
@@ -441,17 +438,14 @@ static int mkfs_write_inode_dir(struct erofs_node_info *inode)
 			len = strlen(d->i_name);
 			if (dentrys_size + EROFS_DIRENT_SIZE + len >
 			    EROFS_BLKSIZE) {
-				const u32 addr = inode->i_blkaddr + blk_cnt;
+				const u32 blkaddr = inode->i_blkaddr + blk_cnt;
 
 				write_dirents(pbuf, sum, start, pos);
-				dev_write(pbuf,
-					  blknr_to_addr(addr),
-					  EROFS_BLKSIZE);
+				blk_write(pbuf, blkaddr);
 				if (ret < 0) {
-					erofs_err(
-						"dev_write inode[%s] error[%s]",
-						inode->i_fullpath,
-						strerror(errno));
+					erofs_err("blk_write(file %s, err %s)",
+						  inode->i_fullpath,
+						  strerror(errno));
 					return ret;
 				}
 
@@ -467,13 +461,12 @@ static int mkfs_write_inode_dir(struct erofs_node_info *inode)
 
 		/* write last page names */
 		if (start != pos) {
-			const u32 addr = inode->i_blkaddr + blk_cnt;
+			const u32 blkaddr = inode->i_blkaddr + blk_cnt;
 
 			write_dirents(pbuf, sum, start, pos);
-			ret = dev_write(pbuf, blknr_to_addr(addr),
-					EROFS_BLKSIZE);
+			ret = blk_write(pbuf, blkaddr);
 			if (ret < 0) {
-				erofs_err("dev_write inode[%s] error[%s]",
+				erofs_err("blk_write(file %s, err %s)",
 					  inode->i_fullpath,
 					  strerror(errno));
 				return ret;
@@ -524,8 +517,6 @@ static int mkfs_write_inode_regfile(struct erofs_node_info *inode)
 		}
 
 		for (i = 0; i < page_cnt; i++) {
-			u32 addr;
-
 			ret = read(fd, pbuf, EROFS_BLKSIZE);
 			if (ret < 0) {
 				erofs_err("read inode[%s] error[%s]",
@@ -534,12 +525,9 @@ static int mkfs_write_inode_regfile(struct erofs_node_info *inode)
 				return -errno;
 			}
 
-			addr = inode->i_blkaddr + i;
-
-			ret = dev_write(pbuf, blknr_to_addr(addr),
-					EROFS_BLKSIZE);
+			ret = blk_write(pbuf, inode->i_blkaddr + i);
 			if (ret < 0) {
-				erofs_err("dev_write inode[%s] ret[%d]",
+				erofs_err("blk_write inode[%s] ret[%d]",
 					  filepath,
 					  ret);
 				return ret;
@@ -575,8 +563,6 @@ static int mkfs_write_inode_regfile(struct erofs_node_info *inode)
 			}
 
 			for (i = 0; i < nblocks; i++) {
-				u32 addr;
-
 				ret = read(fd, pbuf, EROFS_BLKSIZE);
 				if (ret < 0) {
 					erofs_err("read inode[%s] error[%s]",
@@ -584,13 +570,10 @@ static int mkfs_write_inode_regfile(struct erofs_node_info *inode)
 						  strerror(errno));
 					exit(EXIT_FAILURE);
 				}
-				addr = inode->i_blkaddr + i;
 
-				ret = dev_write(pbuf,
-						blknr_to_addr(addr),
-						EROFS_BLKSIZE);
+				ret = blk_write(pbuf, inode->i_blkaddr + i);
 				if (ret < 0) {
-					erofs_err("dev_write inode[%s] ret[%d]",
+					erofs_err("blk_write inode[%s] ret[%d]",
 						  filepath,
 						  ret);
 					return ret;
@@ -657,10 +640,9 @@ static int mkfs_write_inode_symfile(struct erofs_node_info *inode)
 			return -errno;
 		}
 
-		ret = dev_write(pbuf, blknr_to_addr(inode->i_blkaddr),
-				EROFS_BLKSIZE);
+		ret = blk_write(pbuf, inode->i_blkaddr);
 		if (ret < 0) {
-			erofs_err("dev_write inode[%s] error[%s]",
+			erofs_err("blk_write inode[%s] error[%s]",
 				  inode->i_fullpath,
 				  strerror(errno));
 			return ret;
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 1/2] erofs-utils: erofs_io.c: clean up dev_open()
  2018-12-19 12:40 [PATCH 1/2] erofs-utils: erofs_io.c: clean up dev_open() Gao Xiang
  2018-12-19 12:40 ` [PATCH 2/2] erofs-utils: introduce blk_write and clean up related code Gao Xiang
@ 2018-12-21  1:51 ` Li Guifu
  1 sibling, 0 replies; 4+ messages in thread
From: Li Guifu @ 2018-12-21  1:51 UTC (permalink / raw)


On 2018/12/19 20:40, Gao Xiang wrote:
> Signed-off-by: Gao Xiang <gaoxiang25 at huawei.com>
> ---
>  erofs_io.c  | 74 ++++++++++++++++++-------------------------------------------
>  mkfs_main.c | 11 ++++-----
>  2 files changed, 27 insertions(+), 58 deletions(-)
>
> diff --git a/erofs_io.c b/erofs_io.c
> index 57e283e..563ca3f 100644
> --- a/erofs_io.c
> +++ b/erofs_io.c
> @@ -22,93 +22,61 @@
>  #define pr_fmt(fmt) "DEVICE IO: " FUNC_LINE_FMT fmt "\n"
>  #include "erofs_debug.h"
>  
> -static char *erofs_devname;
> +static const char *erofs_devname;
>  static int erofs_devfd = -1;
>  static u64 erofs_devsz;
>  
>  void dev_close(void)
>  {
>  	close(erofs_devfd);
> -	free(erofs_devname);
>  	erofs_devname = NULL;
>  	erofs_devfd   = -1;
>  	erofs_devsz   = 0;
>  }
>  
> -int dev_open(const char *devname)
> +int dev_open(const char *dev)
>  {
> -	char *dev;
>  	struct stat st;
> -	int fd;
> -	int ret;
> -
> -	dev = strdup(devname);
> -	if (!dev)
> -		return -ENOMEM;
> -again:
> -	fd = open(dev, O_RDWR);
> -	if (fd < 0 && errno != ENOENT) {
> -		erofs_err("Open device/file(%s) fail.", dev);
> -		free(dev);
> -		return -errno;
> -	}
> +	int fd, ret;
>  
> +	fd = open(dev, O_RDWR | O_CREAT, 0644);
>  	if (fd < 0) {
> -		fd = open(dev, O_RDWR | O_CREAT | O_NOCTTY,
> -			  S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH);
> -		if (fd < 0) {
> -			if (errno != EEXIST) {
> -				erofs_err("Create image file(%s) fail.", dev);
> -				free(dev);
> -				return -errno;
> -			}
> -
> -			erofs_dbg("Image file(%s) existed, it might be created by the other users.",
> -				  dev);
> -			goto again;
> -
> -		}
> +		erofs_err("failed to open(%s).", dev);
> +		return -errno;
>  	}
>  
>  	ret = fstat(fd, &st);
>  	if (ret) {
> -		erofs_err("Get stat of device/file(%s) fail.", dev);
> +		erofs_err("failed to fstat(%s).", dev);
>  		close(fd);
> -		free(dev);
>  		return -errno;
>  	}
>  
> -	if (!S_ISBLK(st.st_mode) && !S_ISREG(st.st_mode)) {
> -		erofs_err("File (%s) type is wrong.", dev);
> -		close(fd);
> -		free(dev);
> -		return -EINVAL;
> -	}
> -
> -	if (S_ISREG(st.st_mode)) {
> +	switch(st.st_mode & S_IFMT) {
> +	case S_IFBLK:
> +		erofs_devsz = st.st_size;
> +		break;
> +	case S_IFREG:
>  		ret = ftruncate(fd, 0);
>  		if (ret) {
> -			erofs_err("Truncate file(%s) fail.", dev);
> +			erofs_err("failed to ftruncate(%s).", dev);
>  			close(fd);
> -			free(dev);
>  			return -errno;
>  		}
> -	}
> -
> -	erofs_devname = dev;
> -	erofs_devfd   = fd;
> -
> -	if (S_ISBLK(st.st_mode)) {
> -		erofs_devsz = st.st_size;
> -	} else {
>  		/* INT64_MAX is the limit of kernel vfs */
>  		erofs_devsz = INT64_MAX;
> +		break;
> +	default:
> +		erofs_err("bad file type (%s, %o).", dev, st.st_mode);
> +		close(fd);
> +		return -EINVAL;
>  	}
>  
> +	erofs_devname = dev;
> +	erofs_devfd = fd;
>  	erofs_devsz = round_down(erofs_devsz, EROFS_BLKSIZE);
>  
> -	erofs_info("Open device/file %s", erofs_devname);
> -
> +	erofs_info("successfully to open %s", dev);
>  	return 0;
>  }
>  
> diff --git a/mkfs_main.c b/mkfs_main.c
> index 17611f4..30b0a22 100644
> --- a/mkfs_main.c
> +++ b/mkfs_main.c
> @@ -107,11 +107,6 @@ static void mkfs_parse_options_cfg(int argc, char *argv[])
>  	erofs_compress_alg_init(erofs_cfg.c_alg_name);
>  
>  	mkfs_dump_config();
> -
> -	if (dev_open(erofs_cfg.c_img_path) < 0) {
> -		erofs_err("dev_open is failed!!!");
> -		usage(argv[0]);
> -	}
>  }
>  
>  void mkfs_update_erofs_header(u64 root_addr)
> @@ -156,6 +151,12 @@ int main(int argc, char **argv)
>  	mkfs_init_configure();
>  	mkfs_parse_options_cfg(argc, argv);
>  
> +	err = dev_open(erofs_cfg.c_img_path);
> +	if (err) {
> +		usage(argv[0]);
> +		return -1;
> +	}
> +
>  	proot_node = mkfs_prepare_root_inode(erofs_cfg.c_src_path);
>  	if (!proot_node)
>  		goto exit;

Reviewed-by: Li Guifu <bluce.liguifu at huawei.com>

Thanks,

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 2/2] erofs-utils: introduce blk_write and clean up related code
  2018-12-19 12:40 ` [PATCH 2/2] erofs-utils: introduce blk_write and clean up related code Gao Xiang
@ 2018-12-21  1:51   ` Li Guifu
  0 siblings, 0 replies; 4+ messages in thread
From: Li Guifu @ 2018-12-21  1:51 UTC (permalink / raw)


On 2018/12/19 20:40, Gao Xiang wrote:
> Signed-off-by: Gao Xiang <gaoxiang25 at huawei.com>
> ---
>  erofs_cache.c |  3 +--
>  erofs_io.c    |  7 -------
>  erofs_io.h    |  8 ++++++--
>  mkfs_inode.c  | 56 +++++++++++++++++++-------------------------------------
>  4 files changed, 26 insertions(+), 48 deletions(-)
>
> diff --git a/erofs_cache.c b/erofs_cache.c
> index cfecd7f..c8af3de 100644
> --- a/erofs_cache.c
> +++ b/erofs_cache.c
> @@ -174,8 +174,7 @@ int erofs_flush_all_blocks(void)
>  			pbuf += count;
>  		}
>  
> -		ret = dev_write(erofs_blk_buf,
> -				blknr_to_addr(blk->bb_blkaddr), EROFS_BLKSIZE);
> +		ret = blk_write(erofs_blk_buf, blk->bb_blkaddr);
>  		if (ret)
>  			break;
>  	}
> diff --git a/erofs_io.c b/erofs_io.c
> index 563ca3f..1b6087d 100644
> --- a/erofs_io.c
> +++ b/erofs_io.c
> @@ -119,13 +119,6 @@ int dev_write(void *buf, u64 offset, size_t len)
>  	return 0;
>  }
>  
> -int dev_write_block(void *buf, u32 blkaddr)
> -{
> -	erofs_info("Write data to block %u", blkaddr);
> -
> -	return dev_write(buf, blknr_to_addr(blkaddr), EROFS_BLKSIZE);
> -}
> -
>  int dev_fsync(void)
>  {
>  	int ret;
> diff --git a/erofs_io.h b/erofs_io.h
> index b447062..caec141 100644
> --- a/erofs_io.h
> +++ b/erofs_io.h
> @@ -10,15 +10,19 @@
>  #define __EROFS_IO_H
>  
>  #include <sys/cdefs.h>
> -#include "erofs_types.h"
> +#include "mkfs_erofs.h"
>  
>  int dev_open(const char *devname);
>  void dev_close(void);
>  int dev_write(void *buf, u64 offset, size_t len);
> -int dev_write_block(void *buf, u32 blkaddr);
>  int dev_fsync(void);
>  u64 dev_length(void);
>  
> +static inline int blk_write(void *buf, u32 blkaddr)
> +{
> +	return dev_write(buf, blknr_to_addr(blkaddr), EROFS_BLKSIZE);
> +}
> +
>  #endif
>  
>  
> diff --git a/mkfs_inode.c b/mkfs_inode.c
> index db8e586..0985e77 100644
> --- a/mkfs_inode.c
> +++ b/mkfs_inode.c
> @@ -389,17 +389,14 @@ static int mkfs_write_inode_dir(struct erofs_node_info *inode)
>  
>  			if (dentrys_size + EROFS_DIRENT_SIZE + len >
>  			    EROFS_BLKSIZE) {
> -				const u32 addr = inode->i_blkaddr + blk_cnt;
> +				const u32 blkaddr = inode->i_blkaddr + blk_cnt;
>  
>  				write_dirents(pbuf, sum, start, pos);
> -				ret = dev_write(pbuf,
> -						blknr_to_addr(addr),
> -						EROFS_BLKSIZE);
> +				ret = blk_write(pbuf, blkaddr);
>  				if (ret < 0) {
> -					erofs_err(
> -						"dev_write inode[%s] error[%s]",
> -						inode->i_fullpath,
> -						strerror(errno));
> +					erofs_err("blk_write(file %s, err %s)",
> +						  inode->i_fullpath,
> +						  strerror(errno));
>  					return ret;
>  				}
>  
> @@ -441,17 +438,14 @@ static int mkfs_write_inode_dir(struct erofs_node_info *inode)
>  			len = strlen(d->i_name);
>  			if (dentrys_size + EROFS_DIRENT_SIZE + len >
>  			    EROFS_BLKSIZE) {
> -				const u32 addr = inode->i_blkaddr + blk_cnt;
> +				const u32 blkaddr = inode->i_blkaddr + blk_cnt;
>  
>  				write_dirents(pbuf, sum, start, pos);
> -				dev_write(pbuf,
> -					  blknr_to_addr(addr),
> -					  EROFS_BLKSIZE);
> +				blk_write(pbuf, blkaddr);
>  				if (ret < 0) {
> -					erofs_err(
> -						"dev_write inode[%s] error[%s]",
> -						inode->i_fullpath,
> -						strerror(errno));
> +					erofs_err("blk_write(file %s, err %s)",
> +						  inode->i_fullpath,
> +						  strerror(errno));
>  					return ret;
>  				}
>  
> @@ -467,13 +461,12 @@ static int mkfs_write_inode_dir(struct erofs_node_info *inode)
>  
>  		/* write last page names */
>  		if (start != pos) {
> -			const u32 addr = inode->i_blkaddr + blk_cnt;
> +			const u32 blkaddr = inode->i_blkaddr + blk_cnt;
>  
>  			write_dirents(pbuf, sum, start, pos);
> -			ret = dev_write(pbuf, blknr_to_addr(addr),
> -					EROFS_BLKSIZE);
> +			ret = blk_write(pbuf, blkaddr);
>  			if (ret < 0) {
> -				erofs_err("dev_write inode[%s] error[%s]",
> +				erofs_err("blk_write(file %s, err %s)",
>  					  inode->i_fullpath,
>  					  strerror(errno));
>  				return ret;
> @@ -524,8 +517,6 @@ static int mkfs_write_inode_regfile(struct erofs_node_info *inode)
>  		}
>  
>  		for (i = 0; i < page_cnt; i++) {
> -			u32 addr;
> -
>  			ret = read(fd, pbuf, EROFS_BLKSIZE);
>  			if (ret < 0) {
>  				erofs_err("read inode[%s] error[%s]",
> @@ -534,12 +525,9 @@ static int mkfs_write_inode_regfile(struct erofs_node_info *inode)
>  				return -errno;
>  			}
>  
> -			addr = inode->i_blkaddr + i;
> -
> -			ret = dev_write(pbuf, blknr_to_addr(addr),
> -					EROFS_BLKSIZE);
> +			ret = blk_write(pbuf, inode->i_blkaddr + i);
>  			if (ret < 0) {
> -				erofs_err("dev_write inode[%s] ret[%d]",
> +				erofs_err("blk_write inode[%s] ret[%d]",
>  					  filepath,
>  					  ret);
>  				return ret;
> @@ -575,8 +563,6 @@ static int mkfs_write_inode_regfile(struct erofs_node_info *inode)
>  			}
>  
>  			for (i = 0; i < nblocks; i++) {
> -				u32 addr;
> -
>  				ret = read(fd, pbuf, EROFS_BLKSIZE);
>  				if (ret < 0) {
>  					erofs_err("read inode[%s] error[%s]",
> @@ -584,13 +570,10 @@ static int mkfs_write_inode_regfile(struct erofs_node_info *inode)
>  						  strerror(errno));
>  					exit(EXIT_FAILURE);
>  				}
> -				addr = inode->i_blkaddr + i;
>  
> -				ret = dev_write(pbuf,
> -						blknr_to_addr(addr),
> -						EROFS_BLKSIZE);
> +				ret = blk_write(pbuf, inode->i_blkaddr + i);
>  				if (ret < 0) {
> -					erofs_err("dev_write inode[%s] ret[%d]",
> +					erofs_err("blk_write inode[%s] ret[%d]",
>  						  filepath,
>  						  ret);
>  					return ret;
> @@ -657,10 +640,9 @@ static int mkfs_write_inode_symfile(struct erofs_node_info *inode)
>  			return -errno;
>  		}
>  
> -		ret = dev_write(pbuf, blknr_to_addr(inode->i_blkaddr),
> -				EROFS_BLKSIZE);
> +		ret = blk_write(pbuf, inode->i_blkaddr);
>  		if (ret < 0) {
> -			erofs_err("dev_write inode[%s] error[%s]",
> +			erofs_err("blk_write inode[%s] error[%s]",
>  				  inode->i_fullpath,
>  				  strerror(errno));
>  			return ret;

Reviewed-by: Li Guifu <bluce.liguifu at huawei.com>

Thanks,

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-12-21  1:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-19 12:40 [PATCH 1/2] erofs-utils: erofs_io.c: clean up dev_open() Gao Xiang
2018-12-19 12:40 ` [PATCH 2/2] erofs-utils: introduce blk_write and clean up related code Gao Xiang
2018-12-21  1:51   ` Li Guifu
2018-12-21  1:51 ` [PATCH 1/2] erofs-utils: erofs_io.c: clean up dev_open() Li Guifu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).