mirror of https://github.com/vitalif/e2fsprogs
commit
2b24aadee8
|
@ -363,6 +363,8 @@ extern errcode_t ext2fs_punch(ext2_filsys fs, ext2_ino_t ino,
|
||||||
|
|
||||||
if (start > ~0U)
|
if (start > ~0U)
|
||||||
return 0;
|
return 0;
|
||||||
|
if (end > ~0U)
|
||||||
|
end = ~0U;
|
||||||
count = ((end - start + 1) < ~0U) ? (end - start + 1) : ~0U;
|
count = ((end - start + 1) < ~0U) ? (end - start + 1) : ~0U;
|
||||||
retval = ext2fs_punch_ind(fs, inode, block_buf,
|
retval = ext2fs_punch_ind(fs, inode, block_buf,
|
||||||
(blk_t) start, count);
|
(blk_t) start, count);
|
||||||
|
|
|
@ -98,19 +98,6 @@ void update_grace_times(struct dquot *q)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int release_blocks_proc(ext2_filsys fs, blk64_t *blocknr,
|
|
||||||
e2_blkcnt_t blockcnt EXT2FS_ATTR((unused)),
|
|
||||||
blk64_t ref_block EXT2FS_ATTR((unused)),
|
|
||||||
int ref_offset EXT2FS_ATTR((unused)),
|
|
||||||
void *private EXT2FS_ATTR((unused)))
|
|
||||||
{
|
|
||||||
blk64_t block;
|
|
||||||
|
|
||||||
block = *blocknr;
|
|
||||||
ext2fs_block_alloc_stats2(fs, block, -1);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int compute_num_blocks_proc(ext2_filsys fs, blk64_t *blocknr,
|
static int compute_num_blocks_proc(ext2_filsys fs, blk64_t *blocknr,
|
||||||
e2_blkcnt_t blockcnt EXT2FS_ATTR((unused)),
|
e2_blkcnt_t blockcnt EXT2FS_ATTR((unused)),
|
||||||
blk64_t ref_block EXT2FS_ATTR((unused)),
|
blk64_t ref_block EXT2FS_ATTR((unused)),
|
||||||
|
@ -135,9 +122,9 @@ errcode_t quota_inode_truncate(ext2_filsys fs, ext2_ino_t ino)
|
||||||
inode.i_dtime = fs->now ? fs->now : time(0);
|
inode.i_dtime = fs->now ? fs->now : time(0);
|
||||||
if (!ext2fs_inode_has_valid_blocks2(fs, &inode))
|
if (!ext2fs_inode_has_valid_blocks2(fs, &inode))
|
||||||
return 0;
|
return 0;
|
||||||
|
err = ext2fs_punch(fs, ino, &inode, NULL, 0, ~0ULL);
|
||||||
ext2fs_block_iterate3(fs, ino, BLOCK_FLAG_READ_ONLY, NULL,
|
if (err)
|
||||||
release_blocks_proc, NULL);
|
return err;
|
||||||
fs->flags &= ~EXT2_FLAG_SUPER_ONLY;
|
fs->flags &= ~EXT2_FLAG_SUPER_ONLY;
|
||||||
memset(&inode, 0, sizeof(struct ext2_inode));
|
memset(&inode, 0, sizeof(struct ext2_inode));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -2653,8 +2653,7 @@ retry_open:
|
||||||
int set_csum = 0;
|
int set_csum = 0;
|
||||||
dgrp_t i;
|
dgrp_t i;
|
||||||
|
|
||||||
if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
|
if (ext2fs_has_group_desc_csum(fs)) {
|
||||||
EXT4_FEATURE_RO_COMPAT_METADATA_CSUM)) {
|
|
||||||
/*
|
/*
|
||||||
* Changing the UUID requires rewriting all metadata,
|
* Changing the UUID requires rewriting all metadata,
|
||||||
* which can race with a mounted fs. Don't allow that.
|
* which can race with a mounted fs. Don't allow that.
|
||||||
|
@ -2665,12 +2664,9 @@ retry_open:
|
||||||
"unmounted.\n"), stderr);
|
"unmounted.\n"), stderr);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (check_fsck_needed(fs))
|
if (check_fsck_needed(fs))
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
|
||||||
|
|
||||||
if (ext2fs_has_group_desc_csum(fs)) {
|
|
||||||
/*
|
/*
|
||||||
* Determine if the block group checksums are
|
* Determine if the block group checksums are
|
||||||
* correct so we know whether or not to set
|
* correct so we know whether or not to set
|
||||||
|
|
Loading…
Reference in New Issue