diff mbox

[08/19] ext4: replace inode uid,gid,mode initialization with helper function

Message ID 1266432013-9241-3-git-send-email-dmonakhov@openvz.org
State Superseded, archived
Headers show

Commit Message

Dmitry Monakhov Feb. 17, 2010, 6:40 p.m. UTC
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
---
 fs/ext4/ialloc.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)

Comments

Andreas Dilger Feb. 17, 2010, 11:39 p.m. UTC | #1
On 2010-02-17, at 11:40, Dmitry Monakhov wrote:
> @@ -985,16 +985,12 @@ got:
> 		atomic_dec(&sbi->s_flex_groups[flex_group].free_inodes);
> 	}
>
> +	if (test_opt (sb, GRPID)) {

(style) please don't add the space after "test_opt" back into the code.


> +		inode->i_mode = mode;
> +		inode->i_uid = current_fsuid();
> 		inode->i_gid = dir->i_gid;
> 	} else
> +		inode_init_owner(inode, dir, mode);


This code is a bit misleading, since it implies that "i_uid" and  
"i_mode" are set this way due to the GRPID option, even though with  
further investigation it is just set the same way in both cases.

Ted,
what do you think of just removing the "GRPID" mount option?  I  
believe this was around for ages, due to the lack of BSD setgid-on- 
parent functionality in Linux.  I don't think it is needed anymore,  
since the BSD functionality is much more flexible (it can be set on a  
per-directory basis instead of for the whole filesystem).

I suppose one way to find out positively would be to add a printk() to  
case Opt_grpid: in the option parsing that this option is deprecated,  
and to contact linux-ext4@vger.kernel.org if you are still using it.

Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Theodore Ts'o Feb. 18, 2010, 8:52 p.m. UTC | #2
On Wed, Feb 17, 2010 at 04:39:54PM -0700, Andreas Dilger wrote:
> 
> Ted,
> what do you think of just removing the "GRPID" mount option?  I
> believe this was around for ages, due to the lack of BSD setgid-on-
> parent functionality in Linux.  I don't think it is needed anymore,
> since the BSD functionality is much more flexible (it can be set on
> a per-directory basis instead of for the whole filesystem).
> 
> I suppose one way to find out positively would be to add a printk()
> to case Opt_grpid: in the option parsing that this option is
> deprecated, and to contact linux-ext4@vger.kernel.org if you are
> still using it.

There are whole raft of options I'd love to deprecate:

* bsddf/minixdf
* grpid/bsdgroups/nogrpiid/sysvgroups

I also wonder whether it's time that we just enable acls and xattrs
all the time, instead of making them be explicit mount options.

So anyone wants to send me a patch, feel free....  (or I may get to it
maybe this weekend.)

					- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dmitry Monakhov Feb. 19, 2010, 10:30 a.m. UTC | #3
tytso@mit.edu writes:

> On Wed, Feb 17, 2010 at 04:39:54PM -0700, Andreas Dilger wrote:
>> 
>> Ted,
>> what do you think of just removing the "GRPID" mount option?  I
>> believe this was around for ages, due to the lack of BSD setgid-on-
>> parent functionality in Linux.  I don't think it is needed anymore,
>> since the BSD functionality is much more flexible (it can be set on
>> a per-directory basis instead of for the whole filesystem).
>> 
>> I suppose one way to find out positively would be to add a printk()
>> to case Opt_grpid: in the option parsing that this option is
>> deprecated, and to contact linux-ext4@vger.kernel.org if you are
>> still using it.
>
> There are whole raft of options I'd love to deprecate:
>
> * bsddf/minixdf
> * grpid/bsdgroups/nogrpiid/sysvgroups
>
> I also wonder whether it's time that we just enable acls and xattrs
> all the time, instead of making them be explicit mount options.
>
> So anyone wants to send me a patch, feel free....  (or I may get to it
I'll handle this, because currently there are not free bits left in
mount_flags.
> maybe this weekend.)
>
> 					- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
index f3624ea..1b33417 100644
--- a/fs/ext4/ialloc.c
+++ b/fs/ext4/ialloc.c
@@ -985,16 +985,12 @@  got:
 		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;
-	else if (dir->i_mode & S_ISGID) {
-		inode->i_gid = dir->i_gid;
-		if (S_ISDIR(mode))
-			mode |= S_ISGID;
 	} 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 */