Loading fs/ext3/balloc.c +12 −9 Original line number Diff line number Diff line Loading @@ -1991,6 +1991,7 @@ ext3_grpblk_t ext3_trim_all_free(struct super_block *sb, unsigned int group, spin_unlock(sb_bgl_lock(sbi, group)); percpu_counter_sub(&sbi->s_freeblocks_counter, next - start); free_blocks -= next - start; /* Do not issue a TRIM on extents smaller than minblocks */ if ((next - start) < minblocks) goto free_extent; Loading Loading @@ -2040,7 +2041,7 @@ ext3_grpblk_t ext3_trim_all_free(struct super_block *sb, unsigned int group, cond_resched(); /* No more suitable extents */ if ((free_blocks - count) < minblocks) if (free_blocks < minblocks) break; } Loading Loading @@ -2090,7 +2091,8 @@ int ext3_trim_fs(struct super_block *sb, struct fstrim_range *range) ext3_fsblk_t max_blks = le32_to_cpu(es->s_blocks_count); int ret = 0; start = range->start >> sb->s_blocksize_bits; start = (range->start >> sb->s_blocksize_bits) + le32_to_cpu(es->s_first_data_block); len = range->len >> sb->s_blocksize_bits; minlen = range->minlen >> sb->s_blocksize_bits; trimmed = 0; Loading @@ -2099,10 +2101,6 @@ int ext3_trim_fs(struct super_block *sb, struct fstrim_range *range) return -EINVAL; if (start >= max_blks) goto out; if (start < le32_to_cpu(es->s_first_data_block)) { len -= le32_to_cpu(es->s_first_data_block) - start; start = le32_to_cpu(es->s_first_data_block); } if (start + len > max_blks) len = max_blks - start; Loading @@ -2129,10 +2127,15 @@ int ext3_trim_fs(struct super_block *sb, struct fstrim_range *range) if (free_blocks < minlen) continue; if (len >= EXT3_BLOCKS_PER_GROUP(sb)) len -= (EXT3_BLOCKS_PER_GROUP(sb) - first_block); else /* * For all the groups except the last one, last block will * always be EXT3_BLOCKS_PER_GROUP(sb), so we only need to * change it for the last group in which case first_block + * len < EXT3_BLOCKS_PER_GROUP(sb). */ if (first_block + len < EXT3_BLOCKS_PER_GROUP(sb)) last_block = first_block + len; len -= last_block - first_block; ret = ext3_trim_all_free(sb, group, first_block, last_block, minlen); Loading fs/ext3/namei.c +1 −1 Original line number Diff line number Diff line Loading @@ -1540,8 +1540,8 @@ static int ext3_dx_add_entry(handle_t *handle, struct dentry *dentry, goto cleanup; node2 = (struct dx_node *)(bh2->b_data); entries2 = node2->entries; memset(&node2->fake, 0, sizeof(struct fake_dirent)); node2->fake.rec_len = ext3_rec_len_to_disk(sb->s_blocksize); node2->fake.inode = 0; BUFFER_TRACE(frame->bh, "get_write_access"); err = ext3_journal_get_write_access(handle, frame->bh); if (err) Loading fs/ext3/super.c +7 −0 Original line number Diff line number Diff line Loading @@ -1464,6 +1464,13 @@ static void ext3_orphan_cleanup (struct super_block * sb, return; } /* Check if feature set allows readwrite operations */ if (EXT3_HAS_RO_COMPAT_FEATURE(sb, ~EXT3_FEATURE_RO_COMPAT_SUPP)) { ext3_msg(sb, KERN_INFO, "Skipping orphan cleanup due to " "unknown ROCOMPAT features"); return; } if (EXT3_SB(sb)->s_mount_state & EXT3_ERROR_FS) { if (es->s_last_orphan) jbd_debug(1, "Errors on filesystem, " Loading fs/jbd/journal.c +1 −1 Original line number Diff line number Diff line Loading @@ -839,7 +839,7 @@ journal_t * journal_init_inode (struct inode *inode) err = journal_bmap(journal, 0, &blocknr); /* If that failed, give up */ if (err) { printk(KERN_ERR "%s: Cannnot locate journal superblock\n", printk(KERN_ERR "%s: Cannot locate journal superblock\n", __func__); goto out_err; } Loading fs/jbd2/journal.c +1 −1 Original line number Diff line number Diff line Loading @@ -991,7 +991,7 @@ journal_t * jbd2_journal_init_inode (struct inode *inode) err = jbd2_journal_bmap(journal, 0, &blocknr); /* If that failed, give up */ if (err) { printk(KERN_ERR "%s: Cannnot locate journal superblock\n", printk(KERN_ERR "%s: Cannot locate journal superblock\n", __func__); goto out_err; } Loading Loading
fs/ext3/balloc.c +12 −9 Original line number Diff line number Diff line Loading @@ -1991,6 +1991,7 @@ ext3_grpblk_t ext3_trim_all_free(struct super_block *sb, unsigned int group, spin_unlock(sb_bgl_lock(sbi, group)); percpu_counter_sub(&sbi->s_freeblocks_counter, next - start); free_blocks -= next - start; /* Do not issue a TRIM on extents smaller than minblocks */ if ((next - start) < minblocks) goto free_extent; Loading Loading @@ -2040,7 +2041,7 @@ ext3_grpblk_t ext3_trim_all_free(struct super_block *sb, unsigned int group, cond_resched(); /* No more suitable extents */ if ((free_blocks - count) < minblocks) if (free_blocks < minblocks) break; } Loading Loading @@ -2090,7 +2091,8 @@ int ext3_trim_fs(struct super_block *sb, struct fstrim_range *range) ext3_fsblk_t max_blks = le32_to_cpu(es->s_blocks_count); int ret = 0; start = range->start >> sb->s_blocksize_bits; start = (range->start >> sb->s_blocksize_bits) + le32_to_cpu(es->s_first_data_block); len = range->len >> sb->s_blocksize_bits; minlen = range->minlen >> sb->s_blocksize_bits; trimmed = 0; Loading @@ -2099,10 +2101,6 @@ int ext3_trim_fs(struct super_block *sb, struct fstrim_range *range) return -EINVAL; if (start >= max_blks) goto out; if (start < le32_to_cpu(es->s_first_data_block)) { len -= le32_to_cpu(es->s_first_data_block) - start; start = le32_to_cpu(es->s_first_data_block); } if (start + len > max_blks) len = max_blks - start; Loading @@ -2129,10 +2127,15 @@ int ext3_trim_fs(struct super_block *sb, struct fstrim_range *range) if (free_blocks < minlen) continue; if (len >= EXT3_BLOCKS_PER_GROUP(sb)) len -= (EXT3_BLOCKS_PER_GROUP(sb) - first_block); else /* * For all the groups except the last one, last block will * always be EXT3_BLOCKS_PER_GROUP(sb), so we only need to * change it for the last group in which case first_block + * len < EXT3_BLOCKS_PER_GROUP(sb). */ if (first_block + len < EXT3_BLOCKS_PER_GROUP(sb)) last_block = first_block + len; len -= last_block - first_block; ret = ext3_trim_all_free(sb, group, first_block, last_block, minlen); Loading
fs/ext3/namei.c +1 −1 Original line number Diff line number Diff line Loading @@ -1540,8 +1540,8 @@ static int ext3_dx_add_entry(handle_t *handle, struct dentry *dentry, goto cleanup; node2 = (struct dx_node *)(bh2->b_data); entries2 = node2->entries; memset(&node2->fake, 0, sizeof(struct fake_dirent)); node2->fake.rec_len = ext3_rec_len_to_disk(sb->s_blocksize); node2->fake.inode = 0; BUFFER_TRACE(frame->bh, "get_write_access"); err = ext3_journal_get_write_access(handle, frame->bh); if (err) Loading
fs/ext3/super.c +7 −0 Original line number Diff line number Diff line Loading @@ -1464,6 +1464,13 @@ static void ext3_orphan_cleanup (struct super_block * sb, return; } /* Check if feature set allows readwrite operations */ if (EXT3_HAS_RO_COMPAT_FEATURE(sb, ~EXT3_FEATURE_RO_COMPAT_SUPP)) { ext3_msg(sb, KERN_INFO, "Skipping orphan cleanup due to " "unknown ROCOMPAT features"); return; } if (EXT3_SB(sb)->s_mount_state & EXT3_ERROR_FS) { if (es->s_last_orphan) jbd_debug(1, "Errors on filesystem, " Loading
fs/jbd/journal.c +1 −1 Original line number Diff line number Diff line Loading @@ -839,7 +839,7 @@ journal_t * journal_init_inode (struct inode *inode) err = journal_bmap(journal, 0, &blocknr); /* If that failed, give up */ if (err) { printk(KERN_ERR "%s: Cannnot locate journal superblock\n", printk(KERN_ERR "%s: Cannot locate journal superblock\n", __func__); goto out_err; } Loading
fs/jbd2/journal.c +1 −1 Original line number Diff line number Diff line Loading @@ -991,7 +991,7 @@ journal_t * jbd2_journal_init_inode (struct inode *inode) err = jbd2_journal_bmap(journal, 0, &blocknr); /* If that failed, give up */ if (err) { printk(KERN_ERR "%s: Cannnot locate journal superblock\n", printk(KERN_ERR "%s: Cannot locate journal superblock\n", __func__); goto out_err; } Loading