
On 30 April 2014 03:39, Lukasz Majewski l.majewski@samsung.com wrote:
Code responsible for handling situation when ext4 has block size of 1024B can be ordered to take less space.
This patch does that for ext4 common and write files.
Signed-off-by: Lukasz Majewski l.majewski@samsung.com
Reviewed-by: Simon Glass sjg@chromium.org
fs/ext4/ext4_common.c | 6 ++---- fs/ext4/ext4_write.c | 50 ++++++++++++++++--------------------------------- 2 files changed, 18 insertions(+), 38 deletions(-)
diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c index 02da75c..62e2e80 100644 --- a/fs/ext4/ext4_common.c +++ b/fs/ext4/ext4_common.c
[snip]
@@ -181,10 +179,8 @@ static void delete_double_indirect_block(struct ext2_inode *inode) break;
debug("DICB releasing %u\n", *di_buffer);
if (fs->blksz != 1024) {
bg_idx = (*di_buffer) / blk_per_grp;
} else {
bg_idx = (*di_buffer) / blk_per_grp;
bg_idx = (*di_buffer) / blk_per_grp;
You don't need the brackets here (or below).
if (fs->blksz == 1024) { remainder = (*di_buffer) % blk_per_grp; if (!remainder) bg_idx--;
@@ -213,10 +209,8 @@ static void delete_double_indirect_block(struct ext2_inode *inode)
/* removing the parent double indirect block */ blknr = inode->b.blocks.double_indir_block;
if (fs->blksz != 1024) {
bg_idx = blknr / blk_per_grp;
} else {
bg_idx = blknr / blk_per_grp;
bg_idx = blknr / blk_per_grp;
if (fs->blksz == 1024) { remainder = blknr % blk_per_grp; if (!remainder) bg_idx--;
@@ -293,11 +287,8 @@ static void delete_triple_indirect_block(struct ext2_inode *inode) for (j = 0; j < fs->blksz / sizeof(int); j++) { if (*tip_buffer == 0) break;
if (fs->blksz != 1024) {
bg_idx = (*tip_buffer) / blk_per_grp;
} else {
bg_idx = (*tip_buffer) / blk_per_grp;
bg_idx = (*tip_buffer) / blk_per_grp;
if (fs->blksz == 1024) { remainder = (*tip_buffer) % blk_per_grp; if (!remainder) bg_idx--;
@@ -336,11 +327,8 @@ static void delete_triple_indirect_block(struct ext2_inode *inode) * removing the grand parent blocks * which is connected to inode */
if (fs->blksz != 1024) {
bg_idx = (*tigp_buffer) / blk_per_grp;
} else {
bg_idx = (*tigp_buffer) / blk_per_grp;
bg_idx = (*tigp_buffer) / blk_per_grp;
if (fs->blksz == 1024) { remainder = (*tigp_buffer) % blk_per_grp; if (!remainder) bg_idx--;
@@ -371,10 +359,8 @@ static void delete_triple_indirect_block(struct ext2_inode *inode)
/* removing the grand parent triple indirect block */ blknr = inode->b.blocks.triple_indir_block;
if (fs->blksz != 1024) {
bg_idx = blknr / blk_per_grp;
} else {
bg_idx = blknr / blk_per_grp;
bg_idx = blknr / blk_per_grp;
if (fs->blksz == 1024) { remainder = blknr % blk_per_grp; if (!remainder) bg_idx--;
@@ -452,10 +438,8 @@ static int ext4fs_delete_file(int inodeno)
for (i = 0; i < no_blocks; i++) { blknr = read_allocated_block(&(node_inode->inode), i);
if (fs->blksz != 1024) {
bg_idx = blknr / blk_per_grp;
} else {
bg_idx = blknr / blk_per_grp;
bg_idx = blknr / blk_per_grp;
if (fs->blksz == 1024) { remainder = blknr % blk_per_grp; if (!remainder) bg_idx--;
@@ -499,10 +483,8 @@ static int ext4fs_delete_file(int inodeno) no_blocks++; for (i = 0; i < no_blocks; i++) { blknr = read_allocated_block(&inode, i);
if (fs->blksz != 1024) {
bg_idx = blknr / blk_per_grp;
} else {
bg_idx = blknr / blk_per_grp;
bg_idx = blknr / blk_per_grp;
if (fs->blksz == 1024) { remainder = blknr % blk_per_grp; if (!remainder) bg_idx--;
-- 1.7.10.4