2012-09-05 16:51:09

by Bernd Schubert

[permalink] [raw]
Subject: [PATCH] ext4: ext4_mknod: always set i_op

While I was looking through the code, I noticed i_op
is not always initialized, although operations such
as setattr probably always should be set.


ext4: ext4_mknod: always set i_op

From: Bernd Schubert <[email protected]>

ext4_special_inode_operations have their own ifdef CONFIG_EXT4_FS_XATTR
to mask those methods. And ext4_iget also always sets it, so there is
an inconsistency.

Signed-off-by: Bernd Schubert <[email protected]>
---
fs/ext4/namei.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index 2a42cc0..d13873d 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -2149,9 +2149,7 @@ retry:
err = PTR_ERR(inode);
if (!IS_ERR(inode)) {
init_special_inode(inode, inode->i_mode, rdev);
-#ifdef CONFIG_EXT4_FS_XATTR
inode->i_op = &ext4_special_inode_operations;
-#endif
err = ext4_add_nondir(handle, dentry, inode);
}
ext4_journal_stop(handle);




2012-09-27 01:25:39

by Theodore Ts'o

[permalink] [raw]
Subject: Re: ext4: ext4_mknod: always set i_op

On Wed, Sep 05, 2012 at 06:51:04AM -0000, Bernd Schubert wrote:
> While I was looking through the code, I noticed i_op
> is not always initialized, although operations such
> as setattr probably always should be set.
>
>
> ext4: ext4_mknod: always set i_op
>
> From: Bernd Schubert <[email protected]>
>
> ext4_special_inode_operations have their own ifdef CONFIG_EXT4_FS_XATTR
> to mask those methods. And ext4_iget also always sets it, so there is
> an inconsistency.
>
> Signed-off-by: Bernd Schubert <[email protected]>

Applied, thanks!!

- Ted