|
@@ -1127,8 +1127,8 @@ static void init_inode(struct inode *inode, struct path *path)
|
|
REISERFS_I(inode)->i_prealloc_count = 0;
|
|
REISERFS_I(inode)->i_prealloc_count = 0;
|
|
REISERFS_I(inode)->i_trans_id = 0;
|
|
REISERFS_I(inode)->i_trans_id = 0;
|
|
REISERFS_I(inode)->i_jl = NULL;
|
|
REISERFS_I(inode)->i_jl = NULL;
|
|
- REISERFS_I(inode)->i_acl_access = NULL;
|
|
|
|
- REISERFS_I(inode)->i_acl_default = NULL;
|
|
|
|
|
|
+ reiserfs_init_acl_access(inode);
|
|
|
|
+ reiserfs_init_acl_default(inode);
|
|
reiserfs_init_xattr_rwsem(inode);
|
|
reiserfs_init_xattr_rwsem(inode);
|
|
|
|
|
|
if (stat_data_v1(ih)) {
|
|
if (stat_data_v1(ih)) {
|
|
@@ -1834,8 +1834,8 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th,
|
|
REISERFS_I(inode)->i_attrs =
|
|
REISERFS_I(inode)->i_attrs =
|
|
REISERFS_I(dir)->i_attrs & REISERFS_INHERIT_MASK;
|
|
REISERFS_I(dir)->i_attrs & REISERFS_INHERIT_MASK;
|
|
sd_attrs_to_i_attrs(REISERFS_I(inode)->i_attrs, inode);
|
|
sd_attrs_to_i_attrs(REISERFS_I(inode)->i_attrs, inode);
|
|
- REISERFS_I(inode)->i_acl_access = NULL;
|
|
|
|
- REISERFS_I(inode)->i_acl_default = NULL;
|
|
|
|
|
|
+ reiserfs_init_acl_access(inode);
|
|
|
|
+ reiserfs_init_acl_default(inode);
|
|
reiserfs_init_xattr_rwsem(inode);
|
|
reiserfs_init_xattr_rwsem(inode);
|
|
|
|
|
|
if (old_format_only(sb))
|
|
if (old_format_only(sb))
|
|
@@ -1974,11 +1974,13 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th,
|
|
* iput doesn't deadlock in reiserfs_delete_xattrs. The locking
|
|
* iput doesn't deadlock in reiserfs_delete_xattrs. The locking
|
|
* code really needs to be reworked, but this will take care of it
|
|
* code really needs to be reworked, but this will take care of it
|
|
* for now. -jeffm */
|
|
* for now. -jeffm */
|
|
|
|
+#ifdef CONFIG_REISERFS_FS_POSIX_ACL
|
|
if (REISERFS_I(dir)->i_acl_default && !IS_ERR(REISERFS_I(dir)->i_acl_default)) {
|
|
if (REISERFS_I(dir)->i_acl_default && !IS_ERR(REISERFS_I(dir)->i_acl_default)) {
|
|
reiserfs_write_unlock_xattrs(dir->i_sb);
|
|
reiserfs_write_unlock_xattrs(dir->i_sb);
|
|
iput(inode);
|
|
iput(inode);
|
|
reiserfs_write_lock_xattrs(dir->i_sb);
|
|
reiserfs_write_lock_xattrs(dir->i_sb);
|
|
} else
|
|
} else
|
|
|
|
+#endif
|
|
iput(inode);
|
|
iput(inode);
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|