diff options
author | Li Xi <pkuelelixi@gmail.com> | 2016-02-29 22:57:05 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2016-03-06 17:33:39 -0500 |
commit | 080e09b46ff1f6b00b26231868002e781e98adf2 (patch) | |
tree | 8ec3adb58e87162def29c3cc8f89603d51bf9b73 /e2fsck/pass1.c | |
parent | 0c18d0368a8cbcff27a1923902cc29439981454f (diff) | |
download | android_external_e2fsprogs-080e09b46ff1f6b00b26231868002e781e98adf2.tar.gz android_external_e2fsprogs-080e09b46ff1f6b00b26231868002e781e98adf2.tar.bz2 android_external_e2fsprogs-080e09b46ff1f6b00b26231868002e781e98adf2.zip |
Add project quota support
This patch adds project quota support. An new quota type PRJQUOTA(2)
is added. EXT4_PRJ_QUOTA_INO(11) is reserved for project quota inode.
The super block reservers an field s_prj_quota_inum for saving
project quota inode. And each inode adds an internal field i_projid
for saving its project ID.
Signed-off-by: Li Xi <lixi@ddn.com>
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'e2fsck/pass1.c')
-rw-r--r-- | e2fsck/pass1.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index 8d0192ef..631d7355 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -102,7 +102,7 @@ struct process_block_struct { struct process_inode_block { ext2_ino_t ino; - struct ext2_inode inode; + struct ext2_inode_large inode; }; struct scan_callback_struct { @@ -1774,7 +1774,8 @@ void e2fsck_pass1(e2fsck_t ctx) inode->i_block[EXT2_TIND_BLOCK] || ext2fs_file_acl_block(fs, inode))) { inodes_to_process[process_inode_count].ino = ino; - inodes_to_process[process_inode_count].inode = *inode; + inodes_to_process[process_inode_count].inode = + *(struct ext2_inode_large *)inode; process_inode_count++; } else check_blocks(ctx, &pctx, block_buf); @@ -3120,7 +3121,8 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx, } } - if (ino == EXT2_ROOT_INO || ino >= EXT2_FIRST_INODE(ctx->fs->super)) { + if (ino != quota_type2inum(PRJQUOTA, fs->super) && + (ino == EXT2_ROOT_INO || ino >= EXT2_FIRST_INODE(ctx->fs->super))) { quota_data_add(ctx->qctx, inode, ino, pb.num_blocks * fs->blocksize); quota_data_inodes(ctx->qctx, inode, ino, +1); |