From 23921bfe157d5cb59ded9ad2f3705490f82806aa Mon Sep 17 00:00:00 2001 From: charles Date: Thu, 25 May 2006 01:26:57 +0000 Subject: [PATCH] Fix SGID problem --- yaffs_fs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaffs_fs.c b/yaffs_fs.c index f28a6e8..08494c8 100644 --- a/yaffs_fs.c +++ b/yaffs_fs.c @@ -31,7 +31,7 @@ */ const char *yaffs_fs_c_version = - "$Id: yaffs_fs.c,v 1.48 2006-05-21 09:39:12 charles Exp $"; + "$Id: yaffs_fs.c,v 1.49 2006-05-25 01:26:57 charles Exp $"; extern const char *yaffs_guts_c_version; #include @@ -910,6 +910,9 @@ static int yaffs_mknod(struct inode *dir, struct dentry *dentry, int mode, int error = -ENOSPC; uid_t uid = current->fsuid; gid_t gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid; + + if((dir->i_mode & S_ISGID) && S_ISDIR(mode)) + mode |= S_ISGID; if (parent) { T(YAFFS_TRACE_OS, -- 2.30.2