]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - fs/ext4/ext4fs.c
dm: Drop the block_dev_desc_t typedef
[people/ms/u-boot.git] / fs / ext4 / ext4fs.c
index 943b5bcf35e903382dbc7f928d6577b6874c51c4..43c8897793f2869aaf2030e8a266f3847a474974 100644 (file)
@@ -25,6 +25,7 @@
 #include <ext_common.h>
 #include <ext4fs.h>
 #include "ext4_common.h"
+#include <div64.h>
 
 int ext4fs_symlinknest;
 struct ext_filesystem ext_fs;
@@ -67,11 +68,11 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
        if (len > filesize)
                len = filesize;
 
-       blockcnt = ((len + pos) + blocksize - 1) / blocksize;
+       blockcnt = lldiv(((len + pos) + blocksize - 1), blocksize);
 
-       for (i = pos / blocksize; i < blockcnt; i++) {
+       for (i = lldiv(pos, blocksize); i < blockcnt; i++) {
                lbaint_t blknr;
-               int blockoff = pos % blocksize;
+               int blockoff = pos - (blocksize * i);
                int blockend = blocksize;
                int skipfirst = 0;
                blknr = read_allocated_block(&(node->inode), i);
@@ -82,7 +83,7 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
 
                /* Last block.  */
                if (i == blockcnt - 1) {
-                       blockend = (len + pos) % blocksize;
+                       blockend = (len + pos) - (blocksize * i);
 
                        /* The last portion is exactly blocksize. */
                        if (!blockend)
@@ -90,7 +91,7 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
                }
 
                /* First block. */
-               if (i == pos / blocksize) {
+               if (i == lldiv(pos, blocksize)) {
                        skipfirst = blockoff;
                        blockend -= skipfirst;
                }
@@ -197,7 +198,7 @@ int ext4fs_read(char *buf, loff_t len, loff_t *actread)
        return ext4fs_read_file(ext4fs_file, 0, len, buf, actread);
 }
 
-int ext4fs_probe(block_dev_desc_t *fs_dev_desc,
+int ext4fs_probe(struct blk_desc *fs_dev_desc,
                 disk_partition_t *fs_partition)
 {
        ext4fs_set_blk_dev(fs_dev_desc, fs_partition);