git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ext4: replace inode uid,gid,mode init with helper
[safe/jmp/linux-2.6]
/
fs
/
ext4
/
ialloc.c
diff --git
a/fs/ext4/ialloc.c
b/fs/ext4/ialloc.c
index
361c0b9
..
1a0e183
100644
(file)
--- a/
fs/ext4/ialloc.c
+++ b/
fs/ext4/ialloc.c
@@
-263,7
+263,7
@@
void ext4_free_inode(handle_t *handle, struct inode *inode)
ext4_group_t f;
f = ext4_flex_group(sbi, block_group);
ext4_group_t f;
f = ext4_flex_group(sbi, block_group);
- atomic_dec(&sbi->s_flex_groups[f].
free_inode
s);
+ atomic_dec(&sbi->s_flex_groups[f].
used_dir
s);
}
}
}
}
@@
-773,7
+773,7
@@
static int ext4_claim_inode(struct super_block *sb,
if (sbi->s_log_groups_per_flex) {
ext4_group_t f = ext4_flex_group(sbi, group);
if (sbi->s_log_groups_per_flex) {
ext4_group_t f = ext4_flex_group(sbi, group);
- atomic_inc(&sbi->s_flex_groups[f].
free_inode
s);
+ atomic_inc(&sbi->s_flex_groups[f].
used_dir
s);
}
}
gdp->bg_checksum = ext4_group_desc_csum(sbi, group, gdp);
}
}
gdp->bg_checksum = ext4_group_desc_csum(sbi, group, gdp);
@@
-979,16
+979,12
@@
got:
atomic_dec(&sbi->s_flex_groups[flex_group].free_inodes);
}
atomic_dec(&sbi->s_flex_groups[flex_group].free_inodes);
}
- inode->i_uid = current_fsuid();
- if (test_opt(sb, GRPID))
+ if (test_opt(sb, GRPID)) {
+ inode->i_mode = mode;
+ inode->i_uid = current_fsuid();
inode->i_gid = dir->i_gid;
inode->i_gid = dir->i_gid;
- else if (dir->i_mode & S_ISGID) {
- inode->i_gid = dir->i_gid;
- if (S_ISDIR(mode))
- mode |= S_ISGID;
} else
} else
- inode->i_gid = current_fsgid();
- inode->i_mode = mode;
+ inode_init_owner(inode, dir, mode);
inode->i_ino = ino + group * EXT4_INODES_PER_GROUP(sb);
/* This is the optimal IO size (for stat), not the fs block size */
inode->i_ino = ino + group * EXT4_INODES_PER_GROUP(sb);
/* This is the optimal IO size (for stat), not the fs block size */