summaryrefslogtreecommitdiff
path: root/e2fsck/pass3.c
diff options
context:
space:
mode:
authorAditya Kali <adityakali@google.com>2011-07-20 11:40:06 -0700
committerTheodore Ts'o <tytso@mit.edu>2011-08-31 16:31:13 -0400
commit624e4a6466dba9889f5f80dc168f2bb7c2a3f5d0 (patch)
treed4d5748fc2baea48a1cb6a9ad0e66300cdcc3b3f /e2fsck/pass3.c
parentf239fefc14226f655477179801c734749a04d4b4 (diff)
downloade2fsprogs-624e4a6466dba9889f5f80dc168f2bb7c2a3f5d0.tar.gz
e2fsck: add support for checking the built-in quota files
This patch adds support for doing quota accounting during full e2fsck scan if the 'quota' feature was set on the superblock. If user-visible quota inodes are in use, they will be hidden and converted to the reserved quota inodes. Signed-off-by: Aditya Kali <adityakali@google.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'e2fsck/pass3.c')
-rw-r--r--e2fsck/pass3.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/e2fsck/pass3.c b/e2fsck/pass3.c
index c0671643..e3d2ef70 100644
--- a/e2fsck/pass3.c
+++ b/e2fsck/pass3.c
@@ -488,6 +488,8 @@ ext2_ino_t e2fsck_get_lost_and_found(e2fsck_t ctx, int fix)
ext2fs_icount_store(ctx->inode_count, ino, 2);
ext2fs_icount_store(ctx->inode_link_info, ino, 2);
ctx->lost_and_found = ino;
+ quota_data_add(ctx->qctx, &inode, ino, fs->blocksize);
+ quota_data_inodes(ctx->qctx, &inode, ino, +1);
#if 0
printf("/lost+found created; inode #%lu\n", ino);
#endif
@@ -790,6 +792,7 @@ errcode_t e2fsck_expand_directory(e2fsck_t ctx, ext2_ino_t dir,
inode.i_size = (es.last_block + 1) * fs->blocksize;
ext2fs_iblk_add_blocks(fs, &inode, es.newblocks);
+ quota_data_add(ctx->qctx, &inode, dir, es.newblocks * fs->blocksize);
e2fsck_write_inode(ctx, dir, &inode, "expand_directory");